ESP8266 - 74HC595 Pantalla de 4 dígitos de 7 segmentos

Este tutorial te enseña cómo usar ESP8266 para controlar un módulo de visualización de 4 dígitos de 7 segmentos con 74HC595. En detalle, aprenderemos:

ESP8266 NodeMCU 74HC595 pantalla de 4 dígitos de 7 segmentos

Este tutorial utilizará un módulo de pantalla de 4 puntos y 4 dígitos de 7 segmentos capaz de mostrar valores flotantes. Si necesita mostrar un separador de dos puntos, consulte el Módulo de visualización de 7 segmentos de 4 dígitos TM1637

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×74HC595 4-digit 7-segment Pantalla
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 de la pantalla de 4 dígitos de 7 segmentos 74HC595

Un módulo ideal para mostrar la temperatura o cualquier valor flotante es la pantalla de 4 dígitos de 7 segmentos 74HC595. Este módulo normalmente incluye cuatro LEDs de 7 segmentos, cuatro LEDs en forma de punto y dos controladores 74HC595 para cada dígito.

Disposición de pines

El módulo de visualización de 4 dígitos y 7 segmentos 74HC595 incluye 5 pines:

  • Pin SCLK: es un pin de entrada de reloj. Conéctalo a cualquier pin digital del ESP8266.
  • Pin RCLK: es un pin de entrada de reloj. Conéctalo a cualquier pin digital del ESP8266.
  • Pin DIO: es un pin de datos de entrada/salida. Conéctalo a cualquier pin digital del ESP8266.
  • Pin VCC: suministra energía al módulo. Conéctalo a una fuente de alimentación de 3,3 V a 5 V.
  • Pin GND: es un pin de tierra.
Disposición de pines del módulo 74HC595

Diagrama de Cableado

La tabla a continuación muestra el cableado entre los pines del ESP8266 y los pines de un display de 7 segmentos de 4 dígitos 74HC595.

ESP8266 74HC595 7-segment display
Vin5V
D5SCLK
D6RCLK
D7DIO

Si está utilizando pines diferentes, asegúrese de modificar los números de pin en el código en consecuencia.

Diagrama de cableado del módulo ESP8266 NodeMCU 74HC595

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 un display de 4 dígitos de 7 segmentos con el 74HC595, necesitamos instalar la biblioteca DIYables_4Digit7Segment_74HC595 de DIYables.io. Siga los siguientes pasos para instalar la biblioteca:

  • Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “DIYables_4Digit7Segment_74HC595”, luego encuentra la biblioteca DIYables_4Digit7Segment_74HC595 de DIYables.io
  • Haz clic en el botón Instalar.
Biblioteca de display de 4 dígitos de 7 segmentos para ESP8266 NodeMCU y 74HC595

También puedes ver esta biblioteca en GitHub

Cómo programar para el 74HC595 de 4 dígitos con pantalla de 7 segmentos usando ESP8266

  • Incluye la biblioteca
#include <DIYables_4Digit7Segment_74HC595.h>
  • Define los pines del ESP8266 que se conectan a SCLK, RCLK y DIO del módulo de visualización. Por ejemplo, los pines D7, D6 y D5
#define SCLK D5 // The ESP8266 pin connected to SCLK #define RCLK D6 // The ESP8266 pin connected to RCLK #define DIO D7 // The ESP8266 pin connected to DIO
  • Crear un objeto de visualización del tipo DIYables_4Digit7Segment_74HC595
DIYables_4Digit7Segment_74HC595 display = DIYables_4Digit7Segment_74HC595(CLK, DIO);
  • Luego puedes mostrar los números enteros con la opción de relleno de ceros, que admite números negativos:
display.printInt(-13, false); // you can display a value from -999 to 9999
  • Puedes mostrar números de punto flotante con el número de decimales, opciones de relleno con ceros, soportando el número negativo:
display.printFloat(-9.2, 1, false);
  • También puedes mostrar un número, el punto decimal y dígitos de caracteres uno por uno usando funciones de bajo nivel:
// display 9.3°C display.clear(); display.setNumber(1, 9); // set 9 at the 1st digit display.setDot(1); // set . at the 1st digit display.setNumber(2, 3); // set 3 at the 2nd digit display.setChar(3, SegChars::DEGREE); // set ° at the 3rd digit display.setChar(4, SegChars::C); // set C at the 3rd digit display.show(); // show on the display
  • Debido a que el módulo de 4 dígitos de 7 segmentos 74HC595 utiliza la técnica de multiplexación para controlar segmentos y LEDs individuales, el código ESP8266 DEBE:
    • Llamar a la función display.show() en el bucle principal
    • No usar la función delay() en el bucle principal

    Puede ver más detalles en la referencia de la biblioteca

Código ESP8266 - Mostrar entero

/* * 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-74hc595-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK D5 // The ESP8266 pin connected to SCLK #define RCLK D6 // The ESP8266 pin connected to RCLK #define DIO D7 // The ESP8266 pin connected to DIO DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO); void setup() { Serial.begin(9600); display.printInt(-13, false); // you can display a value from -999 to 9999 //display.printInt(-132, false); //display.printInt(9132, false); //display.printInt(132, false); //display.printInt(32, false); //display.printInt(2, false); //display.printInt(2, true); } void loop() { display.loop(); // MUST call the display.loop() function in loop() // DO SOMETHING HERE // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing }

Pasos R\u00e1pidos

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

  • Consulta el cómo configurar el entorno para ESP8266 en Arduino IDE tutorial si es la primera vez que usas ESP8266.
  • Conecta los componentes tal como se muestran en el diagrama.
  • Conecta la placa ESP8266 a tu ordenador usando un cable USB.
  • Abre el IDE de Arduino en tu ordenador.
  • Elige la placa ESP8266 correcta, como (p. ej. NodeMCU 1.0 (ESP-12E Module)), y su puerto COM respectivo.
  • Copia el código anterior y ábrelo con el IDE ESP8266.
  • Haz clic en el botón Upload en el IDE ESP8266 para cargar el código en ESP8266.
  • Ver los estados de la pantalla de 7 segmentos.

Código ESP8266 - Mostrar flotante

/* * 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-74hc595-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK D5 // The ESP8266 pin connected to SCLK #define RCLK D6 // The ESP8266 pin connected to RCLK #define DIO D7 // The ESP8266 pin connected to DIO DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO); void setup() { Serial.begin(9600); display.printFloat(-9.2, 1, false); //display.printFloat(-92.4, 1, false); //display.printFloat(-9.24, 2, false); //display.printFloat(192.4, 1, false); //display.printFloat(19.24, 2, false); //display.printFloat(1.924, 3, false); } void loop() { display.loop(); // MUST call the display.loop() function in loop() // DO SOMETHING HERE // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing }

Código ESP8266 - Mostrar la temperatura

/* * 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-74hc595-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK D5 // The ESP8266 pin connected to SCLK #define RCLK D6 // The ESP8266 pin connected to RCLK #define DIO D7 // The ESP8266 pin connected to DIO DIYables_4Digit7Segment_74HC595 display(SCLK, RCLK, DIO); void setup() { Serial.begin(9600); // display 9.3°C by controlling digit by digit display.clear(); display.setNumber(1, 9); // set 9 at the 1st digit display.setDot(1); // set . at the 1st digit display.setNumber(2, 3); // set 3 at the 2nd digit display.setChar(3, SegChars::DEGREE); // set ° at the 3rd digit display.setChar(4, SegChars::C); // set C at the 3rd digit display.show(); // show on the display } void loop() { display.loop(); // MUST call the display.loop() function in loop() // DO SOMETHING HERE // NOTE: do NOT use the delay() function in loop because it affects to the multiplexing }

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!