Tabla de contenido:
- Paso 1: Comenzando
- Paso 2: uso de un teclado de 12 dígitos
- Paso 3: uso de un teclado de 16 dígitos
- Paso 4: Proyecto de ejemplo - Sistema de acceso con PIN
Video: Uso de teclados numéricos con Arduino: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Los teclados numéricos pueden proporcionar una alternativa simple para el usuario final para varias interfaces para sus proyectos. O si necesita muchos botones, pueden ahorrarle mucho tiempo con respecto a la construcción. Pasaremos por conectarlos, usando la biblioteca Arduino y luego terminaremos con un boceto de ejemplo útil.
Paso 1: Comenzando
No importa de dónde obtenga sus teclados, asegúrese de que puede obtener la hoja de datos, ya que esto le facilitará la vida al conectarlos. Por ejemplo, la imagen de este paso.
La hoja de datos es importante ya que le dirá qué pines o conectores en el teclado son para las filas y columnas. Si no tiene la hoja de datos, deberá determinar manualmente qué contactos son para las filas y columnas.
Esto se puede hacer usando la función de continuidad de un multímetro (el zumbador). Comience colocando una sonda en el pin 1, la otra sonda en el pin 2 y presione las teclas una por una. Tome nota de cuándo un botón completa el circuito, luego pase al siguiente pin. Pronto sabrás cuál es cuál. Por ejemplo, en el ejemplo del teclado, los pines 1 y 5 son para el botón "1", 2 y 5 para "4", etc.
En este punto, descargue e instale la biblioteca Arduino del teclado. Ahora demostraremos cómo usar ambos teclados en ejemplos simples.
Paso 2: uso de un teclado de 12 dígitos
Usaremos el pequeño teclado negro, un Arduino Uno compatible y una pantalla LCD con una interfaz I2C para fines de visualización. Si no tiene una pantalla LCD, siempre puede enviar el mensaje de texto al monitor en serie.
Conecte su LCD y luego conecte el teclado al Arduino de la siguiente manera: Fila de teclado 1 a Arduino digital 5 Fila de teclado 2 a Arduino digital 4 Fila de teclado 3 a Arduino digital 3 Fila de teclado 4 a Arduino digital 2 Columna de teclado 1 a Arduino digital 8 Columna de teclado 2 a Arduino digital 7 Columna 3 del teclado a Arduino digital 6 Si su teclado es diferente al nuestro, tome nota de las líneas en el boceto de:
// definición del tipo de teclado
Como necesita cambiar los números en las matrices rowPins [ROWS] y colPins [COLS]. Ingresa los números de pin digitales conectados a las filas y columnas del teclado, respectivamente.
Además, las teclas de matriz almacenan los valores que se muestran en la pantalla LCD cuando se presiona un botón en particular. Puede ver que lo hemos hecho coincidir con el teclado físico utilizado, sin embargo, puede cambiarlo a lo que necesite. Pero por ahora, ingrese y cargue el siguiente boceto una vez que esté satisfecho con las asignaciones de número de fila / pin:
/ * Teclado numérico y LCD I2C https://tronixstuff.com Utiliza la biblioteca de teclado para Arduino https://www.arduino.cc/playground/Code/Keypad de Mark Stanley, Alexander Brevig * /
#include "Teclado.h"
#include "Wire.h" // para LCD I2C #include "LiquidCrystal_I2C.h" // para módulo LCD de bus I2C // https://www.dfrobot.com/wiki/index.php/I2C/TWI_LCD1602_Module_(SKU: _DFR0063) LiquidCrystal_I2C lcd (0x27, 16, 2); // establece la dirección LCD en 0x27 para una pantalla de 16 caracteres y 2 líneas
// definición del tipo de teclado
const byte FILAS = 4; // cuatro filas const byte COLS = 3; // claves de caracteres de tres columnas [ROWS] [COLS] = {{'1', '2', '3'}, {'4', '5', '6'}, {'7', '8', '9'}, {'*', '0', '#'}};
byte rowPins [ROWS] = {
5, 4, 3, 2}; // conectarse a los pines de fila del byte del teclado colPins [COLS] = {8, 7, 6}; // conectarse a los pines de columna del teclado
int count = 0;
Teclado teclado = Teclado (makeKeymap (teclas), rowPins, colPins, ROWS, COLS);
configuración vacía ()
{lcd.init (); // inicializa el lcd lcd.backlight (); // enciende la luz de fondo de la pantalla LCD}
bucle vacío ()
{char key = keypad.getKey (); if (clave! = NO_KEY) {lcd.print (clave); contar ++; si (cuenta == 17) {lcd.clear (); cuenta = 0; }}}
Y los resultados del boceto se muestran en el video. Entonces, ahora puede ver cómo las pulsaciones de botones se pueden traducir en datos para usar en un boceto. Ahora repetiremos esta demostración con el teclado más grande.
Paso 3: uso de un teclado de 16 dígitos
Usaremos el teclado 4 × 4 más grande, compatible con Arduino Uno y, para variar, el LCD I2C de Akafugu para fines de visualización. Nuevamente, si no tiene una pantalla LCD, siempre puede enviar el mensaje de texto al monitor en serie. Conecte la pantalla LCD y luego conecte el teclado al Arduino de la siguiente manera:
- Fila de teclado 1 (patilla ocho) a Arduino digital 5
- Fila de teclado 2 (pin 1) a Arduino digital 4
- Fila de teclado 3 (pin 2) a Arduino digital 3
- Fila de teclado 4 (pin 4) a Arduino digital 2
- Columna de teclado 1 (pin 3) a Arduino digital 9
- Columna de teclado 2 (pin 5) a Arduino digital 8
- Columna de teclado 3 (pin 6) a Arduino digital 7
- Columna de teclado 4 (pin 7) a Arduino digital 6
Ahora para el boceto - observe cómo nos hemos acomodado para el teclado numérico más grande: la columna extra en la matriz de teclas de caracteres , el pin extra en la matriz colPins y el byte COLS = 4.
/ * Teclado numérico y LCD I2C https://tronixstuff.com Utiliza la biblioteca de teclado para Arduino https://www.arduino.cc/playground/Code/Keypad de Mark Stanley, Alexander Brevig * /
#include "Teclado.h"
#include "Wire.h" // para LCD I2C #include "TWILiquidCrystal.h" // https://store.akafugu.jp/products/26 LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
const byte FILAS = 4; // cuatro filas
const byte COLS = 4; // claves de caracteres de cuatro columnas [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [FILAS] = {5, 4, 3, 2}; // conectarse a los pines de fila del byte del teclado colPins [COLS] = {9, 8, 7, 6}; // conectarse a los pines de la columna del teclado int count = 0;
Teclado teclado = Teclado (makeKeymap (teclas), rowPins, colPins, ROWS, COLS);
configuración vacía ()
{Serial.begin (9600); lcd. comienzo (16, 2); lcd.print ("¡Prueba del teclado!"); retraso (1000); lcd.clear (); }
bucle vacío ()
{char key = keypad.getKey (); if (clave! = NO_KEY) {lcd.print (clave); Serial.print (clave); contar ++; si (cuenta == 17) {lcd.clear (); cuenta = 0; }}}
Y nuevamente puedes ver los resultados del boceto de arriba en el video.
Ahora, para un proyecto de ejemplo, uno que probablemente sea el uso más solicitado del teclado numérico …
Paso 4: Proyecto de ejemplo - Sistema de acceso con PIN
El uso más solicitado para un teclado numérico parece ser una aplicación de estilo "PIN", donde se le indica al Arduino que haga algo basado en un número correcto ingresado en el teclado. El siguiente esquema utiliza el hardware descrito para el esquema anterior e implementa un sistema de entrada de PIN de seis dígitos.
Las acciones a realizar se pueden insertar en las funciones correctPIN () e incorrectoPIN (). Y el PIN se establece en la matriz de caracteres PIN [6]. Con un poco de trabajo adicional, también podría crear su propia función de cambio de PIN.
// Interruptor PIN con teclado numérico de 16 dígitos // https://tronixstuff.com #include "Keypad.h" #include #include LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
const byte FILAS = 4; // cuatro filas
const byte COLS = 4; // claves de caracteres de cuatro columnas [ROWS] [COLS] = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, {'7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins [FILAS] = {5, 4, 3, 2}; // conectarse a los pines de fila del byte del teclado colPins [COLS] = {9, 8, 7, 6}; // conectarse a los pines de columna del teclado
Teclado teclado = Teclado (makeKeymap (teclas), rowPins, colPins, ROWS, COLS);
char PIN [6] = {
'1', '2', 'A', 'D', '5', '6'}; // nuestro número secreto (!) intento de caracteres [6] = {'0', '0', '0', '0', '0', '0'}; // utilizado para la comparación int z = 0;
configuración vacía ()
{Serial.begin (9600); lcd. comienzo (16, 2); lcd.print ("Bloqueo de PIN"); retraso (1000); lcd.clear (); lcd.print ("Ingresar PIN …"); }
void correctPIN () // haga esto si ingresó el PIN correcto
{lcd.print ("* PIN correcto *"); retraso (1000); lcd.clear (); lcd.print ("Ingresar PIN …"); }
void wrongPIN () // haga esto si ingresó un PIN incorrecto
{lcd.print ("* Vuelve a intentarlo *"); retraso (1000); lcd.clear (); lcd.print ("Ingresar PIN …"); }
anular checkPIN ()
{int correcto = 0; int i; para (i = 0; i <6; i ++) {
si (intento == PIN )
{correcto ++; }} if (correcto == 6) {correctPIN (); } más {PIN incorrecto (); }
para (int zz = 0; zz <6; zz ++) {intento [zz] = '0'; }}
vacío readKeypad ()
{char key = keypad.getKey (); if (clave! = NO_KEY) {intento [z] = clave; z ++; interruptor (tecla) {caso '*': z = 0; rotura; caso '#': z = 0; retraso (100); // para antirrebote adicional lcd.clear (); checkPIN (); rotura; }}}
bucle vacío ()
{readKeypad (); }
El proyecto se demuestra en el video.
Así que ahora tiene la capacidad de usar teclados de doce y dieciséis botones con sus sistemas Arduino. Estoy seguro de que en un futuro próximo se le ocurrirá algo útil e interesante utilizando los teclados.
Esta publicación es presentada por pmdway.com: todo para fabricantes y entusiastas de la electrónica, con entrega gratuita en todo el mundo.
Recomendado:
Uso del kit de inventor de Kitronik con Adafruit CLUE: 4 pasos (con imágenes)
Uso del kit de inventor de Kitronik con Adafruit CLUE: el kit de inventor de Kitronik para BBC micro: bit es una gran introducción a los microcontroladores con electrónica que utilizan una placa de pruebas. Esta versión del kit está diseñada para su uso con el económico BBC micro: bit. El libro tutorial detallado que viene
Uso del sensor de infrarrojos con Arduino: 8 pasos (con imágenes)
Uso de un sensor de infrarrojos con Arduino: ¿Qué es un sensor de infrarrojos (también conocido como IR)? Un sensor de infrarrojos es un instrumento electrónico que escanea señales de infrarrojos en rangos de frecuencia específicos definidos por estándares y las convierte en señales eléctricas en su pin de salida (normalmente llamado pin de señal) . La señal de infrarrojos
Enviar datos numéricos de un Arduino a otro: 16 pasos
Enviar datos numéricos de un Arduino a otro: Introducción por David Palmer, CDIO Tech. en la Universidad de Aston ¿Alguna vez necesitó enviar algunos números de un Arduino a otro? Este Instructable muestra cómo. Puede probar fácilmente que funciona simplemente escribiendo una cadena de números para enviar a la S
Otro instructivo más sobre el uso del DIYMall RFID-RC522 y Nokia LCD5110 con un Arduino: 8 pasos (con imágenes)
Otro Instructable más sobre el uso del DIYMall RFID-RC522 y el Nokia LCD5110 con un Arduino: ¿Por qué sentí la necesidad de crear otro Instructable para el DIYMall RFID-RC522 y el Nokia LCD5110? Bueno, para decirte la verdad, estuve trabajando en una prueba de concepto en algún momento del año pasado usando ambos dispositivos y de alguna manera " extraviados "
Armadura de teclados: 7 pasos
Armadura de teclados: este es un instructivo sobre cómo crear una armadura a partir de un conjunto de teclados. No use sierras para metales, ya que se arruinarán con esto y, dado que manipulará todo tipo de aparatos desagradables y bordes afilados, tenga mucho cuidado de no dañar su