Sensor de sonido – Encender LUZ con tres APLAUSOS actualización – Cano electrónica

Sensor de sonido – Encender LUZ con tres APLAUSOS actualización

En este artículo te mostraremos como activar un LED o un relevador cuando demos tres aplausos seguidos utilizando un módulo detector de sonido y un Arduino.

En un artículo anterior(Arduino y detector de sonido con un LED), aprendimos qué es y cómo funciona el módulo detector de sonido y como encender un LED con un aplauso. El detalle es que la habitación o el lugar donde esté instalado, debe de estar relativamente en silencio para que el módulo no detecte mas que el aplauso. Una posible solución, es ajustar el nivel de sonido mediante el potenciómetro que trae integrado el módulo. Otra solución es que cuando el detector de sonido identifique tres aplausos consecutivos en un lapso muy corto de tiempo active el LED o cualquier otro dispositivo como un relevador.

Material necesario:

Arduino UNOX1
ProtoboardX1
Módulo detector de sonidoX1
LEDX1
Resistencia 220 OhmX1
Cables varios

El módulo sensor de sonido tiene la capacidad de detectar la amplitud del sonido. Con ayuda del preset que incluye en el misma PCB, podemos seleccionar el nivel de sonido que nos interesa detectar.

Especificaciones
Función: Sensor detector de audio o sonido
Chip principal: LM393
Voltaje de alimentación mínimo: 4 V
Voltaje de alimentación máximo: 6 V
Respuesta en frecuencia: 50 – 20,000 Hz
Sensibilidad: 48-66 dB
Impedancia: 2,200 Ohmsd
Dimensiones: 32 mm X 16 mm
Número de pines: 3
Modelo: K1208047
Modelo: E9

Circuito.

PIN OUT:

Salida del módulo -> PIN 2

LED de salida -> PIN 3

Código

/*
 * www.ProveedoraCano.com
 * Con este programa encenderás un LED o activarás un módulo de relevador
 * cuando el sensor de sonido detecte tres aplausos seguidos
 * y apagará o desactivará el elemento después de haber detectado tres aplausos seguidos
 */

const int pinLED = 3;  //Define la salida del circuito el PIN 13 es LED de la placa de Arduino
const int pinMicrophone = 2; //Pin de entrada del módulo de sonido
bool state1 = false;  //se evita que cualquier sonido active el sonido
bool state2 = false;  //solo tres sonidos seguidos activan el sonido
bool state3 = false;
bool stateLED = false;  //pin de salida
bool soundDetected = false; // guarda las lecturas del PIN de salida
unsigned long tem; //guarda el tiempo en el que se recoge el sonido
 
void setup(){
  pinMode(pinLED, OUTPUT); // se define como salida
  pinMode(pinMicrophone, INPUT); //se define como pin de entrada
  Serial.begin(9600);
}
 
void loop(){
soundDetected = digitalRead(pinMicrophone);  // lee la entrada

  if ((soundDetected==true) && (state1==false) && (state2==false) && (state3==false)) {
  state1 = true;
  Serial.println("Estado1 true");
  tem = millis();
  delay (200);
  } else if ((soundDetected == true) && (state1==true) && (state2==false) && (state3==false) ) {
  state2 = true; 
  Serial.println("Estado2 true");
  delay (200);
  } else if ((soundDetected == true) && (state1==true) && (state2==true) && (state3==false) ) {
  state3 = true; 
  Serial.println("Estado3 true");
  delay (200);  
  }
//activa y desactiva sonidos
  if ((state1==true) && (state2==true) && (state3==true)){
  stateLED = !stateLED;
  digitalWrite(pinLED , stateLED);
  Serial.println("Reset");
  state1 = false; 
  state2 = false;
  state3 = false; 
  }
// se hace reset de los estados
  if (((millis()-tem) >= 500) && (state1==true) && (state2==false || state3==false)){ // Reseteamos estados al pasar 500 ms
  Serial.println("Reset Time");
  Serial.println((millis()-tem));
  state1 = false; 
  state2 = false;
  state3 = false;  
  }
  
}

Si deseamos encender una lámpara, lo único que debemos hacer es reemplazar el led por un módulo relevador. Acontinuación te mostramos el diagrama de conexión.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *