1. El Octavo Bit
  2. / Arduino
  3. / Proyectos para Arduino
  4. / Sistema de regulación de la iluminación de un led a partir de la cantidad de luz

Sistema de regulación de la iluminación de un led a partir de la cantidad de luz

| Actualizado:
Comentarios: 0

Sistema de regulación de la iluminación de un led a partir de la cantidad de luz
Sistema de regulación de la iluminación de un led a partir de la cantidad de luz

El objetivo es encender un LED y variar su intensidad dependiendo de la luz ambiental, para esto vamos a utilizar un sensor de luz LDR. Antes de cambiar la intensidad del LED según la cantidad de luz, haremos que se encienda en la oscuridad y permanezca apagado en caso contrario.

Encender un LED en la oscuridad utilizando un sensor de luz

Material necesario:

  • Placa Arduino UNO o similar
  • Protoboard
  • LED
  • Sensor LDR
  • 1 resistencia de 220Ω
  • 1 resistencia de 10kΩ

Esquema:

Conectamos el LED al pin digital 13 de la placa Arduino y el sensor LDR al pin analógico 0 de la placa.

Esquema LED y sensor LDR para Arduino

Código:

En la función setup() configuramos el pin 13 como salida (OUTPUT). Mientras que en la función loop() leemos el valor del sensor LDR conectado al pin analógico A0. Si es menor a 150 se enciende el LED y si es mayor permanece apagado. (El valor de 150 puede variar segun la sensibilidad del sensor).

int pinLED = 13;

void setup() {
  pinMode(pinLED, OUTPUT);
}

void loop() {
  if (analogRead(0) < 150) {
    digitalWrite(pinLED, HIGH);
  }
  else {
    digitalWrite(pinLED, LOW);
  }
}

Cambiar la intensidad de un LED según la luz ambiental

Para cambiar la intensidad del LED, no necesitamos una señal de 0 ó 1. Utilizaremos las señales de modulación de ancho de pulsos, usaremos los pines PWM, que emulan una señal analógica a partir de una señal digital. Generan una serie de pulsos que se pueden variar en su duración pero a frecuencia constante.

Material necesario:

  • Placa Arduino UNO o similar
  • Protoboard LED
  • Sensor LDR 1
  • resistencia de 220Ω
  • 1 resistencia de 10kΩ

Esquema:

En este caso el LED va conectado al pin digital 9, que es del tipo PWM, lo identificamos por el símbolo ~. Por lo demás, el esquema es igual que el anterior.

Esquema para cambiar la intensidad del LED y sensor LDR para Arduino

Código:

Tenemos las siguientes variables: valorLDR, corresponde al pin analógico del sensor LDR, pinLED, correspondel al pin digital 9 unido al LED, y la variable valor en la que guardaremos la lectura del sensor LDR.

int valorLDR = A0;
int pinLED = 9;
int valor;

Seguidamente, definimos los valores máximos y mínimos del fotorResistor, en este caso el máximo valor con plena luz lo ponemos en 300, si lo bajamos, el LED se apagará cuando la intensidad de luz ambiental sea mayor. El mínimo lo hemos difinido con un valor de 100, es el mínimo valor sin luz.

int maximo =300;
int minimo =100; 

En la función setup() inicializamos la comunicación serial y establecemos pinLED como salida, OUTPUT.

void setup(){
  Serial.begin(9600);
  pinMode(pinLED, OUTPUT);
}

En la función loop() leemos el valor del sensor LDR, seguidamente lo situamos entre el máximo y el mínimo con la función constrain(), ajustamos el valor entre 0 y 255 para utilizar el valor con analogWrite y por último, añadimos una pequeña pausa para estabilizar el proceso.

void loop(){
  valor = analogRead(valorLDR);
  //Serial.println(valor);
  valor =constrain(valor,minimo,maximo);

  valor =map(valor,maximo,minimo,0,255);
  Serial.println(valor);
  
  analogWrite(pinLED, valor);
  delay(100);
}

Código completo:

int valorLDR = A0;
int pinLED = 9;

int valor;

int maximo =300;
int minimo =100;

void setup(){
  Serial.begin(9600);
  pinMode(pinLED, OUTPUT);
}

void loop(){
  valor = analogRead(valorLDR);
  valor =constrain(valor,minimo,maximo);
  valor =map(valor,maximo,minimo,0,255);
  Serial.println(valor);  
  analogWrite(pinLED, valor);
  delay(100);
}

Artículos que te pueden interesar

Módulo bluetooth HC-06 con Arduino
Tutorial básico de uso del módulo bluetooth HC-06 en Arduino

Tutorial básico de uso del módulo bluetooth HC-06 en Arduino

| Actualizado:
Comentarios: 0

El objetivo de este tutorial es poder añadir un módulo bluetooth a nuestra placa de Arduino y poder comunicarnos con un teléfono móvil Android a través de una aplicación. Primero veremos cómo conectarlo al móvil y después, cómo configurar el…

Display de 4 dígitos y 7 segmentos
Funcionamiento del display de 4 dígitos y 7 segmentos con Arduino

Funcionamiento del display de 4 dígitos y 7 segmentos con Arduino

| Actualizado:
Comentarios: 0

Para mostrar más información, como la hora o la temperatura, necesitamos un display de más dígitos o conectar varios display de un solo dígito. En este tutorial veremos cómo conectar un display de 4 dígitos a Arduino. Contenido 1 Esquema…

Salidas analógicas en Arduino
Salidas analógicas en Arduino. Intensidad lumínica.

Salidas analógicas en Arduino. Intensidad lumínica.

| Actualizado:
Comentarios: 0

El objetivo de este proyecto es regular la intensidad de un led usando las salidas que soportan PWM y que corresponden a los pines digitales con el símbolo "~". En primer lugar, cambiaremos la intensidad de un solo led. Seguidamente,…

Pantalla LCD con Arduino UNO
¿Cómo conectar una pantalla LCD a Arduino UNO?

¿Cómo conectar una pantalla LCD a Arduino UNO?

| Actualizado:
Comentarios: 0

¿Quieres aprender a conectar una pantalla LCD con Arduino? En este post se mostrará cómo montar el circuito electrónico y el código necesario para comprobar su funcionamiento, mostrar caracteres en la pantalla y cómo desplazar el texto a la derecha…

Comentarios - 0

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *