Cómo declarar variables para codificar el teclado para su entrada de proyecto Arduino sistema de teclado
Una vez que tenga los componentes del teclado y la pantalla en lugar en su tablero, es el momento de cargar el código a su Arduino. Tome un momento para mirar el código y luego subirlo a su bordo.
En la primera parte, antes de la instalación, usted declara variables para el teclado y la pantalla.
const int numberOfDigits = 4- // El número de dígitos en el 7 segmentos displayconst int numRows = 4- // Número de filas de la keypadconst int númeroColumnas = 3 // Número de columnas de la keypadconst int DebounceTime = 20 / / Número de milisegundos para cambiar a convertirse stableconst int doorOpenTime = 5000- // ¿Por cuánto tiempo desea que el tope de la puerta permanezca openconst int strikePin = 9- // El pin que acciona el relé de la puerta strikeconst int slaveSelect = 10 // Pin utiliza para activar el pasador de esclavo en el código MAX72xxchar [4] = {'1', '2', '3', '4'} - // Establezca su herechar código codeBuffer [4] - // Almacena el código que Actualmente está siendo enteredboolean DEBUG = cierto- // Establecer en true para los mensajes de estado de impresión a la portint serie keypressCount = 0- // Cuenta cuántas veces una tecla se ha presionado // El mapa de teclado define el carácter regresó cuando su clave es carbón pressedconst mapa de teclas [numRows] [númeroColumnas] = {{'1', '2', '3'}, {"4", "5", "6"}, {'7', '8', '9'} , {'*', '0', '#'}} - const int rowPins [numRows] = {7, 4, 2, 5} - // Las filas del teclado del 0 al 3const int colPins [númeroColumnas] = {6, 8 , 3} - // Las columnas del teclado del 0 al 2
los número de dígitos variable establece el controlador de LED IC con el número adecuado de dígitos. numRows y NúmeroColumnas almacenar el número de filas y columnas en el teclado, 4 y 3, respectivamente. Utiliza estos para ver qué tecla está siendo presionada. los debounceTime asegura que la tecla se presiona se detecta con precisión. Establece la cantidad de tiempo que la puerta se mantiene abierta con el doorOpenTime variable.
los strikePin variable define la cual se activará pin digital cuando se introduce el código correcto. Esto se aplica potencia al relé, que se cierra para accionar el mecanismo de cerradura de la puerta. Es posible que desee utilizar un nombre diferente si usted está usando otro tipo de mecanismo, como una cerradura de puerta magnética o una cerradura de perno gota.
slaveSelect define un pin digital que se utiliza para indicar que está enviando datos. El esclavo seleccionar (o " selección de chip ") pin (SS) es un pasador de comandos en el IC que conecta los pines externos en los circuitos internos.
En aplicaciones con varios pilotos LED que están todos conectados a los cables de entrada, usted quiere ser capaz de seleccionar si es o no está habilitada. El IC sólo responde a los comandos cuando se activa su esclavo selecto pin modo, que le permite diferenciar entre este controlador y otros que podría estar utilizando.
Sólo se utiliza un solo IC en este proyecto, pero usted todavía tiene que dejar que el chip se sabe cuando se va a enviar los datos, y eso es lo que hace SS pin.
Dos Char las variables se utilizan para el código de acceso de su uso. El primero, código [], almacena los dígitos del código de acceso. Puede establecer que se trata de lo que te apetezca. El segundo Char, codeBuffer [], tiendas (o " tampones ") las teclas que se han pulsado. Cuando estos dos partidos, ¡listo! El Arduino activa strikePin. No hay forma de establecer el código desde el teclado - usted tiene que hacerlo mediante programación.
Este programa tiene una característica poco de depuración útil construida en Eso es lo que la siguiente variable es para: a. boolean llamado DEBUG. Recordemos que las variables booleanas sólo pueden ser verdaderas o falsas. Al establecer este a cierto, puede utilizar un condicional si declaración para ejecutar ciertas líneas de código que no se ejecutará si la ponemos a falso.
Por ejemplo, en el código de imprimir una gran cantidad de variables en el puerto serie, para probar que el teclado funciona correctamente. Pero después de que su sistema está instalado en su puerta, usted no necesita imprimir nada. En lugar de borrar todos los Serial.println () declaraciones, usted puede simplemente volver a la DEBUG variable y configurarlo para que falso.
los keypressCount tiendas cuántos dígitos se han presionado hasta el momento. Cuando se pulsa el cuarto, la verdadera acción ocurre.
los Char variable mapa de teclas [] [] es una matriz bidimensional. Una matriz bidimensional es simplemente una matriz de matrices. Imagínese un menú para un restaurante italiano. Es posible que tenga una docena de elementos de menú a elegir: palitos de pan, sopa, pizza, lasaña, ensalada, vino tinto, y así sucesivamente.
Usted puede almacenar estos simplemente como una sola matriz, pero también se puede organizarlos por tipo: arrancadores {palitos de pan, sopa, platos principales} {pizza, lasaña, pastas, bebidas} {agua, vino tinto, vino blanco}. De esta manera usted puede hacer referencia a los elementos, ya sea individualmente o en colecciones. Una sola matriz dimensión, ya que con su código [] matriz, tiendas elementos (elementos de datos individuales) como este:
Int unArray [] = {0,1,2,3} -
Una matriz bidimensional almacena elementos como esto:
Int unArray [] [] = {{0,1,2,3}, {3,2,3,0}, {4,3,8,1}, {2,3,4,5}} -
Cuando se lee a partir de una matriz de dos dimensiones, el primer valor de los corchetes especifica qué elemento desea leer- el segundo valor entre paréntesis indica el elemento dentro del elemento especificado. En el trabajo con arrays, el sistema de numeración comienza desde cero. Así, por ejemplo, en la matriz de dos dimensiones anteriormente, unArray [2] [0] está llevando a cabo el valor 4.
los mapa de teclado simplemente se emplea para registrar cuales dígitos están en el teclado. Es, literalmente, un mapa de las llaves.
Cuando se pulsa una tecla, se utiliza la mapa de teclado para identificar qué número es en ese lugar, por lo que se puede comparar con el código predeterminado.
Las dos últimas variables son matrices que almacenan cuál de los pines digitales de tu Arduino las filas y columnas de tu teclado están conectados.