Crear una alarma con el módulo KY-008, una fotoresistencia y un buzzer
| Actualizado:
Comentarios: 0

En esta práctica haremos una alarma que se conectará en el momento en que el haz de luz del puntero no llegue a la fotorresistencia. Primero, haremos que la señal de alarma nos avise por el monitor serial y después añadiremos un buzzer para que nos de un aviso sonoro.
Contenido
Alarma silenciosa con el módulo KY-008 y un LDR
Para la creación de la alarma aprovecharemos las propiedades de las fotoresistencias ya que su resistencia varía en función de la luz que recibe. A medida que aumenta la luz, su resistencia disminuye. Así que utilizaremos la lectura del sensor para saber si el haz de luz producido por el puntero láser incide sobre la fotorresistencia o si, por el contrario, hay algo que impide que llegue el haz de luz, lo que activaría la alarma.
Material necesario:
- Placa Arduino o similar
- Protoboard
- Puntero láser, módulo KY-008
- Sensor fotorresistencia (LDR)
- Una resistencia de 10 KΩ
- Cables
Esquema:
Unimos el pin de alimentación (S) del módulo kY-008 al pin digital 8 de la placa y el GND, al GND de la placa de Arduino. Para el LDR utilizamos una resistencia y leeremos su valor a través del pin analógico A0 de Arduino.

Explicación del código:
Primero, indicamos qué pin es el que vamos a utilizar para alimentar el puntero láser (pin 8), indicamos también el de la lectura de la resistencia (A0) y creamos una variable denominada lectura para guardar el valor de la resistencia.
int laserPin = 8;
int sensor = A0;
int lectura;
En la función setup() indicamos que el pin 8 es de salida (OUTPUT), el láser va a estar encendido, lo indicamos con digitalWrite(laserPin, HIGH) e inicializamos el monitor serial.
void setup(){
pinMode(laserPin, OUTPUT);
Serial.begin(9600);
digitalWrite(laserPin, HIGH);
}
En la función loop() leeremos el valor del sensor, que guardaremos en la variable lectura, y que mostraremos por el monitor serial. Comprobaremos que su valor es menor de 100, si se cumple la condición, significa que el haz de luz no incide sobre el fotorresistor, por lo que la alarma se activará.
void loop() {
lectura = analogRead(sensor);
Serial.println(lectura);
if(lectura < 100){
Serial.println("Alarma");
}
}
¿Por qué utilizamos un valor de 100 para comparar? porque con la luz ambiental el valor de lectura varía entre 40-60, mientras que si incide el láser sobre el fotorresistor este varía entre 590-620. Tomando un valor de 100 hay un margen para asegurarnos de que el láser no incide sobre el LDR.
Código completo:
int laserPin = 8;
int sensor = A0;
int lectura;
void setup() {
pinMode(laserPin, OUTPUT);
Serial.begin(9600);
digitalWrite(laserPin, HIGH);
}
void loop() {
lectura = analogRead(sensor);
Serial.println(lectura);
if(lectura < 100){
Serial.println("Alarma");
}
}
Alarma con el módulo KY-008, un buzzer y un LDR
Añadimos un buzzer activo para generar un sonido de alarma cuando el haz de luz no incida sobre la fotorresistencia.
Material necesario:
- Placa Arduino o similar
- Protoboard
- Puntero láser, módulo KY-008
- Buzzer activo módulo KY-012.
- Sensor fotorresistencia (LDR)
- Una resistencia de 10 KΩ
- Cables
Esquema de montaje:

Código:
Al código de la práctica anterior le añadimos una nueva variable, buzzerPin, que nos indica a qué pin hemos conectado el zumbador.
En la función setup() indicamos que el pin 9, al que esta conectado el zumbador, es un pin de salida de corriente y con analogWrite() indicamos que en principo no sonará.
En la función loop() comprobamos si el haz de luz incide sobre el LDR, en caso de que no incida, hacemos sonar la alarma con analogWrite(), podemos variar el valor entre 0 y 255, 255 será para un sonido más intenso. Y si el haz de luz esta iluminando el fotorresistor, el valor será 0, haciendo que no suene la alarma.
int buzzerPin = 9;
int laserPin = 8;
int sensor = A0;
int lectura;
void setup() {
pinMode(buzzerPin, OUTPUT);
pinMode(laserPin, OUTPUT);
Serial.begin(9600);
digitalWrite(laserPin, HIGH);
analogWrite(buzzerPin,0);
}
void loop() {
lectura = analogRead(sensor);
Serial.println(lectura);
if(lectura < 100){
Serial.println("Alarma");
analogWrite(buzzerPin,255);
}else{
analogWrite(buzzerPin,0);
}
}