- Materiais requisitados:
- LDR:
- LED RGB:
- Diagrama de circuito:
- Explicação de programação:
- Funcionamento da lâmpada de mistura de cores Arduino:
E se pudéssemos gerar cores diferentes usando um único led RGB e tornar o canto de nossa sala mais atraente? Então, aqui está uma lâmpada de mistura de cores simples baseada em Arduino que pode mudar de cor quando houver mudança de luz na sala. Portanto, esta lâmpada mudará automaticamente sua cor de acordo com as condições de luz da sala.
Cada cor é a combinação das cores vermelha, verde e azul. Portanto, podemos gerar qualquer cor usando as cores vermelha, verde e azul. Então, aqui vamos variar o PWM, ou seja, a intensidade da luz nos LDRs. Isso mudará ainda mais a intensidade da cor vermelha, verde e azul no LED RGB, e cores diferentes serão produzidas.
A tabela abaixo mostra as combinações de cores com as respectivas alterações nos ciclos de trabalho.
Materiais requisitados:
- 1 x Arduino UNO
- 1 x breadboard
- 3 resistores de 220 ohms
- 3 resistores de 1 kilohm
- Fios de ligação
- 3 x LDRs
- 3 x tiras coloridas (vermelho, verde, azul)
- 1 x LED RGB
LDR:
Usaremos fotoresistor (ou resistor dependente de luz, LDR ou célula fotocondutora) aqui neste circuito. Os LDRs são feitos de materiais semicondutores para permitir que tenham suas propriedades sensíveis à luz. Esses LDRs ou RESISTORES DE FOTOGRAFIA funcionam com base no princípio de “Foto Condutividade”. Agora, o que este princípio diz é, sempre que a luz incide na superfície do LDR (neste caso) a condutância do elemento aumenta ou em outras palavras, a resistência do LDR cai quando a luz incide na superfície do LDR. Esta propriedade de diminuição da resistência para o LDR é alcançada porque é uma propriedade do material semicondutor usado na superfície.
Aqui, três sensores LDR são usados para controlar o brilho de LEDs vermelho, verde e azul individuais dentro do LED RGB. Saiba mais sobre como controlar LDR com Arduino aqui.
LED RGB:
Existem dois tipos de LEDs RGB, um é do tipo cátodo comum (negativo comum) e o outro é do tipo ânodo comum (positivo comum). Em CC (cátodo comum ou negativo comum), haverá três terminais positivos, cada terminal representando uma cor e um terminal negativo representando todas as três cores.
Em nosso circuito vamos usar o tipo CA (ânodo comum ou positivo comum). No tipo ânodo comum, se quisermos que o LED VERMELHO esteja LIGADO, precisamos aterrar o pino do LED VERMELHO e alimentar o positivo comum. O mesmo vale para todos os LEDs. Aprenda aqui como fazer a interface do LED RGB com o Arduino.
Diagrama de circuito:
O diagrama de circuito completo deste projeto é fornecido acima. A conexão de + 5V e terra mostrada no diagrama de circuito pode ser obtida a partir do pino de 5V e terra do Arduino. O próprio Arduino pode ser alimentado por seu laptop ou pelo conector DC usando um adaptador de 12V ou bateria de 9V.
Usaremos o PWM para alterar o brilho do led RGB. Você pode aprender mais sobre PWM aqui. Aqui estão alguns exemplos de PWM com Arduino:
- Fonte de alimentação variável por Arduino Uno
- Controle de motor DC usando Arduino
- Gerador de tons baseado em Arduino
Explicação de programação:
Primeiro, declaramos todas as entradas e pinos de saída conforme mostrado abaixo.
const byte red_sensor_pin = A0; const byte green_sensor_pin = A1; const byte blue_sensor_pin = A2; const byte green_led_pin = 9; const byte blue_led_pin = 10; const byte red_led_pin = 11;
Declare os valores iniciais dos sensores e leds como 0.
unsigned int red_led_value = 0; sem sinal int blue_led_value = 0; sem sinal int green_led_value = 0; sem sinal int red_sensor_value = 0; sem sinal int blue_sensor_value = 0; sem sinal int green_sensor_value = 0; void setup () { pinMode (red_led_pin, OUTPUT); pinMode (blue_led_pin, OUTPUT); pinMode (green_led_pin, OUTPUT); Serial.begin (9600); }
Na seção de loop, obteremos a saída de três sensores com analogRead (); função e armazenamento em três variáveis diferentes.
void loop () { red_sensor_value = analogRead (red_sensor_pin); atraso (50); blue_sensor_value = analogRead (blue_sensor_pin); atraso (50); green_sensor_value = analogRead (green_sensor_pin);
Imprima esses valores no monitor serial para fins de depuração
Serial.println ("Valores brutos do sensor:"); Serial.print ("\ t Vermelho:"); Serial.print (red_sensor_value); Serial.print ("\ t Azul:"); Serial.print (blue_sensor_value); Serial.print ("\ t Verde:"); Serial.println (green_sensor_value);
Obteremos 0-1023 valores dos sensores, mas nossos pinos Arduino PWM têm 0-255 valores como saída. Portanto, temos que converter nossos valores brutos para 0-255. Para isso temos que dividir os valores brutos por 4 OU simplesmente podemos usar a função de mapeamento do Arduino para converter esses valores.
red_led_value = red_sensor_value / 4; // define LED vermelho blue_led_value = blue_sensor_value / 4; // define LED azul green_led_value = green_sensor_value / 4; // define Led Verde
Imprimir valores mapeados para monitor serial
Serial.println ("Valores de sensor mapeados:"); Serial.print ("\ t Vermelho:"); Serial.print (red_led_value); Serial.print ("\ t Azul:"); Serial.print (blue_led_value); Serial.print ("\ t Verde:"); Serial.println (green_led_value);
Use analogWrite () para definir a saída para RGB LED
analogWrite (red_led_pin, red_led_value); // indica LED vermelho analogWrite (blue_led_pin, blue_led_value); // indica LED azul analogWrite (green_led_pin, green_led_value); // indica verde
Funcionamento da lâmpada de mistura de cores Arduino:
Como estamos usando três LDRs, quando a luz incide nesses sensores, sua resistência muda, como resultado, as tensões também mudam nos pinos analógicos do Arduino, que está atuando como pinos de entrada para os sensores.
Quando a intensidade da luz muda nesses sensores, seu respectivo led em RGB acenderá com a quantidade de mudança de resistência e temos diferentes misturas de cores em led RGB usando PWM.