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

Se necesita una pantalla de 4 dígitos de 7 segmentos estándar para proyectos de reloj, temporizador y contador, pero normalmente requiere 12 conexiones. El módulo 74HC595 facilita las cosas al requerir únicamente 5 conexiones: 2 para la alimentación y 3 para controlar los segmentos.

Este tutorial no te agobiará al profundizar en el hardware. En su lugar, aprenderemos cómo conectar la pantalla de 4 dígitos de 7 segmentos al Arduino, cómo programarla para mostrar lo que queramos.

Pantalla de 4 dígitos de 7 segmentos con 74HC595 para Arduino

Este tutorial va a utilizar un módulo de pantalla de 7 segmentos de 4 dígitos con 4 puntos, capaz de mostrar valores en punto flotante. Si desea mostrar un separador de dos puntos, utilice el TM1637 4-digit 7-segment Display Module.

Hardware Requerido

1×Arduino Uno R3
1×Cable USB 2.0 tipo A/B (para PC USB-A)
1×Cable USB 2.0 tipo C/B (para PC USB-C)
1×74HC595 4-digit 7-segment Pantalla
1×Cables Puente
1×(Recomendado) Shield de Bloque de Terminales de Tornillo para Arduino Uno
1×(Recomendado) Shield de Protoboard para Arduino Uno
1×(Recomendado) Carcasa para Arduino Uno
1×(Recomendado) Placa Base de Prototipado y Kit de Protoboard para Arduino Uno

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
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 de visualización de 4 dígitos de 7 segmentos 74HC595 suele consistir en 4 LEDs de 7 segmentos, 4 LEDs en forma de punto y un controlador 74HC595 para cada dígito. Es ideal para mostrar la temperatura o cualquier valor decimal.

Diagrama de pines

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

  • SCLK pin: es un pin de entrada de reloj. Conéctalo a cualquier pin digital de Arduino.
  • RCLK pin: es un pin de entrada de reloj. Conéctalo a cualquier pin digital de Arduino.
  • DIO pin: es un pin de datos I/O. Conéctalo a cualquier pin digital de Arduino.
  • VCC pin: proporciona energía al módulo. Conéctalo a una fuente de alimentación de 3.3V a 5V.
  • GND pin: es un pin de tierra.
Pinout del módulo 74HC595

Diagrama de Cableado

La tabla siguiente muestra el cableado entre los pines de Arduino y los pines de un display de 4 dígitos de 7 segmentos 74HC595:

Arduino 74HC595 7-segment display
5V5V
7SCLK
6RCLK
5DIO

Los números de pin en el código deben modificarse si se utilizan pines diferentes.

Diagrama de cableado del módulo Arduino 74HC595

This image is created using Fritzing. Click to enlarge image

Instalación de la biblioteca

Para programar fácilmente una pantalla de 4 dígitos de 7 segmentos basada en 74HC595, necesitamos instalar la biblioteca DIYables_4Digit7Segment_74HC595 de DIYables.io. Siga los pasos a continuación para instalar la biblioteca:

  • Navega al 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 Arduino para pantalla de 4 dígitos de 7 segmentos con 74HC595

También puedes ver esta biblioteca en GitHub

Cómo programar para el 74HC595 con un display de 4 dígitos de 7 segmentos usando Arduino

  • Incluir la biblioteca
#include <DIYables_4Digit7Segment_74HC595.h>
  • Defina los pines de Arduino que se conectan a SCLK, RCLK y DIO del módulo de pantalla. Por ejemplo, los pines D7, D6 y D5
#define SCLK 7 // The Arduino pin connected to SCLK #define RCLK 6 // The Arduino pin connected to RCLK #define DIO 5 // The Arduino pin connected to DIO
  • Crear un objeto de visualización del tipo DIYables_4Digit7Segment_74HC595
DIYables_4Digit7Segment_74HC595 display = DIYables_4Digit7Segment_74HC595(CLK, DIO);
  • Entonces puedes mostrar los números enteros con la opción de relleno de ceros, soportando el número negativo:
display.printInt(-13, false); // you can display a value from -999 to 9999
  • Puedes mostrar los números de punto flotante con la cantidad de decimales, opciones de relleno con ceros, admitiendo el número negativo:
display.printFloat(-9.2, 1, false);
  • También puedes mostrar un número, punto decimal y carácter dígito por dígito 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 74HC595 de 4 dígitos y 7 segmentos utiliza la técnica de multiplexación para controlar segmentos y LEDs individuales, el código de Arduino DEBE:
    • Llamar a la función display.show() en el bucle principal
    • No usar la función delay() en el bucle principal

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

Código de Arduino - Mostrar Entero

/* Created by DIYables This example code is in the public domain Product page: https://diyables.io/products/4-digit-7-segment-display-led-74hc595-driver-with-4-dots */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK 7 // The Arduino pin connected to SCLK #define RCLK 6 // The Arduino pin connected to RCLK #define DIO 5 // The Arduino 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

  • Copia el código anterior y ábrelo con el IDE de Arduino
  • Haz clic en el botón Subir en el IDE de Arduino para subir el código al Arduino
  • Observa los estados de la pantalla de 7 segmentos

Código de Arduino - Mostrar número de punto flotante

/* Created by DIYables This example code is in the public domain Product page: https://diyables.io/products/4-digit-7-segment-display-led-74hc595-driver-with-4-dots */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK 7 // The Arduino pin connected to SCLK #define RCLK 6 // The Arduino pin connected to RCLK #define DIO 5 // The Arduino 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 de Arduino - Mostrar la temperatura

/* Created by DIYables This example code is in the public domain Product page: https://diyables.io/products/4-digit-7-segment-display-led-74hc595-driver-with-4-dots */ #include <DIYables_4Digit7Segment_74HC595.h> // DIYables_4Digit7Segment_74HC595 library #define SCLK 7 // The Arduino pin connected to SCLK #define RCLK 6 // The Arduino pin connected to RCLK #define DIO 5 // The Arduino 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 }

El resultado es como la imagen de abajo.

El módulo Arduino 74HC595 muestra la temperatura.

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!