Aula 04: Aprendendo sobre o PWM do arduíno e Ponte H

Slides:



Advertisements
Apresentações semelhantes
Contadores e Registradores
Advertisements

Sensor de Carga de Bateria de Automóvel utilizando o CI “LM3914”
Prática de Acionamentos Eletrônicos – PAE_04
INTRODUÇÃO À LÓGICA DIGITAL
Aula 1 – Sinais Analógicos e Digitais
CONVERSORES DC-DC (CHOPPERS)
Os inversores são circuitos estáticos (não tem partes móveis) que convertem potência DC em potência AC com frequência e tensão ou corrente de saída desejada.
Unesp – Universidade Estadual Paulista Engenharia Elétrica Alunos: Guaraci Nakamura R. C. Rafael Cuba Vitor Zaccari.
DISPLAY DE 7 SEGMENTOS
Interruptor Eletrônico Controlado por Som
Que haja luz! Autores:Profa. Marcia Nobue Sacay; alunos; Eduarda Santana; Gabriel Bilesky; Karina Moura; Vivian Hage ; Supervisão: Profas. Marisa Almeida.
Arquitetura e organização de computadores
Entrada e Saída Introdução.
Meu primeiro programa em ARDUINO
professor Victory Fernandes
GERADOR SÍNCRONO Geradores síncronos ou alternadores são máquinas síncronas usadas para converter potência mecânica em potência elétrica ASPECTOS CONSTRUTIVOS.
Eletricidade A - ENG04474 AULA IX.
VISÃO GERAL Profa. Fernanda Denardin Walker
Modelos no Domínio do Tempo de Sistemas LTI Contínuos
Diodos Especiais Diodos Especiais.
Projeto de Sistemas de Controle pelo Método do Lugar das Raízes
Bruno Souza de Oliveira e Rodrigo Nardi
Fontes de Tensão e Corrente
AULA TÉCNICA INSTRUTOR: SCOPINO.
Modulação AM-DSB-SC e AM- SSB
Interfaces de entrada e saída discreta
Aula 3 – Usando o multímetro digital
Aula prática 6 Vetores e Matrizes
Microcontroladores Sistemas Digitais Microprocessados (SDM)
Introdução teórica A modulação em freqüência consiste na variação da freqüência da portadora proporcionalmente ao sinal de informação. Dado o sinal modulador.
INVERSOR PRINCIPIO DE FUNCIONAMENTO
Iniciação ao Arduino uno
07/04/2017 Linux Ubuntu 2.
By :Igor Oliveira Controladores PWM.
Pontes e Switches Como vimos anteriormente, os repetidores são usados para expandir a extensão da rede, mas que replicam todos os quadros que recebem.
Hubs Os hubs são dispositivos concentradores, responsáveis por centralizar a distribuição dos quadros de dados em redes fisicamente ligadas em estrela.
Decodificadores/ Codificadores
e suas funcionalidades
Microcontroladores PIC
Escolha da Placa. Porta Serial / COM Port Partes do Código.
AMPLIFICADORES OPERACIONAIS
2º Aula – Prática de Acionamentos Eletrônicos
Associação de Resistores
Workshop de automação de mini helicópteros
Decodificadores e Codificadores
Turmas A e B SEGUNDO BIMESTRE MATERIAL PARA ESTUDO
Algoritmos.
Introdução a Programação
Alteração Emergencial de Projeto
Inversor de Freqüência Descrição do Funcionamento.
Disciplina Engenharia da Qualidade II
Programação Computacional Aula 4: Álgebra Booleana
Introdução teórica – Demodulação AM-DSB-FC
Germano Maioli Penello
Estrutura do Software no Sketch Window
Sistemas para Internet Algoritmos e Lógica de Programação
Fundamentos de Redes de Computadores
Revisão de Circuito monofásico
Eletrônica Aula 5 – Tiristores prof: Elói Fonseca.
Aula 03: Efeito de iluminação sequencial com LED e Efeito interativo de iluminação com LED
Codificadores e Decodificadores Prof. Lucas Santos Pereira
Aula 05: Sensores do robô e Bibliotecas. Aula 05: Sensores do robô  O que vamos aprender? 1.Funcionamento e aplicações dos sensores 2.Utilidade das Bibliotecas.
Projeto Física Experimental II Por: Diego M. Pinho, Eduardo Damasceno, Hugo Hennies, Rafael M. Lopes.
Clique para editar o título Arduino seu primeiro microcontrolador PMR
Prof. Gustavo Fernandes de Lima
PC - Semana61 MODELANDO SISTEMAS LTI NO DOMÍNIO DA FREQUÊNCIA.
CIRCUITOS CENTRO DE CIÊNCIAS E TECNOLOGIA AGROALIMENTAR UNIDADE ACADÊMICA DE TECNOLOGIA DE ALIMENTOS DISCIPLINA: FÍSICA III Prof. Bruno Farias.
Aula 12 Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI.
UNIVERSIDADE ESTADUAL DO RIO GRANDE DO SUL UNIDADE UNIVERSITÁRIA EM PORTO ALEGRE CURSO DE GRADUAÇÃO EM ENGENHARIA DE ENERGIA Autor: Thiago da Silva Girardi.
Sistemas de entrada e saída. Aplicações
Transcrição da apresentação:

