Proyecto: Utilizar un sensor de luz para ajustar automáticamente el color de un LED RGB según las condiciones del entorno

En este artículo, exploraremos cómo utilizar un sensor de luz para ajustar automáticamente el color de un LED RGB según las condiciones del entorno. Aprenderás cómo medir la intensidad de la luz y adaptar la iluminación de forma dinámica.

¡Prepárate para dar vida a tus proyectos con una iluminación ambiental perfectamente adaptada!

¿Qué es un sensor de luz?

Un sensor de luz, también conocido como fotodiodo o fototransistor, es un dispositivo que detecta la intensidad de la luz en su entorno.

Al medir la cantidad de luz presente, podemos utilizar esta información para ajustar la iluminación de otros dispositivos, como un LED RGB.

Los sensores de luz son muy útiles para crear sistemas automáticos que se adapten a las condiciones cambiantes del entorno.

Conexión física del sensor de luz con Arduino

Antes de comenzar, asegúrate de tener los siguientes componentes:
– Arduino Uno (u otro modelo compatible)
– Sensor de luz (fotodiodo o fototransistor)
– LED RGB común ánodo o cátodo común
– Resistencias de 220 ohmios (3 unidades)
– Protoboard
– Cables de puente

La conexión física se realiza de la siguiente manera

– Conecta el pin de salida del sensor de luz al pin analógico A0 del Arduino.
– Conecta el pin rojo del LED RGB al pin digital 9 del Arduino a través de una resistencia de 220 ohmios.
– Conecta el pin verde del LED RGB al pin digital 10 del Arduino a través de otra resistencia de 220 ohmios.
– Conecta el pin azul del LED RGB al pin digital 11 del Arduino a través de una resistencia de 220 ohmios.
– Conecta el pin común (ánodo o cátodo, según el tipo de LED RGB) al pin GND (tierra) del Arduino.

Programación de Arduino para ajustar el color del LED RGB según la luz ambiente

Ahora, vamos a escribir el código Arduino necesario para ajustar automáticamente el color del LED RGB según la luz ambiente medida por el sensor.

// Definición de los pines utilizados
int pinRojo = 9;
int pinVerde = 10;
int pinAzul = 11;
int pinSensorLuz = A0;

void setup() {
// Configurar los pines como salidas
pinMode(pinRojo, OUTPUT);
pinMode(pinVerde, OUTPUT);
pinMode(pinAzul, OUTPUT);

// Configurar el pin del sensor de luz como entrada
pinMode(pinSensorLuz, INPUT);
}

void loop() {
// Leer el valor del sensor de luz
int valorLuz = analogRead(pinSensorLuz);

// Mapear el valor del sensor a la escala de colores del LED RGB (0-255)
int intensidadRojo = map(valorLuz, 0, 1023, 0, 255);
int intensidadVerde = map(valorLuz,

0, 1023, 0, 255);
int intensidadAzul = map(valorLuz, 0, 1023, 0, 255);

// Ajustar el color del LED RGB según la luz ambiente
analogWrite(pinRojo, intensidadRojo);
analogWrite(pinVerde, intensidadVerde);
analogWrite(pinAzul, intensidadAzul);

delay(100); // Pequeña pausa entre mediciones
}

Explicación del código

El código comienza definiendo los pines utilizados para el LED RGB y el sensor de luz. En el bloque `setup()`, se configuran los pines como salidas y entradas según corresponda.

Luego, en el bloque loop(), se lee el valor del sensor de luz utilizando la función analogRead(). Este valor se mapea a la escala de colores del LED RGB utilizando la función map(), que ajusta los valores proporcionales de acuerdo a los límites deseados.

Finalmente, se ajusta el color del LED RGB utilizando la función analogWrite(), estableciendo la intensidad de cada componente de color según los valores mapeados.

El código incluye una pequeña pausa con delay() entre mediciones para evitar una lectura excesivamente rápida del sensor.

¡Ahora estás listo para experimentar con diferentes condiciones de iluminación y ver cómo el LED RGB se ajusta automáticamente!

Puedes personalizar aún más este proyecto agregando otros efectos de iluminación o combinándolo con otros sensores para crear sistemas aún más complejos.

Otros Proyectos con Arduino que pueden interesarte: