Saltar la navegación

Fotorresistencias

En nuestro nuevo circuito, la novedad es que la placa Arduino, ya no solo enviará órdenes a la protoboard sino que recibirá información de ella para actuar de una forma u otra. El objetivo es usar una fotorresistencia para medir la luz ambiental y, en función de ella, encender un led o apagarlo. Veamos este circuito explicado por el profe Carlos Morales:

circuito
/*
Introducimos el uso de una variable, que es como un cajón donde podemos almacenar provisionalmente un valor.
En este caso, a esa variable (cajón) la llamamos lightLevel porque es donde vamos a almacenar el valor
devuelto por la fotorresistencia. Lleva por delante “int” indicando que va a almacenar valores de tipo entero.
*/

int lightLevel;
void setup() {
   // configuramos el pin 13 como de salida
   pinMode(13, OUTPUT);
}

void loop() {
   /*
   El valor devuelto por la fotorresistencia será un número entre 0 y 1023.
   Ese dato lo leemos del pin analógico A5 y lo almacenamos en la variable lightLevel
   */
   lightLevel = analogRead(A5); // Entre 0 y 1023 el nivel de luz de la sala

   // Si ese valor es menor que 100 encendemos el led
   if (lightLevel<100) {
      digitalWrite(13, HIGH);   // activamos la salida 13 (a 5V)
    }
   // En caso contrario lo apagamos
   else {
      digitalWrite(13, LOW);    // desactivamos la salida 13
   }
}

Ahora veremos el mismo programa pero con la funcionalidad de capturar los datos por el puerto serie, para ir viéndolos por el monitor del ordenador:

int lightLevel;

void setup() {

   // configuramos el pin 13 como de salida
   pinMode(13, OUTPUT);

   // Preparamos el puerto serie para recibir datos
   Serial.begin(9600);
}

void loop() {

   lightLevel = analogRead(A5); // Entre 0 y 1023 el nivel de luz de la sala
   
   // Mandamos al serie (monitor) el valor detectado por la fotorresistencia
   Serial.println(lightLevel);
   if (lightLevel<100) {
      digitalWrite(13, HIGH);   // activamos la salida 13 (a 5V)
   }
   else {
      digitalWrite(13, LOW);  // desactivamos la salida 13
   }
   
   delay(500); // Esperamos medio segundo
}