Aula 04: Aprendendo sobre o PWM do arduíno e Ponte H

Aula 04: Aprendendo sobre o PWM do arduíno e Ponte H O que vamos aprender? Utilização do controle PWM do Arduino Aplicação do controle PWM do Arduino: Lâmpada pulsante. Funcionamento e aplicações da Ponte H

1 – Entendendo PWM no arduino A Modulação por Largura de Pulso (Pulse Width Modulation) é uma técnica que consiste em fornecer um sinal analógico através de meios digitais. A forma de onda do sinal digital consiste em uma onda quadrada que alterna seu estado em nível lógico alto e um nível lógico baixo (pode ser representado por ligado/desligado ou pelo sistema binário 1 e 0). A razão entre o período de pico e o período total da onda é chamado de Duty Cycle. Podemos, então, entender que para termos uma onda quadrada real (que possui picos e vales iguais) é necessário que o Duty Cycle seja  de 50%, ou seja, 50%   de pico e 50% de vale.

No arduino UNO, as portas digitais que permitem PWM são as portas 3, 5, 6, 9, 10 e 11. Essas portas são facilmente identificadas pelo símbolo “ ~ “, abaixo de cada porta. Sabemos que a tensão de saída de uma porta digital no arduino é de 5V. Essa mesma tensão conseguiríamos obter da porta digital ao enviá-la uma saída analógica de valor 255 (Duty Cycle de 100%).

Um exemplo rápido   void setup(){  pinMode(3, OUTPUT); //define a porta digital 3 como saída  pinMode(5, OUTPUT); //define a porta digital 5 como saída pinMode(6, OUTPUT); //define a porta digital 6 como saída pinMode(9, OUTPUT); //define a porta digital 9 como saída pinMode(10, OUTPUT); //define a porta digital 10 como saída } void loop(){  analogWrite(3, 0); //a tensão na porta digital 3 será se 0V analogWrite(5, 64); //a tensão na porta digital 5 será se 1,25V analogWrite(6, 127); //a tensão na porta digital 6 será se 2,5V

  analogWrite(9, 191); //a tensão na porta digital 9 será se 3,75V  analogWrite(10, 255); //a tensão na porta digital 10 será se 5V }

2 – Prática 7: Lâmpada Pulsante Você agora tentará um método mais avançado de controle de seus LEDs. Até aqui você simplesmente os acendeu e apagou. Não seria interessante ajustar o brilho de um LED? Será que isso pode ser feito com o Arduino? Certamente. Usaremos: 1 LED’s de 2 V 1 resistor de 100Ω

Verifique seu circuito e digite o código: // Projeto 7 – Lâmpada pulsante int ledPin = 11; float sinVal; int ledVal; void setup() { pinMode(ledPin, OUTPUT); } void loop() { for (int x=0; x<180; x++) { // converte graus para radianos e, então, obtém o valor do seno sinVal = (sin(x*(3.1416/180))); ledVal = int(sinVal*255); analogWrite(ledPin, ledVal); delay(25); } }  

Verifique e faça o upload de seu código Verifique e faça o upload de seu código. Você verá seu LED pulsar, acendendo e apagando continuamente. Entretanto, em vez de um simples estado de ligado/desligado, você está ajustando o brilho. Análise do código: O código para este projeto é muito simples, mas exige explicação. Primeiramente, você define as variáveis para o pino do LED, um float (tipo de dado de ponto flutuante) para o valor da onda senoidal, e ledVal, que armazena o valor inteiro a ser enviado para o pino digital PWM 11. Neste projeto, você está criando uma onda senoidal e fazendo com que o brilho do LED acompanhe essa onda. É isso que faz com que a luz pulse, em vez de simples-mente acender com brilho máximo e apagar novamente.  

Você utiliza a função sin(), uma função matemática, para calcular o seno de um ângulo. Você tem de dar à função o grau em radianos. Assim, temos um loop for que vai de 0 a 179; não devemos passar desse limite, pois isso resultaria em valores negativos, e o valor do brilho pode estar apenas entre 0 e 255. A função sin() requer que o ângulo esteja em radianos, e não em graus. Assim, a equação x*(3.1416/180) converterá o grau do ângulo para radianos. Depois, você transfere o resultado para ledVal, multiplicando-o por 255 para obter seu valor. O resultado da função sin() será um número entre -1 e 1, que poderá ser multiplicado por 255 para obter o brilho máximo.  

Você converte (cast) o valor de tipo ponto flutuante de sinVal para um inteiro, utilizando int() na instrução a seguir: ledVal = int(sinVal*255); Então, você envia esse valor para o pino digital PWM 11, utilizando a instrução: analogWrite(ledPin, ledVal); Na conversão, ou casting, você converte o valor de ponto flutuante para um inteiro (efetivamente eliminando o que havia após o ponto decimal). Mas como você pode enviar um valor analógico para um pino digital? Dê uma olhada em seu Arduino. Se analisar os pinos digitais, você verá que seis deles (3, 5, 6, 9, 10 e 11) têm PWM escrito ao lado. Esses pinos são diferentes dos pinos digitais, pois são capazes de enviar um sinal PWM.  

PWM significa Pulse Width Modulation, ou Modulação por Largura de Pulso (MLP), e representa uma técnica para obter resultados analógicos por meios digitais. Nesses pinos, o Arduino envia uma onda quadrada, ligando e desligando o pino muito rapidamente. O padrão de ligado/desligado pode simular uma voltagem variando entre 0 V e 5 V. Isso é feito alterando a quantidade de tempo em que a saída permanece alta (ligada) e baixa (desligada). A duração do tempo em que ela permanece ligada é conhecida como a largura do pulso. Por exemplo, se você quisesse enviar o valor 0 para o pino digital PWM 11 utilizando analogWrite(), o período ON (ligado) seria zero, ou teria o que chamamos de um ciclo de trabalho (duty cycle1) de 0%. Se você quisesse enviar um valor de 63 (25% dos 255 máximos), o pino estaria ON em 25% do tempo e OFF em 75% do tempo. O valor de 191 teria um ciclo de trabalho de 75%; enquanto um valor de 255 teria um ciclo de trabalho de 100%.  

Os pulsos ocorrem a uma velocidade de aproximadamente 500 Hz, ou 2 milissegundos, cada. Assim, em seu sketch, o LED está acendendo e apagando muito rapidamente. Se o ciclo de trabalho fosse de 50% (um valor de 127), o LED pulsaria, acendendo e apagando, a 500 Hz, e exibiria metade de seu brilho máximo. Isso é basicamente uma ilusão que você pode utilizar em seu proveito, permitindo que os pinos digitais emitam um valor analógico simulado para seus LEDs. Note que mesmo que apenas seis dos pinos tenham a função PWM, você pode facilmente escrever um software para conseguir uma saída PWM de todos os pinos digitais, se assim preferir. 

3- Ponte H A Ponte H é um circuito de Eletrônica, capaz de determinar o sentido da corrente, a polaridade da tensão, e a tensão em um dado sistema ou componente. Em nossa aplicação, usaremos a ponte H para transmitir aos motores, os comandos que o arduino enviar. OBS.: não conectamos os motores diretamente ao arduino, pois o arduino não consegue emitir potência suficiente para fazer o motor funcionar. Então usamos a ponte H conectada a uma fonte externa, suficiente para alimentar o motor

Figura 1: Esquema de uma Ponte H

Figura 2: Ponte H

Entradas: (Motor A) e (Motor B): se referem aos conectores para ligação de 2 motores DC ou 1 motor de passo   (Ativa MA) e (Ativa MB):  são os pinos responsáveis pelo controle PWM dos motores A e B. Se estiver com jumper, não haverá controle de velocidade, pois os pinos estarão ligados aos 5v. Esses pinos podem ser utilizados em conjunto com os pinos PWM do Arduino (Entrada): Este barramento é composto por IN1, IN2, IN3 e IN4. Sendo estes pinos responsáveis pela rotação do Motor A (IN1 e IN2) e Motor B (IN3 e IN4).

(Ativa 5v) e (5v): Este Driver Ponte H L298N possui um regulador de tensão integrado. Quando o driver está operando entre 6-35V, este regulador disponibiliza uma saída regulada de +5v no pino (5v) para um uso externo (com jumper), podendo alimentar por exemplo outro componente eletrônico. Portanto não alimente este pino (5v) com +5v do Arduino se estiver controlando um motor de 6-35v e jumper conectado, isto danificará a placa. O pino (5v) somente se tornará uma entrada caso esteja controlando um motor de 4-5,5v (sem jumper), assim poderá usar a saída +5v do Arduino.   (6-35v) e (GND): Aqui será conectado a fonte de alimentação externa quando o driver estiver controlando um motor que opere entre 6-35v. Por exemplo se estiver usando um motor DC 12v, basta conectar a fonte externa de 12v neste pino e (GND).

Tabela: A tabela abaixo mostra a ordem de ativação do Motor A através dos pinos IN1 e IN2. O mesmo esquema pode ser aplicado aos pinos IN3 e IN4, que controlam o Motor B.  

4– Prática 9: Ponte H Usaremos: Ponte H 2 motores Jumpers Arduino Faça as ligações!

Verifique o seu circuito e depois digite o código: //Definições pinos Arduino ligados a entrada da Ponte H int IN1 = 4; int IN2 = 5; int IN3 = 6; int IN4 = 7;    void setup() {   //Define os pinos como saída  pinMode(IN1, OUTPUT);  pinMode(IN2, OUTPUT);  pinMode(IN3, OUTPUT);  pinMode(IN4, OUTPUT); }  

void loop() {  //Gira o Motor A no sentido horário  digitalWrite(IN1, HIGH);  digitalWrite(IN2, LOW);  delay(2000);  //Para o motor A  digitalWrite(IN2, HIGH);  delay(500);    //Gira o Motor B no sentido horário  digitalWrite(IN3, HIGH);  digitalWrite(IN4, LOW);

 //Para o motor B    digitalWrite(IN3, HIGH);  digitalWrite(IN4, HIGH);  delay(500);  //Gira o Motor A no sentido anti-horário  digitalWrite(IN1, LOW);  digitalWrite(IN2, HIGH);  delay(2000);  //Para o motor A  digitalWrite(IN1, HIGH);

//Gira o Motor B no sentido anti-horário  digitalWrite(IN3, LOW);  digitalWrite(IN4, HIGH);  delay(2000);  //Para o motor B  digitalWrite(IN3, HIGH);  delay(500); }  

Fontes bibliográficas: McRoberts, Michael Arduino básico / Michael McRoberts ; [tradução Rafael Zanolli]. -- São Paulo : Novatec Editora, 2011.