- Ordenadores
- Arduino
- Cómo especificar funciones definidas por el usuario para su proyecto Arduino del sistema de entrada de teclado
Libro Relacionado
Por Brock Craft
La parte final del código para su sistema de entrada de teclado Arduino contiene cuatro funciones que manejan la identificación de la tecla pulsada, el envío de comandos al chip Max, la limpieza de la pantalla y la activación del mecanismo de la puerta.
La parte inteligente de este código es cómo se determina la pulsación de la tecla. Utiliza código de Michael Margolis en su libro de referencia indispensable, Arduino Cookbook, publicado por O’Reilly Media. Los pines digitales de las filas fueron colocados en HIGH durante setup(). Esto significa que la lectura de esos pines siempre se evaluará en ALTO, a menos que algo más los esté jalando hacia abajo, como una pulsación de tecla que los conecte a un pin de columna BAJO.
La función getKey pasa por cada uno de los pines digitales conectados a los pines de columna de su teclado y ajusta el pin a LOW. A continuación, comprueba si alguno de los pines de las filas está ahora también BAJO. Las resistencias pull-up que usó en setup() mantienen los pines de las filas ALTO – a menos que se haya presionado una tecla, conectándolos a un pin de la columna BAJA!
La sentenciawhile sólo funciona cuando existe una condición, en este caso cuando uno de los pines de la fila se ha vuelto BAJO debido a una pulsación de tecla. En este momento, se consulta el keyMap para encontrar el número correspondiente para esa fila y columna, y éste se almacena en la clave variable.
Luego, haces un poco de limpieza, ajustando todos los pines de las columnas a HIGH, para la próxima vez. Finalmente, el valor de la clave se devuelve a la parte del programa que lo solicitó. Whew!
Lo único que queda es abrir la puerta de tu fortaleza/castillo/laboratorio. Si aún no lo has hecho, añade la última parte de tu código al final. En la función unlock(), las cuatro instrucciones sendCommand() imprimen el mensaje «HI» en la pantalla. Es agradable recibir una cálida bienvenida, aunque sea breve. Entonces ocurre la acción.
El strikePin está escrito en HIGH, lo que proporcionará potencia al transistor que controla el relé. Cuando se activa, se permite que la energía pase a su mecanismo de desbloqueo durante el tiempo especificado por doorOpenTime. Luego pones strikePin en LOW para mantener alejados a los intrusos, espías y malhechores nefastos.
Si aún no lo has hecho, sube el código y cruza los dedos. Cuando usted presiona una tecla, usted debe ver su número mostrado en su módulo Led. Abre el monitor serie en el IDE de Arduino y observa lo que ocurre cuando presionas una tecla. Si todo está conectado correctamente, verá que las teclas identificadas y el códigoBuffer[] se van rellenando con los valores introducidos.
Si no ve los dígitos iluminándose en su módulo Led, revise sus conexiones nuevamente. Si no ve los valores correctos en su monitor de serie, asegúrese de que no hay ningún error en su código y de que los valores de rowPins y colPins son correctos. Después de confirmar que todo está funcionando, puede seguir adelante, para añadir el módulo de relé y apertura de puerta.
Si no funciona, no podrá probar el relé y el mecanismo de la puerta.
Para preparar tu Arduino para su vida útil como guardia de seguridad, establece DEBUG en false y sube el código por última vez. Quita la conexión USB de tu Arduino porque ya no la necesitarás. La energía será suministrada por su transformador de potencia.