Piezoeléctrico apertura de puerta – Cano electrónica

Piezoeléctrico apertura de puerta

En este artículo aprenderemos a conectar un sensor piezoeléctrico a un Arduino y aprovecharemos su funcionamiento para activar una cerradura electrónica para la apertura de una puerta.

Sensores piezoeléctricos.

Los sensores piezoeléctricos se utilizan como sensores de vibración o golpe, pues permiten convertir la presión aplicada a un voltaje. Se utilizan en proyectos de detección de golpes en puertas, como micrófonos de instrumentos y mucho más.

Pueden funcionar como sensores o como bocinas de baja calidad.

Material.

1 x Sensor piezoeléctrico
1 x Arduino Uno
1 xResistencia 1M ohm
1 xResistencia 220 Ohm
1 x LED 5mm
1 x Relevador 1 canal
1 xCerradura electrónica
1 xBornera de 2 terminales
Cables varios

Conexión sencilla con Arduino

El programa nos indicará, en el Monitor Serie, un valor dependiendo de la fuerza que se aplique (ya sea presionando o impactando) sobre el piezoeléctrico.

Para conectarlo, lo podemos hacer utilizando un PIN analógico. Es importante que conectemos en paralelo una resistencia de 1M Ohm.

Para este caso lo conectaremos al pin A1.

Programa básico con Arduino

int inputPin = A1;


 void setup () {
   // pone su código de instalación aquí, para ejecutarlo una vez:
   pinMode (inputPin, INPUT);


   Serial.begin (9600);
 }

 void loop () {
   // pone su código principal aquí, para ejecutar repetidamente:
   Serial.println (analogRead (inputPin));
   
  
 }

Programa apertura de puerta.

El programa que vamos a realizar está basado en un artículo anterior Encender un LED con tres aplausos. La modificación es que al detectar tres golpes (o toquidos de puerta), se activará la solenoide de la cerradura eléctrica por tres segundos. Además, un LED nos indicará que se ha activado la cerradura, pasados 3 segundos, la cerradura y el LED se apagarán.

Diagrama.

Conexiones:
A1 -> Sensor Piezo eléctrico
Led -> PIN5
Relevador -> PIN7

Alimentación de cerradura 12V

Conectar en paralelo al piezo eléctrico una resistencia de 1M Ohm.

Programa de Arduino

/*
 * www.ProveedoraCano.com
 * Con este programa encenderás un LED y activarás un módulo de relevador
 * ´para encender una cerradura electrónica o un electro imán
 * cuando el sensor de sonido detecte tres golpes seguidos se encenderá
 * después de 3 segundos el led se pagará
 */

const int pinLED = 5; 
const int puerta = 7;  
int pinMicrophone = A1; //Pin de entrada del piezo eléctrico
bool state1 = false;  //se evita que cualquier golpe active el sonido
bool state2 = false;  //solo tres golpes seguidos activan el sonido
bool state3 = false;
bool stateLED = false;  //pin de salida
int soundDetected = 0; // guarda las lecturas del PIN de salida
unsigned long tem; //guarda el tiempo en el que se recoge el golpe
 
void setup(){
  pinMode(pinLED, OUTPUT); // se define como salida
   pinMode(puerta, OUTPUT); // se define como salida
  pinMode(pinMicrophone, INPUT); //se define como pin de entrada
  Serial.begin(9600);
}
 
void loop(){
digitalWrite(puerta, 1);
soundDetected = analogRead(pinMicrophone);  // lee la entrada

  if ( (soundDetected > 40) &&  (state1==false) && (state2==false) && (state3==false)) {
  state1 = true;
  Serial.println("Estado1 true");
  Serial.println(soundDetected);
  tem = millis();
  delay (100);
  } else if ( (soundDetected > 40) &&  (state1==true) && (state2==false) && (state3==false) ) {
  state2 = true; 
  Serial.println("Estado2 true");
   Serial.println(soundDetected);
  delay (100);
  } else if ((soundDetected > 40) &&  (state1==true) && (state2==true) && (state3==false) ) {
  state3 = true; 
  Serial.println("Estado3 true");
  Serial.println(soundDetected);
  delay (100);  
  }
//activa y desactiva sonidos
  if ((state1==true) && (state2==true) && (state3==true)){
    digitalWrite(puerta, 0);
  stateLED = !stateLED;
  digitalWrite(pinLED , stateLED);
  // se espera 3 segundos para que se vuelva a cerrar
    delay (3000);
    stateLED = !stateLED;
    digitalWrite(pinLED , stateLED);
    digitalWrite(puerta, 1);
  Serial.println("Reset");
  state1 = false; 
  state2 = false;
  state3 = false; 
  }
// se hace reset de los estados
  if (((millis()-tem) >= 800) && (state1==true) && (state2==false || state3==false)){ // Reseteamos estados al pasar 800 ms
  Serial.println("Reset Time");
  Serial.println((millis()-tem));
  state1 = false; 
  state2 = false;
  state3 = false;  
  }
  
}

Nota:

Se puede sustituir la cerradura electrónica por otro dispositivo como un electromán.

El proyecto se podría mejorar instalando un zumbador para que además de tener una alerta visual (LED de 5mm) tener una alerta sonora que nos indique que está abierta la puerta.

También se puede agregar un botón al interior del recinto para que, al momento en el que uno quiera salir, no tenga que tocar la puerta, solo presionaría un botón y se abriría la puerta.

Video

Deja un comentario

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