Variando Cores do LED RGB com Potenciômetro

Com esse exemplo você aprenderá como utilizar os pinos de PWM do Arduino, utilizando-os para controlar a intensidade das cores de um LED RGB. Você seleciona a cor através de chaves táteis e faz o controle com um potenciômetro.

Dificuldade:

Montagem:

Programação:


Material Utilizado:

Arduino Uno

Cabo USB A para B

Protoboard 830

Resistor 330Ω

Resistor 10KΩ

Chave Tactil

LED RGB

Alguns Jumpers

A Montagem

O Sketch

#define RED_RGB 9 //Define RED_RGB como 9
#define GREEN_RGB 10 //Define RED_RGB como 10
#define BLUE_RGB 11 //Define RED_RGB como 11
#define pot A0  //Define pot_RED como A0
#define RED_botao 2 //Define RED_botao como 2
#define GREEN_botao 3 //Define GREEN_botao como 3
#define BLUE_botao 4 //Define BLUE_botao como 4

int valor_RED; //Variável para armazenar o valor do vermelho
int valor_GREEN; //Variável para armazenar o valor do verde
int valor_BLUE; //Variável para armazenar o valor do azul

void setup()
{      

pinMode
(RED_botao, INPUT_PULLUP); //Configura o pino 2 como entrada e com o resistor de pullup ativo   
pinMode(GREEN_botao, INPUT_PULLUP); //Configura o pino 3 como entrada e com o resistor de pullup ativo   
pinMode
(BLUE_botao, INPUT_PULLUP); //Configura o pino 4 como entrada e com o resistor de pullup ativo   

}


void
loop()
{    

while(!(digitalRead(RED_botao))) //Enquanto o botão do pino 2 estiver pressionado  
{    
valor_RED = map(analogRead(pot), 0, 1023, 0, 255); //Pega o valor do potenciômetro,                     //converte a escala de 0 a 1023 em 0 a 255, e armazena em valor_RED                                    
analogWrite
(RED_RGB, valor_RED); //Gera o PWM no pino 9 (R - Vermelho), com o valor convertido                                     //do potenciômetro  

}  
//==================================================================
     
while
(!(digitalRead(GREEN_botao))) //Enquanto o botão do pino 3 estiver pressionado
{    
valor_GREEN = map(analogRead(pot), 0, 1023, 0, 255); //Pega o valor do potenciômetro,                     //converte a escala de 0 a 1023 em 0 a 255, e armazena em valor_GREEN                         

analogWrite
(GREEN_RGB, valor_GREEN); //Gera o PWM no pino 10 (G - Verde), com o valor convertido                                         //do potenciômetro  
}      

while
(!(digitalRead(BLUE_botao))) //Enquanto o botão do pino 4 estiver pressionado  
{    valor_BLUE = map(analogRead(pot), 0, 1023, 0, 255);; //Pega o valor do potenciômetro,                     //converte a escala de 0 a 1023 em 0 a 255, e armazena em valor_GREEN                         

analogWrite
(BLUE_RGB, valor_BLUE); //Gera o PWM no pino 11 (B - Azul), com o valor convertido                                       //do potenciômetro  
}  

}