ESP8266 - TM1637 Pantalla de 4 dígitos de 7 segmentos
Este tutorial explica cómo usar ESP8266 con la pantalla de 7 segmentos de 4 dígitos, módulo TM1637. En detalle, aprenderemos:
- Cómo conectar una pantalla de 4 dígitos de 7 segmentos al ESP8266
- Cómo programar el ESP8266 para mostrar la información en una pantalla de 4 dígitos de 7 segmentos

En este tutorial, utilizaremos un módulo de display de 7 segmentos de 4 dígitos con un separador de dos puntos. Si desea mostrar números en punto flotante, consulte el tutorial 74HC595 4-digit 7-segment Display Module.
Hardware Requerido
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Acerca de TM1637: Pantalla de 4 dígitos de 7 segmentos
Una pantalla de 4 dígitos de 7 segmentos se usa comúnmente para reloj, temporizador y contador, mostrando temperatura... Sin embargo, normalmente requiere 12 conexiones. El módulo TM1637 simplifica esto al necesitar solo 4 conexiones: 2 para la alimentación y 2 para controlar los segmentos.
Un módulo TM1637 suele constar de cuatro LEDs de 7 segmentos y una de las siguientes opciones:
- Un LED en forma de dos puntos en el centro: es ideal para mostrar la hora en horas y minutos, o minutos y segundos, o el marcador de dos equipos.
- Cuatro LEDs en forma de puntos para cada dígito: es ideal para mostrar la temperatura o cualquier valor decimal.
Pinout de la pantalla TM1637 de 4 dígitos y 7 segmentos
El módulo de pantalla de 4 dígitos de 7 segmentos TM1637 tiene cuatro pines:
- Pin CLK: es un pin de entrada de reloj que debe conectarse a cualquier pin digital del ESP8266.
- Pin DIO: es un pin de datos bidireccional que debe conectarse a cualquier pin digital del ESP8266.
- Pin VCC: se utiliza para alimentar el módulo y debe conectarse a una fuente de alimentación de 3.3V a 5V.
- Pin GND: es un pin de tierra que debe conectarse a la tierra del ESP8266.

Diagrama de Cableado
Para conectar un TM1637 a un ESP8266, se requieren cuatro cables: dos para la alimentación y dos para controlar la pantalla. El módulo puede alimentarse con la salida de 5 voltios del ESP8266. Los pines CLK y DIO deben conectarse a cualquier pin digital del Arduino; por ejemplo, los pines 2 y 3. Si se utilizan pines diferentes, los números de pin en el código deben modificarse.

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.
Instalación de la biblioteca
Para programar fácilmente la pantalla de 7 segmentos de 4 dígitos TM1637, necesitamos instalar la biblioteca TM1637Display de Avishay Orpaz. A continuación se indican los pasos para instalar la biblioteca:
- Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
- Busca “TM1637”, luego encuentra la biblioteca TM1637Display de Avishay Orpaz
- Haz clic en el botón Instalar.

