Gerando cores diferentes de LED RGB usando Arduino PWM

Protótipo de controlador LED RGB baseado em Arduino

Fig. 1: Protótipo de controlador LED RGB baseado em Arduino

RGB-LED é amplamente utilizado para gerar luzes de cores diferentes em decoração de interiores, eletrodomésticos, automóveis, etc.

Este artigo trata do Arduino para obter várias cores com LED RGB e mostrar a transição de uma cor para outra.

A saída PWM de um Arduino, é uma ferramenta importante para obter a variedade de cores, seja Rosa, Ciano, Magenta, Laranja, Roxo, etc.

Um LED RGB é um LED de quatro terminais com um pino comum (digamos, cátodo) e três outros pinos (ânodo) para LEDs Vermelho, Verde e Azul.

Diagrama de pinos e circuito interno de LED RGB

Fig. 2: Diagrama de pinos e circuito interno do LED RGB

O primeiro passo, obter um LED RGB e testá-lo. Para isso precisamos conectar a alimentação de 5V ao LED simples através de resistores (330ohms).

Agora que temos as cores VERMELHO, VERDE e AZUL individualmente, é hora de misturar essas três cores básicas.

Obtenha um Arduino (qualquer placa básica com pelo menos 3 saídas PWM). Eu usei um Atmega8.

Conecte seu Arduino, faça as conexões adequadas, conforme mostrado no diagrama de circuito abaixo.

Prosseguindo, agora é hora de controlar o LED. Faremos isso através do Arduino-IDE.

Vá para Arduino-IDE, selecione o tipo de placa, no menu ‘Ferramentas’. Selecione a porta COM, no menu 'Porta serial'.

Depois disso, copie o esboço abaixo e faça upload dele.

Trabalhando:

Agora, vamos entender como isso funciona. O 'escrita analógica 'função do Arduino torna isso possível.

Cada pino de saída digital do Arduino pode fornecer uma tensão de 0 ou 5V, mas o pino PWM possui um recurso complementar. Pode fornecer vários valores de tensão entre 0V-5V.

Digamos que escrevemos,

analogWrite(led_vermelho,50); //red_led refere-se ao pino 9 (pino PWM)

Isso fornecerá uma tensão = (5/255)*50 V = 0,98 V no pino 9.

Se escrevermos:

analogWrite(led_azul,100); //blue_led refere-se ao pino 10 (pino PWM)

Isso fornecerá uma tensão = (5/255) * 100 V = 1,96 V no pino 10

Neste experimento, o que fazemos é criar um loop for para fornecer valores entre 0-255 em cada pino do LED com algum atraso (em milissegundos).

para(int i=0;i<=255;i+=3)

{

analogWrite(redPin,255-i); // escreve (255-i) no redPin

analogWrite(pinoverde, i); // escreve I no greenPin

atraso(100); //espera por 100uS

}

Imagem mostrando LED RGB sendo controlado pelo Arduino

Figura 3: Imagem mostrando LED RGB sendo controlado pelo Arduino

Código fonte do projeto

###



int redPin = 10;
int greenPin = 11;
int bluePin = 9;
void colourTransition ;
void setup 
{
    pinMode(redPin, OUTPUT);
    pinMode(greenPin, OUTPUT);
    pinMode(bluePin, OUTPUT);
}
void loop 
{
  colourTransition ;
}
void colourTransition 
{
  for(int i=0;i<=255;i+=3)
  {
    analogWrite(redPin,255-i);
    analogWrite(greenPin, i);
    delay(100);
  }
  for(int i=0;i<=255;i+=3)
  {
    analogWrite(greenPin,255-i);
    analogWrite(bluePin, i);
    delay(100);
  }
  for(int i=0;i<=255;i+=3)
  {
    analogWrite(bluePin,255-i);
    analogWrite(redPin, i);
    delay(100);
  }
}

###

Diagramas de circuito

Controlador de LED RGB baseado em Arduino, diagrama de circuito

Related Content

Back to blog

Leave a comment

Please note, comments need to be approved before they are published.