Mudanças entre as edições de "MCO018703 2018 2 AULA08"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 13: Linha 13:
 
<sub>Fonte: http://arduino.cc/en/Tutorial/PWM</sub>
 
<sub>Fonte: http://arduino.cc/en/Tutorial/PWM</sub>
 
</center>
 
</center>
 +
 +
Analisando as formas de onda nota-se que a frequência da forma de onda tem o mesmo valor e varia-se o duty cycle da forma de onda. Quando o duty cicle está em 0% o valor médio da saída encontra-se em 0 V e consequentemente para um duty cycle de 100% a saída assume seu valor máximo, que no caso é 5V. Para um duty cycle de 50% a saída assumirá 50% do valor da tensão, 2,5 V e assim sucessivamente para cada variação no duty cycle. Portanto, para calcular o valor médio da tensão de saída de um sinal PWM pode-se utilizar a seguinte equação:
 +
 +
 +
<math>
 +
Vout = \frac{duty cycle}{100}* Vcc\,
 +
</math>
 +
 +
 +
Onde:
 +
 +
    Vout - tensão de saída em V;
 +
    duty cycle - valor do ciclo ativo do PWM em %;
 +
    Vcc - tensão de alimentação em V.
 +
 +
 +
 +
PWM pode ser usada para diversas aplicações, como por exemplo:
 +
 +
    controle de velocidade de motores;
 +
 +
    variação da luminosidade de leds;
 +
 +
    geração de sinais analógicos;
 +
 +
    geração de sinais de áudio.
 +
  
  

Edição das 13h55min de 25 de setembro de 2018

PWM no Arduino

Na aula anterior falamos que os Pinos Digitais são usados para detecção ou transmissão de controles digitais, normalmente associados aos sinais HIGH ou LOW (0 ou 1). Mas alguns pinos podem também gerar um sinal analógico com a função analogWrite() utilizando a técnica de modulação por largura de pulso (PWM).

Mas o que é PWM?

PWM, do inglês Pulse Width Modulation, é uma técnica utilizada por sistemas digitais para variação do valor médio de uma forma de onda periódica. A técnica consiste em manter a frequência de uma onda quadrada fixa e variar o tempo que o sinal fica em nível lógico alto. Esse tempo é chamado de duty cycle, ou seja, o ciclo ativo da forma de onda. A figura abaixo mostra o gráfico e são exibidas algumas modulações PWM.


Fig044 MCO018703.jpg

Fonte: http://arduino.cc/en/Tutorial/PWM

Analisando as formas de onda nota-se que a frequência da forma de onda tem o mesmo valor e varia-se o duty cycle da forma de onda. Quando o duty cicle está em 0% o valor médio da saída encontra-se em 0 V e consequentemente para um duty cycle de 100% a saída assume seu valor máximo, que no caso é 5V. Para um duty cycle de 50% a saída assumirá 50% do valor da tensão, 2,5 V e assim sucessivamente para cada variação no duty cycle. Portanto, para calcular o valor médio da tensão de saída de um sinal PWM pode-se utilizar a seguinte equação:



Onde:

   Vout - tensão de saída em V;
   duty cycle - valor do ciclo ativo do PWM em %;
   Vcc - tensão de alimentação em V.


PWM pode ser usada para diversas aplicações, como por exemplo:

   controle de velocidade de motores;
   variação da luminosidade de leds;
   geração de sinais analógicos;
   geração de sinais de áudio.



/* Esse programa escrito em C do Arduino aumenta e diminui gradativamente o brilho de um LED 
conectado no pino PWM 10 do Arduino. */
int i=0;  // declaração da variável global inteira i iniciada com 0
void ledOn( );  // declaração da função criada ledOn do tipo void
void setup( )  
{
   pinMode(10,OUTPUT); // aqui 2 parâmetros são passados à função pinMode( )
}
void loop( ) 
{
   for (i=0; i <= 255; i++) ledOn( ); // aumenta o brilho do led
   for (i=255; i >= 0; i--) ledOn( ); // diminui o brilho do led
}
void ledOn( ) // função que acende o led
{  
   analogWrite (10, i); // o nº do pino e o valor de i são passados à função analogWrite( )
   delay (10);      
}

Referências

[1] https://www.embarcados.com.br/pwm-do-arduino/


Icone voltar.png Icone menu.png Icone prox.png