VENTILADOR AUTOMÁTICO

El objetivo de esta práctica es mover un motor DC cuando se detecte la falta de luz.

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 el motor al pin digital 9 y la LDR a la entrada analógica A0 de la placa Arduino

¡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 el motor avance y pare de forma intermitente.

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 bloque condicional «si… entonces… si no…» encargado de evaluar la intensidad de luz detectada por la LDR. Si la luz es mayor a 200, el motor parará, y si es menor de 200 se activará.

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!.

Utilizamos la instrucción analogRead para obtener el valor aportado por la LDR, y la instrucción analogWrite para indicar al motor la velocidad a la que debe girar.

void setup(){
    pinMode(9, OUTPUT);          // motor - pin de salida
} 
  
void loop() { // bucle infinito     

   if (analogRead(A0)>200){
       analogWrite(9, 0);        // el motor para
   }
   else {  
      analogWrite(9, 255);      // el motor gira
   }
              
}

Pulsa en el icono subir, y comprueba el resultado.