¡Hola, habitantes de Habr! Hoy decidí hacer una guía de teclado completa para el Arduino.
Atencion ¡El artículo está dirigido principalmente a principiantes!En muchos proyectos, existe la necesidad de crear la posibilidad de entrada del usuario. Si necesita implementar una gran cantidad de botones (relativamente), conectarlos por separado se vuelve largo e irracional. Para este propósito, es mejor elegir un teclado, pero como cualquier opción, debe abordarlo conscientemente. ¿Cuáles son los tipos de teclados y cómo interactuar con ellos?
A nivel mundial, todos los módulos de este tipo se pueden dividir en dos grandes categorías:
matriz y
analógico .
Teclados Matrix
El tipo de teclado más fácil, económico y popular. Es relativamente fácil de fabricar y ocupa la mayor parte del mercado de módulos arduino. La mayoría de las veces se ve así:


Principio de funcionamiento
Puede comprender cómo funciona este teclado al estudiar el siguiente diagrama:

Para comprender qué botón se presionó, debe aplicar una señal a los primeros cuatro contactos del módulo y observar qué señal regresa del segundo. Pero no tenga miedo de que tendrá que escribir algoritmos de procesamiento para ocho pines de forma manual; la biblioteca “teclado numérico.h” ya preparada nos ayudará con esto, gracias a lo cual no tendremos que reinventar la rueda.
Conexión de la placa
Conectando el módulo mismo
En este artículo usaré el siguiente diagrama de conexión:

Probablemente tenga una pregunta: "¿Por qué decidí usar pines del segundo al noveno, omitiendo el cero y el primero?" - el hecho es que algunos módulos los usan como canales RX y TX para recibir y transmitir datos, respectivamente. Por ejemplo, un módulo bluetooth. Por lo tanto, teniendo en cuenta la posible incorporación del proyecto a otros módulos, se decidió dejar libres estos pines de conexión.
Escritura del bosquejo
Para comenzar, para poder usar la biblioteca para conectar teclados en el código, debe instalarlo en su dispositivo. Esto se puede hacer de la siguiente manera: en el IDE de Arduino, haga clic en
Boceto -> Conectar biblioteca -> Administrar bibliotecas ... o use el atajo de teclado "Ctrl + Shift + I". En la unidad de búsqueda en "teclado.h" (sin corchetes) y presione "Instalación".
Después de la instalación, proceda a escribir el boceto:
#include <Keypad.h> // const byte ROWS = 4; // const byte COLS = 4; // char hexaKeys[ROWS][COLS] = {// , , {'1','4','7','*'}, {'2','5','8','0'}, {'3','6','9','#'}, {'A','B','C','D'} }; byte rowPins[ROWS] = {5, 4, 3, 2}; // byte colPins[COLS] = {9, 8, 7, 6}; // // : Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); void setup(){ Serial.begin(9600);// } void loop(){ char customKey = customKeypad.getKey();// if (customKey){// - Serial.println(customKey);// } }
Pros y contras
Contras
- Se deben conectar demasiados pines al trabajo. Este es un gran problema, si no está creando una calculadora o un candado de combinación, sino un proyecto a mayor escala, en el que aún necesita usar una gran cantidad de módulos diferentes, tal vez simplemente no tengan suficientes pines.
- La calidad de ejecución del módulo es demasiado baja: nadie garantiza una señal estable constante. Los teclados originales no están hechos a un nivel muy alto, y si realizó un pedido en AliExpress, lo más probable es que tenga que arreglar las jambas de los ingenieros chinos con un soldador para lograr un funcionamiento estable.
- Se utiliza una biblioteca adicional, que también ocupará la memoria del microcontrolador, del cual ya no tiene mucho. Si está escribiendo un proyecto grande con muchas funciones y cálculos y necesita leer datos del teclado manualmente o usar un teclado analógico, cada byte en la cuenta.
Pros
- Precio bajo
- Fácil de encontrar a la venta
Teclados analógicos
Principio de funcionamiento
En los teclados analógicos, las resistencias se utilizan para cambiar el nivel de voltaje, y la señal pasa a través de un canal, que está conectado, de hecho, al pin analógico de la placa. La forma en que se organiza todo puede entenderse mirando el siguiente diagrama:

Conexión de la placa
La conexión es muy simple, pero puede variar según el teclado específico. En este artículo consideraré un ejemplo del uso de
este teclado analógico chino con Ali.
Entonces: conectamos la salida analógica del teclado a cualquier pin analógico en la placa, conectamos el pin VCC en la placa a 3.3V (no mire la inscripción en el teclado que dice 5V - esto es un error), y GND en la placa con GND en el módulo. Puede usar el siguiente esquema:

Escritura del bosquejo
No hay necesidad de usar bibliotecas de terceros, ya que Todo es extremadamente simple y claro. Aquí está el código en sí, que lee el botón presionado y muestra su número, del 1 al 16 (de izquierda a derecha, de arriba a abajo) o 0 si no se presiona nada, en el monitor del puerto.
unsigned const short int KEYPAD_PIN = 0;
Pros y contras
Pros
- Conexión muy fácil
- Solo un pin
- Ahorra memoria que no gastas debajo de la biblioteca
- Proporciona una operación estable (siempre que no presione más de un botón a la vez)
Contras
- Más caro que los teclados matriciales.
- Lo más probable es que la única forma de comprar sea hacer un pedido desde China y la entrega llevará algún tiempo
Resumen
Personalmente, recomiendo usar teclados analógicos, ya que a menudo son de mayor calidad y conectarlos es simple, simple. Lo principal es prestar atención a la tabla de valores de los botones presionados que proporciona el fabricante o, si no hay ninguno, puede realizar estas mediciones usted mismo, mostrando los valores del puerto analógico en el monitor del puerto, y luego usarlos en el código. Pero la elección siempre es suya: usar la opción barata estándar o pagar de más por el beneficio de ventajas significativas en algunas situaciones.
Eso es todo para mí. ¡Deja tus preguntas en los comentarios, escribe tu opinión y nos encontraremos en espacios abiertos de Habr!