ESP8266 - Teclado numérico - LCD

Este tutorial te enseña cómo usar ESP8266 para mostrar la entrada del teclado en la pantalla LCD.

Hardware Requerido

1×ESP8266 NodeMCU
1×Cable USB Tipo-A a Tipo-C (para PC USB-A)
1×Cable USB Tipo-C a Tipo-C (para PC USB-C)
1×LCD I2C
1×Teclado 3x4
1×Protoboard
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para ESP8266
1×(Recomendado) Divisor de Alimentación para ESP8266 Tipo-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del teclado numérico y de la pantalla LCD

Si no estás familiarizado con el teclado numérico y la pantalla LCD (pinout, cómo funciona, cómo programarlo ...), los siguientes tutoriales pueden ayudarte a entenderlos:

Diagrama de Cableado

Diagrama de cableado del ESP8266 NodeMCU para teclado LCD

This image is created using Fritzing. Click to enlarge image

Para obtener m\u00e1s informaci\u00f3n, consulte Pines del ESP8266 y c\u00f3mo alimentar ESP8266 y otros componentes.

ESP8266 Código

/* * Este código de ESP8266 NodeMCU fue desarrollado por es.newbiely.com * Este código de ESP8266 NodeMCU se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/esp8266/esp8266-keypad-lcd */ #include <Keypad.h> #include <LiquidCrystal_I2C.h> const int ROW_NUM = 4; //four rows const int COLUMN_NUM = 3; //three columns char key_layout[ROW_NUM][COLUMN_NUM] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte pin_rows[ROW_NUM] = {D0, D3, D4, D5}; // The ESP8266 pins connect to the row pins byte pin_column[COLUMN_NUM] = {D6, D7, D8}; // The ESP8266 pins connect to the column pins Keypad keypad = Keypad(makeKeymap(key_layout), pin_rows, pin_column, ROW_NUM, COLUMN_NUM ); LiquidCrystal_I2C lcd(0x27, 16, 2); // I2C address 0x27 (from DIYables LCD), 16 column and 2 rows int column_cursor = 0; void setup(){ lcd.init(); // Initialize the LCD I2C display lcd.backlight(); } void loop(){ char key = keypad.getKey(); if (key) { lcd.setCursor(column_cursor, 0); // move cursor to (column_cursor, 0) lcd.print(key); // print key at (column_cursor, 0) column_cursor++; // move cursor to next position if(column_cursor == 16) { // if reaching limit, clear LCD lcd.clear(); column_cursor = 0; } } }

※ Nota:

La dirección del LCD puede diferir según el fabricante. En nuestro código, hemos utilizado 0x27, que está especificado por el fabricante DIYables.

Pasos R\u00e1pidos

Para empezar con ESP8266 en el IDE de Arduino, siga estos pasos:

  • Consulte el cómo configurar el entorno para ESP8266 en Arduino IDE tutorial si es la primera vez que usa ESP8266.
  • Conecte los componentes como se muestra en el diagrama.
  • Conecte la placa ESP8266 a su PC usando un cable USB.
  • Abra el Arduino IDE en su PC.
  • Elija la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM respectivo.
  • Conecte un cable USB entre el ESP8266 y la PC.
  • Abra el Arduino IDE, seleccione la placa y el puerto adecuados.
  • Haga clic en el ícono de Bibliotecas en la barra izquierda del Arduino IDE.
  • Busque “keypad” y localice la biblioteca keypad creada por Mark Stanley y Alexander Brevig.
  • Luego, haga clic en el botón Instalar para completar la instalación de la biblioteca keypad.
Biblioteca de teclado para ESP8266 NodeMCU
  • Busca “LiquidCrystal I2C” y localiza la biblioteca LiquidCrystal_I2C de Frank de Brabander.
  • Luego, haz clic en el botón Instalar para instalarla.
Biblioteca ESP8266 NodeMCU LiquidCrystal I2C

Porque los pines del ESP8266 no son suficientes, necesitamos usar el pin D8 para el teclado. Como se menciona en el tutorial ESP8266 - Keypad, cuando se utiliza el pin D8 del ESP8266 como pin de columna del teclado, DEBEMOS modificar la biblioteca Keypad de la siguiente manera:

  • Encuentra el archivo Arduino\libraries\Keypad\src\Keypad.cpp, ve a la línea 98, donde se ve así: pin_mode(columnPins[c], INPUT);
  • Comenta esta línea. Después de la modificación, el código en la línea 98 debería verse así: //pin_mode(columnPins[c], INPUT);
  • Copia el código y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para compilar y cargar el código al ESP8266.
Subir código al IDE de Arduino
  • Presione ciertas teclas del teclado numérico y
  • Observe el resultado mostrado en la pantalla LCD.

Si la pantalla LCD no muestra nada, por favor consulte Troubleshooting on LCD I2C para obtener ayuda.

Explicación del código

¡Consulta la explicación línea por línea que se encuentra en los comentarios del código fuente!

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!