Cómo programar para TM1637 de 4 dígitos de 7 segmentos usando ESP8266
- Incluir la biblioteca
- Especifique los pines ESP8266 que están vinculados al CLK y DIO del módulo de visualización. Por ejemplo, D2 y D1.
- Crear un objeto TM1637Display.
- Luego puedes mostrar números, números con decimales, números con signos negativos o letras. En el caso de las letras, debes especificar la forma de la letra. Veamos cada uno por separado.
- Mostrar números: vea los ejemplos a continuación; '_' en la siguiente descripción representa un dígito que no se muestra en la práctica:
- Muestra el número con dos puntos o con un punto:
Puedes encontrar información adicional sobre las funciones al final de este tutorial.
Código ESP8266
Pasos R\u00e1pidos
Para empezar con ESP8266 en Arduino IDE, siga estos pasos:
- Consulta el tutorial cómo configurar el entorno para ESP8266 en Arduino IDE si es la primera vez que usas ESP8266.
- Conecta los componentes tal como se muestra en el diagrama.
- Conecta la placa ESP8266 a tu computadora con un cable USB.
- Abre Arduino IDE en tu computadora.
- Elige la placa ESP8266 correcta, por ejemplo (p. ej. NodeMCU 1.0 (Módulo ESP-12E)), y su puerto COM correspondiente.
- Copia el código y ábrelo con Arduino IDE.
- Haz clic en el botón Subir para transferir el código al ESP8266.
- Ver los estados de la pantalla de 7 segmentos.
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.
Referencias de Funciones
A continuación se presentan las referencias para:
- display.limpiar()
- display.mostrarNumeroDec()
- display.mostrarNumeroDecEx()
- display.establecerSegmentos()
- display.establecerBrillo()
display.clear()
Descripción
Esta función borra la pantalla. Apaga todos los LEDs.
display.showNumberDec()
Descripción
La pantalla de 7 segmentos se utiliza para mostrar un número decimal. Esta función se utiliza para ese fin.
Sintaxis
Parámetro
- num: es el valor que se mostrará en la pantalla de 7 segmentos, que va de -9999 a 9999.
- leading_zero: un parámetro opcional con un valor por defecto de false, determina si deben mostrarse ceros a la izquierda.
- length, otro parámetro opcional con un valor por defecto de 4, establece el número de dígitos que se mostrarán.
- pos: también un parámetro opcional con un valor por defecto de 0, establece la posición del dígito más significativo.
Tenga en cuenta que la función no mostrará nada si el número está fuera del rango o si el valor de longitud es mayor que 4.
showNumberDecEx()
Descripción
Esta función es una mejora de showNumberDec(), que ofrece un mayor control sobre la visualización de un número decimal en la pantalla de 7 segmentos. Tiene la capacidad de controlar de forma individual los puntos o los dos puntos de cada dígito.
Sintaxis
Parámetro
- num1: Este es el número que se mostrará en la pantalla de 7 segmentos. Debe estar dentro del rango de -9999 a 9999.
- dots: Este parámetro se utiliza para especificar qué segmentos de la pantalla deben encenderse como puntos. Cada bit del valor corresponde a un dígito en la pantalla. Los valores posibles son:
- 0b10000000 para mostrar el primer punto (0.000)
- 0b01000000 para mostrar el segundo punto (00.00), o el dos puntos (00:00). Depende del tipo de módulo.
- 0b00100000 para mostrar el tercer punto (000.0)
- leading_zero: Este es un parámetro opcional con un valor por defecto de falso. Si se establece en verdadero, se mostrarán ceros a la izquierda.
- length: Este es un parámetro opcional con un valor por defecto de 4. Determina el número de dígitos que se mostrarán en la pantalla de 7 segmentos.
- pos: Este es un parámetro opcional con un valor por defecto de 0. Define la posición del dígito más significativo del número.
Por ejemplo, si usas display.showNumberDecEx(1530, 0b01000000), se mostrará:
- El número 15:30 en la pantalla de 7 segmentos si el módulo tiene un LED con forma de dos puntos.
- El número 15.30 en la pantalla de 7 segmentos si el módulo tiene LEDs con forma de puntos.
Por favor, tenga en cuenta que la función no mostrará nada si el número está fuera del rango o si el valor de la longitud es mayor que 4.
establecerSegmentos()
Descripción
La función permite configurar directamente los segmentos de la pantalla de 7 segmentos. Se puede usar para mostrar letras, caracteres especiales o para apagar todos los segmentos LED.
Sintaxis
Parámetro
- segments: Este parámetro establece los segmentos de la pantalla de 7 segmentos, que es una matriz de bytes. Cada byte representa los segmentos de cada dígito y cada segmento está representado por un bit en el byte.
- length: Este es un parámetro opcional con un valor por defecto de 4. Determina el número de dígitos que se mostrarán en la pantalla de 7 segmentos.
- pos: Este es un parámetro opcional con un valor por defecto de 0. Especifica la posición del dígito más significativo del número.
Esta función es útil cuando necesitas mostrar caracteres o símbolos que no están disponibles en la pantalla de 7 segmentos estándar. Puedes crear cualquier patrón que desees configurando directamente los segmentos.
Por favor, tenga en cuenta que la función no mostrará nada si el número está fuera de rango o si el valor de la longitud es mayor que 4.
establecerBrillo()
Descripción
El brillo de la pantalla de siete segmentos puede ajustarse mediante esta función.
Sintaxis
Parámetro
- brightness: Este parámetro ajusta la luminosidad de la pantalla de 7 segmentos. El valor debe estar entre 0 y 7, y cuanto mayor sea el número, más brillante será la pantalla.
- on: Este es un parámetro opcional, con un valor por defecto de true. Se utiliza para encender o apagar la pantalla. Si se establece en false, la pantalla se desactivará.