Aprende a programar un circuito para controlar un zumbador en función de la luz que recibe, simulando un despertador solar.
Un sensor de luz es una resistencia que cambia su valor en función de la luz que detecta. Así, si recibe mucha luz (simulando un amanecer) puede activar un zumbador para que suene como una alarma. Si, por el contrario, no recibe luz, el zumbador permanecerá apagado.
NIVEL DE DIFICULTAD: PRINCIPIANTE.
DURACIÓN DE LA ACTIVIDAD: 30 min.
MATERIALES:
- 1 Fotoresistencia
- 1 Potenciómetro 10k
- 1 Placa Build&Code UNO
- 1 ProtoBoard
- 1 Zumbador
¿Qué es un sensor de luz?
Un sensor es un componente electrónico que, en función de cambios de alguna variable física como temperatura, luz, humedad, etc., puede enviar diferentes señales eléctricas al ordenador central para que se puedan interpretar y trabajar. Un sensor de luz, específicamente, es un sensor analógico con el que puedes detectar cambios de luz muy pequeños.
El funcionamiento del sensor de luz es muy simple. Tiene una resistencia interna que cambia de valor en función de la luz que recibe. Esto significa que si colocas el sensor en un espacio a oscuras, le llegará menos electricidad, ya que la placa detectará un valor cercano a 0. Si, por el contrario, colocas el sensor bajo un foco de luz, la placa detectará un valor cercano a 1023.
CONEXIONES:
- La placa protoboard recibe la electricidad del pin de 5V de la placa Build&Code UNO y vuelve de la protoboard a la placa Build&Code UNO a través del pin GND (tierra). Por ello, conecta todos los GND del circuito entre sí para que todos tengan el mismo valor de GND. En la imagen a continuación verás que el cable color negro es el GND, donde todos los Ground de cada componente están conectados entre sí y al GND de la placa. También verás un cable color rojo correspondiente a los 5V, que alimentan a la fotoresistencia.
- Para hacer sonar el zumbador, conéctalo a un pin digital. Este será el pin encargado de dar electricidad o no para hacer sonar el zumbador cuando tú quieras. En la imagen verás que el zumbador se encuentra conectado al pin digital 5 a través de un cable verde.
- Conecta el sensor de luz en serie con la resistencia. De esta conexión en común, saca un cable de la salida del sensor para conectarlo a una entrada analógica. Así se leerán todos los valores que salen del sensor. La imagen muestra cómo de la fotoresistencia sale un cable naranja hacia el pin analógico A0, para hacer las lecturas del sensor.
CÓDIGO DE PROGRAMACIÓN
Puedes realizar este ejercicio utilizando el programa Arduino o un software de programación por bloques compatible. A continuación encontrarás el código de programación necesario.
Código Arduino
Realizarás un programa que estará leyendo información del sensor de luz de manera continua. Si el sensor recibe mucha luz, enviará valores cercanos a 1000 mientras que si recibe poca luz, enviará valores cercanos a 0. De esta forma, puedes fijar un valor que te permita definir la luz de un amanecer (hora de despertar). Lo puedes fijar con el valor que determines, por ejemplo 850.
Una vez definido el valor, sólo tendrás que añadir una condición y, dependiendo de si se cumple o no, realizará una acción u otra. La condición que tendrás que escribir es si el valor de lectura del sensor de luz es inferior a 850. Si lo es, todavía será de noche, por lo que el zumbador estará apagado. Por otro lado, si la condición no se cumple y el valor el superior a 850, el zumbador tendrá que sonar ya que se habrá hecho de día.
Para hacer sonar el zumbador, programa el pin digital. En este caso es el nº 5, como salida. De esta manera será este pin digital el encargado de enviar electricidad al zumbador para hacerlo sonar cuando no se cumpla la condición. Cuando quieras que esté encendido, tendrás que darle un valor alto (HIGH o 1) y cuando quieras que esté apagado le darás un valor bajo (LOW o 0).
- Descarga el software Arduino y realiza el proceso de instalación.
- Abre el programa Arduino y, una vez en él, copia el siguiente programa:
int ldr = A0; //Sensor de luz conectado al pin analógico A0 int buzzer = 5; //Buzzer se conecta al pin digital 5 int valor = 0; //variable creada para guardar los valores del sensor void setup() { pinMode(buzzer, OUTPUT); //configuramos el pin digital 5 como salida } void loop() { valor = analogRead(ldr); //instrucción para leer y guardar el valor analógico (de 0 a 1023). El valor va desde 0(poca luz) a 1024 (mucha luz) if (valor < 850) //condición que define que recibe poca luz { digitalWrite(buzzer, 0); // si recibe poca luz, la salida digital del buzzer estará en valor bajo (no sonará) } else //no se cumple la condición (recibe mucha luz) { analogWrite(buzzer, valor/4); // si recibe mucha luz, la salida digital del buzzer estará enviando datos al buzzer } }
Código para software de programación por bloques compatible
- Descarga el software y realiza el proceso de instalación.
- Abre el programa y, una vez en él, copia el siguiente programa:
Algunos de los valores que aparecen en la programación surgen de establecer relaciones lineales entre los valores que pueden tomar los componentes implicados.
En este caso, el valor se divide por 4 para relacionar la entrada analógica del potenciómetro y la del pin digital PWM: 1024/256 = 4
RESULTADO DEL EJERCICIO
Dependiendo del valor detectado por el sensor de luz y el cumplimiento o no cumplimiento de la condición establecida, el zumbador sonará al detectar un valor superior a 850, replicando el funcionamiento de un despertador solar.