- Materiales necesarios:
- LDR:
- LED RGB:
- Diagrama de circuito:
- Explicación de programación:
- Funcionamiento de la lámpara mezcladora de colores Arduino:
¿Y si pudiéramos generar diferentes colores utilizando un solo led RGB y hacer más atractivo el rincón de nuestra habitación? Entonces, aquí hay una lámpara de mezcla de color simple basada en Arduino que puede cambiar de color cuando hay un cambio de luz en la habitación. Por lo tanto, esta lámpara cambiará automáticamente de color según las condiciones de luz de la habitación.
Cada color es la combinación de color rojo, verde y azul. Entonces podemos generar cualquier color usando colores rojo, verde y azul. Entonces, aquí variaremos PWM, es decir, la intensidad de la luz en los LDR. Eso cambiará aún más la intensidad del color rojo, verde y azul en el LED RGB, y se producirán diferentes colores.
La siguiente tabla muestra las combinaciones de colores con los respectivos cambios en los ciclos de trabajo.
Materiales necesarios:
- 1 x Arduino UNO
- 1 x tablero
- 3 resistencias de 220 ohmios
- 3 resistencias de 1 kiloohmio
- Cables de puente
- 3 x LDR
- 3 x tiras de colores (rojo, verde, azul)
- 1 x LED RGB
LDR:
Usaremos fotoresistor (o resistor dependiente de la luz, LDR o celda fotoconductora) aquí en este circuito. Los LDR están hechos de materiales semiconductores para permitirles tener sus propiedades sensibles a la luz. Estos LDR o FOTO RESISTENCIAS funcionan según el principio de "Fotoconductividad". Ahora bien, lo que dice este principio es que siempre que la luz incide sobre la superficie del LDR (en este caso) aumenta la conductancia del elemento o, en otras palabras, la resistencia del LDR cae cuando la luz incide sobre la superficie del LDR. Esta propiedad de disminución de la resistencia para el LDR se logra porque es una propiedad del material semiconductor utilizado en la superficie.
Aquí se utilizan tres sensores LDR para controlar el brillo de cada LED rojo, verde y azul dentro del LED RGB. Obtenga más información sobre cómo controlar LDR con Arduino aquí.
LED RGB:
Hay dos tipos de LED RGB, uno es el tipo de cátodo común (negativo común) y el otro es el tipo de ánodo común (positivo común). En CC (cátodo común o negativo común), habrá tres terminales positivos, cada terminal representando un color y un terminal negativo representando los tres colores.
En nuestro circuito vamos a utilizar el tipo CA (Common Anode o Common Positive). En el tipo de ánodo común, si queremos que el LED ROJO esté ENCENDIDO, necesitamos conectar a tierra el pin del LED ROJO y alimentar el positivo común. Lo mismo ocurre con todos los LED. Aprenda aquí a interconectar LED RGB con Arduino.
Diagrama de circuito:
El diagrama de circuito completo de este proyecto se da arriba. La conexión de + 5V y tierra que se muestra en el diagrama del circuito se puede obtener del pin de 5V y tierra del Arduino. El Arduino en sí se puede alimentar desde su computadora portátil oa través del conector de CC con un adaptador de 12 V o una batería de 9 V.
Usaremos PWM para cambiar el brillo del led RGB. Puede obtener más información sobre PWM aquí. Aquí hay algunos ejemplos de PWM con Arduino:
- Fuente de alimentación variable por Arduino Uno
- Control de motor DC usando Arduino
- Generador de tonos basado en Arduino
Explicación de programación:
Primero, declaramos todas las entradas y pines de salida como se muestra a continuación.
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 los valores iniciales de los sensores y leds como 0.
unsigned int red_led_value = 0; unsigned int blue_led_value = 0; unsigned int green_led_value = 0; unsigned int red_sensor_value = 0; unsigned int blue_sensor_value = 0; unsigned int green_sensor_value = 0; configuración vacía () { pinMode (red_led_pin, SALIDA); pinMode (blue_led_pin, SALIDA); pinMode (green_led_pin, SALIDA); Serial.begin (9600); }
En la sección de bucle, tomaremos la salida de tres sensores con analogRead (); funcionar y almacenar en tres variables diferentes.
bucle vacío () { valor_sensor_rojo = lectura_análoga (pin_sensor_rojo); retraso (50); blue_sensor_value = analogRead (blue_sensor_pin); retraso (50); green_sensor_value = analogRead (green_sensor_pin);
Imprima esos valores en el monitor en serie para fines de depuración
Serial.println ("Valores de sensor sin procesar:"); Serial.print ("\ t Red:"); Serial.print (red_sensor_value); Serial.print ("\ t Blue:"); Serial.print (blue_sensor_value); Serial.print ("\ t Green:"); Serial.println (green_sensor_value);
Obtendremos valores de 0-1023 de los sensores, pero nuestros pines Arduino PWM tienen valores de 0-255 como salida. Entonces tenemos que convertir nuestros valores brutos a 0-255. Para eso tenemos que dividir los valores brutos por 4 O simplemente podemos usar la función de mapeo de Arduino para convertir estos valores.
red_led_value = red_sensor_value / 4; // definir LED rojo blue_led_value = blue_sensor_value / 4; // definir LED azul green_led_value = green_sensor_value / 4; // definir Led verde
Imprimir valores mapeados en el monitor en serie
Serial.println ("Valores de sensor asignados:"); Serial.print ("\ t Red:"); Serial.print (red_led_value); Serial.print ("\ t Blue:"); Serial.print (blue_led_value); Serial.print ("\ t Green:"); Serial.println (green_led_value);
Utilice analogWrite () para configurar la salida para LED RGB
analogWrite (rojo_led_pin, red_led_value); // indica LED rojo analogWrite (blue_led_pin, blue_led_value); // indica LED azul analogWrite (green_led_pin, green_led_value); // indicar verde
Funcionamiento de la lámpara mezcladora de colores Arduino:
Como estamos usando tres LDR, cuando la luz incide en estos sensores, su resistencia cambia como resultado, los voltajes también cambian en los pines analógicos de Arduino, que actúa como pines de entrada para los sensores.
Cuando la intensidad de la luz cambia en estos sensores, su respectivo LED en RGB brillará con la cantidad de resistencia cambiando y tenemos diferentes mezclas de colores en LED RGB usando PWM.