. E-7 Cerradura digital con S4A y Arduino

En este ejemplo vamos a desarrollar una cerradura que se abre usando un teclado.

El teclado que usaremos tiene 6 teclas, 5 para introducir la clave y una más para abrir la puerta. Las 5 teclas se podrían identificar con las vocales (a, e, i ,o, u) y la clave podría estar formada por las vocales de una palabra, en este caso la palabra es AbIErtO, es decir, la vocales AIEO  que se corresponderán con las teclas 1,3,2,4. En el vídeo podemos ver como se abre y se cierra la puerta, en un desarrollo más realista la puerta puede ser de verdad y el servo mover un pestillo.

Material utilizado

1 placa Arduino
1 placa de prototipos
6 pulsadores
6 resistencias 10KΩ
2 leds (rojo y verde)
2 resistencias 270Ω
1 servo 180º

Circuito

Se utilizarán 5 entradas analógicas para detectar las 5 teclas de la clave, al pulsar la tecla se suministrará 5v a la entrada por lo que la lectura de la entrada dará un valor cercano a 1023.

También se utiliza una entrada digital (Digital2) conectada a la tecla de apertura. Cuando se pulsa esta tecla se suministrarán 5v a la  entrada y el sensor dará una lectura True.

Hay dos salidas 10 y la 11 para encender (o apagar) los leds (10 rojo, 11 verde)

Para el servo se utiliza la salida 12.

 



Código

Utilizamos dos variables: secreto y teclado. En la variable secreto tendremos la calve (con números) de apertura de la cerradura, en nuestro caso será 1324; en la variable teclado se irá acumulando los números de las teclas pulsadas.

Comenzamos inicializando las variables secreto a 1324 y teclado a 0, cerrando la puerta (el servo a 90º) y encendiendo el led rojo.

En el bucle continuo:

  • Detectaremos si se ha pulsado alguna tecla (6 condiciones sobre el valor de los sensores).
  • En caso de pulsar una tecla de las 5 dedicadas a a la clave añadirá a la variable teclado un nuevo número.
  • Si se pulsa la tecla de apertura se compararán las variables secreto y teclado:
  • Si coinciden se abrirá al puerta: se girará el servo a 0º, se apagará el led rojo y se encenderá el led verde. Además se reiniciará la variable teclado.
  • Si no coinciden las variables se girará el servo a 90º, se apagará el led verde y se encenderá el rojo, también se inicializará la variable teclado a 0.
  • La espera de 0.2 segundos se utiliza como tiempo de espera para evitar que se repita el número de la tecla pulsada.