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:
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
}
}