ENCENDIDO NOCTURNO

El objetivo de esta práctica es encender un led cuando una LDR detecte poca luz ambiente.

1. Circuito: Cómo realizar el circuito

Para realizar este circuito necesitas los siguientes materiales:

Para trabajar en una protoboard, es importante conocer las conexiones que existen en ella. Puedes utilizar el siguiente enlace para leer información detallada sobre las conexiones de la protoboard.

Conectamos los componentes a los siguientes pines de la placa Arduino:

  • 12   – Led rojo
  • A0 – LDR

¡Ya sólo nos queda programar!

Para programar la placa Arduino puedes utilizar diferentes lenguajes. Nosotros nos vamos a centrar en dos opciones

  • MBlock – programación basada en bloques
  • Arduino IDE – programación basada en líneas de código

2. Programación con mBlock

El objetivo de este programa es muy sencillo: conseguir que los leds emulen la secuencia de un semáforo y emita un sonido cuando el tráfico esté detenido.

El primer paso es configurar la tarjeta, sigue los pasos que te indicamos en «Mblock: primeros pasos«  Una vez configurada la tarjeta comenzamos con la programación.

Utilizamos el bloque «cuando clic en bandera» para iniciar el programa. Dentro ubicaremos el bloque «para siempre» para crear un bucle infinito. En él introducimos un condicional «Si… entonces…sino…» para evaluar el nivel de luz. La lectura de la LDR se realiza a través de un pin analógico, por lo que utilizaremos el bloque «leer pin analógico» para conocer la luz que está detectando. Si la lectura del pin analógico es menor que 200, encendemos el led, y si no lo mantenemos apagado.

Pulsa la bandera verde y comprueba el resultado.

3. Programación con Arduino IDE

Vamos a realizar el mismo programa, utilizando líneas de código con Arduino IDE

El primer paso es configurar la tarjeta, sigue los pasos que te indicamos en «Arduino IDE: primeros pasos«.

Una vez configurada la tarjeta comenzamos con la programación. Recuerda que al trabajar con código debemos respetar la sintaxis: Cuidado con las letras mayúsculas y minúsculas y con los signos de puntuación. ¡Son importantes!.

void setup(){
    pinMode(12, OUTPUT);          // led rojo - pin de salida
} 
  
void loop() { // bucle infinito     

    if (analogRead(A0)<200){             // si ldr < 200   
        digitalWrite(12, HIGH);          // enciende el led
    }
    else {
         digitalWrite(12, LOW);         // si no apaga el led
   } 
                
}

Pulsa en el icono subir, y comprueba el resultado.