Cuando pensamos en crear algo, una máquina o una aparato, una de las cosas que tenemos que tener en cuenta es cómo vamos a darle ordenes. Vamos a necesitar una interfaz que nos permita interactuar con la máquina.
Una de las más conocidas y usadas son los teclados. Estos con normalidad suelen estar organizados de forma matricial, lo que permite reducir el número de pines digitales que usamos para leer las teclas.
Para llevar a cabo la lectura del teclado vamos a usar la librería keypad.h con el siguiente código.
#include <Keypad.h> const byte ROWS = 4; //four rows const byte COLS = 4; //FOUR columns char keys[ROWS][COLS] = { {'1','2','N','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {9, 8, 7, 6}; //connect to the row pinouts of the keypad byte colPins[COLS] = {5, 4, 3, 2}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup(){ Serial.begin(9600); } void loop(){ char key = keypad.getKey(); if (key){ Serial.println(key); } delay(10); }
En este vídeo vemos como controlar el teclado y explico el código que se usa.
Hola! Muy buen aporte, quizás me podrías ayudar, estoy tratando de hacer algo similar, con el mismo teclado pero utilizando i2c, que es lo que debería modificar para que esto funcione de la misma manera con esa conexión?
holaaaa! muy buen vídeo de verdad excelente amigo eres un genio!!!!!!!!!!! oyes me podrías apoyar por favor con un código para cerrar y abrir con pantalla lcd 16×2 i2c y servomotor sg90 te lo agradecería muchísimo
Quizá este artículo te puede servir https://www.rinconingenieril.es/servo-teclado-matricial/
Hola, Buena noche. Disculpa me puedes ayudar estoy haciendo un programa para poder declarar el tiempo que estara abierta una determinada valvula y este se cierre al pasar un determinado tiempo y como acarrear valores de tiempo de 1 a 1000 segundos sin poner todos los 1000 delay.
De ante mano muchisimas gracias, saludos desde Mexico.
No entiendo la pregunta