sábado, 3 de março de 2012

PWM - LED Fading

Arduino by my Self


Esta barra, indica o nível de dificuldade encontrado para cada experiência realizada.
sendo:
"VERDE", indicação de nível 1 a 5 (Fácil);
"AMARELO", indicação de nível 6 a 8 (Médio);
VERMELHO, indicação de nível 9 e 10 (Difícil);

Este tutorial tem como objetivo mostar o uso do PWM para controlar o brilho de um LED causando efeito de desvanecimento contínuo da luz emitida.
Usaremos a função analogWrite() para escrever um sinal com modulação por pulso no LED; esta função comuta um sinal "on" "off" rapidamente no pino digital, com diferentes proporções, causando o efeito de "fading".

Vamos fazer um parenteses para entender melhor o PWM.
(
Modulação largura, ou PWM, é uma técnica para obter resultados analógicos com meios digitais. 
O controle digital é usado para criar uma onda quadrada, um sinal alternado entre ligada e desligada.
Este padrão on-off pode simular tensões entre plenos (5 volts) até (0 volts), alterando a porção do
tempo que o sinal passa ligado em relação ao tempo que o sinal passa desligado. 
A duração de "tempo" é chamado de largura de pulso.
Para obter diferentes valores analógicos, você muda, ou modula, a largura de pulso. 
Se você repetir esse padrão on-off rápido o suficiente com um LED, por exemplo, 
o resultado é como se o sinal fosse uma tensão estável entre 0 e 5v, controlando o brilho do LED.
No gráfico abaixo, as linhas verdes representam um tempo regular, um período. 
Esta duração ou período é o inverso da frequência de PWM.
Em outras palavras, como a freqüência de PWM do Arduino é cerca de 500Hz,as linhas verdes mediriam 2 milissegundos cada. 
Uma chamada para analogWrite () é uma escala de 0 - 255; analogWrite(255) indica que se solicita um ciclo de trabalho de 100%
ciclo (sempre ligado), e analogWrite (127) é um ciclo de 50% (metade do tempo), e assim por diante.

PWM


Texto extraído do site: http://arduino.cc/en/Tutorial/PWM, visite!
)

O hardware:
1 x Placa Arduino UNO
1 x Resistor 220O
1 x LED
1 x Breadboard
Fios

O Circuito:
Imagem gerada usando Fritzing, Visite o site oficial para download e tutoriais:
http://fritzing.org/

Usando a Breadboard:
Connecte o terminal "Anodo" do LED ao resistor;
O terminal "Catodo" do LED, conecte ao negativo da alimentação;
O outro terminal do resistor, conecte ao pino 9 do Arduino.


O Programa:

Abaixo o código comentado.


/*
 Fade

 Este exemplo mostra como desvanecer um LED conectado ao pino 9
 usando a função analogWrite().

 Este código é de domínio público.
  */


int brightness = 0;                                  // quantidade de brilho do LED
int fadeAmount = 5;                              // quantos pontos o LED irá desvanecer


//inicialização
void setup()  { 
   pinMode(9, OUTPUT);                   // declara o  pino 9 como saída



//programa inicial
void loop()  { 
  analogWrite(9, brightness);                //determina o brilho do LED   
  brightness = brightness + fadeAmount;                // troca o brilho para a próxima iteração do loop
  if (brightness == 0 || brightness == 255) {           // reverte a direção do desvanecimento ao fim do mesmo
    fadeAmount = -fadeAmount ; 
  }     
  delay(30);                                         // espera 30 milisegundos para ver o efeito de escurecimento
}


Consulte o site do Arduino para maiores informações:
http://arduino.cc/en/Tutorial/Fade

Vídeo:






Conclusão:




Mais uma experiência de nível básico, sem maiores problemas em sua execução.
Hardware simples e Software descomplicado.
Básico.


Espero ter ajudado com mais este POST, até o próximo!