Paso 2: Programar tu Arduino
Tienes que subir nuestro bosquejo antes de realizar cualquiera de los componentes electrónicos por lo que podemos probar como nos va. El código se coloca por debajo y tiene comentarios a lo largo. Necesita que su software de Arduino/controladores instalados para este paso!1) Descargar el archivo adjunto a continuación
2) conectar tu Arduino a una entrada USB en su computadora.
3) abrir el archivo en un Arduino Sketch (o si este da problemas, cambiar el archivo a un .txt y copiar/pegar el código en un dibujo vacío) y compilación/verificar
4) subirlo a tu Arduino!
En los pasos por venir, proporcionará consejos para solucionar problemas que implican partes específicas del código (algunos parámetros tendrá que ser ajustado para cada sistema). Para los interesados en los detalles del código, he incluido un resumen a continuación. El dibujo está bien comentado a lo largo, pero es un archivo de tamaño considerable y un poco torpe interpretar a veces (no dude en hacerlo más elegante y asegúrese de compartir cualquier éxito en los comentarios!).
Líneas 4-33: define el Arduino alfileres, constantes y variables que vamos a utilizar en el código.
-Probablemente tienes que ajustar a estos para su portero particular. Le guiará a través de este
Líneas 35-47 (setup): define modos del perno e iniciar monitoreo serial
Líneas 49-84, (lazo): define el comportamiento del circuito como espera a escuchar (ver) un golpe (flash)
-Esto es donde hemos creado la función de fondo/promedio, que continuamente las muestras datos y calibra en consecuencia valores de umbral. Si se registra una señal de luz o sonida por encima del valor umbral, entonces ejecuta "listenToSecretKnock"
Líneas 86-161 (listenToSecretKnock): registra los golpes registrados por el micrófono
-Registra el tiempo entre golpes (longitud de retardo) en una matriz y envía los datos a validateKnock. Parte de esta sección está dedicada a la dirección los indicadores de LED que parpadean a lo largo en el tiempo con los golpes registrados. Si se verifica la cerradura, la puerta se bloquee o desbloquee la puerta cuando dependiendo de la "doorState" (que indica si nuestro pasado fue bloqueado o desbloqueado).
Líneas de 163-238 (listenToSecretPhotoKnock): parpadea la luz de los registros registrados por el fotodiodo
-Básicamente lo mismo como líneas de parámetros y señal 86-161, pero ahora con el fotodiodo. Este es un buen lugar para empezar si usted está buscando para optimizar el código un poco más, puesto que repite mucho de lo que es anterior (en mi lista de todo)
Líneas 239-255 (triggerDoorUnlock): se enciende el motor para abrir la puerta
-Comprensión de esta sección tiene que ver con conocer el comportamiento de un puente de h, que dicta la dirección de la tensión en el motor. Puede que desee ver la hoja de Mota de su chip para entender mejor (esta fue la que usé: http://html.alldatasheet.com/html-pdf/28616/TI/SN754410NE/24/1/SN754410NE.html)
Las líneas 257-272 (triggerDoorLock): ejecuta el motor en sentido contrario para cerrar la puerta
-Esta sección también repite algunos codificación y podría beneficiarse de un poco la limpieza.
Líneas 274-349 (validateKnock): comprueba si el patrón grabado es un partido de la llave.
-Se normaliza cada golpe a la pausa más larga y comparan los intervalos relativos entre golpes. Esto significa que usted puede hacer el mismo patrón rápido o lento, y todavía debe activar el motor.