Arduino Uno R4 - Display de 7 Segmentos e 4 Dígitos com 74HC595

O Arduino Uno R4 - disponível como Minima e WiFi - traz mais poder de processamento, mais memória e um ADC de 14 bits, mantendo o layout clássico de conectores do Uno. O módulo de display de 7 segmentos e 4 dígitos com 74HC595 se conecta ao Uno R4 usando os mesmos pinos do Uno clássico.

Neste guia você vai:

Display de 7 segmentos e 4 dígitos 74HC595 com Arduino Uno R4

Visão Geral do Display de 7 Segmentos e 4 Dígitos com 74HC595

O módulo de display de 7 segmentos e 4 dígitos baseado no 74HC595 reúne quatro dígitos, cada um com 7 segmentos de LED e um ponto decimal, atrás de um único registrador de deslocamento. Isso significa que você precisa de apenas 3 pinos do seu microcontrolador para controlar o display inteiro.

O módulo cuida da multiplexação internamente por meio da biblioteca de software. Você só chama print() com um valor e continua chamando loop() para atualizar.

Função Pino Descrição
SCLK (SH_CP) Clock Serial Sinal de clock para deslocar os dados para dentro do registrador
RCLK (ST_CP) Clock do Registrador Latch para enviar os dados deslocados aos pinos de saída
DIO (DS) Entrada de Dados Dados seriais enviados ao registrador de deslocamento
VCC Alimentação Alimentação de 3.3V ou 5V
GND Terra Terra comum

Diagrama de Ligação

Ligue o módulo de display ao Arduino Uno R4 assim:

  • SCLK ao pino 7
  • RCLK ao pino 6
  • DIO ao pino 5
  • VCC ao 5V
  • GND ao GND
Diagrama de ligação do display de 7 segmentos e 4 dígitos 74HC595 com Arduino Uno R4

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Uno R4 e outros componentes.

Como Instalar a Biblioteca

  1. Conecte o Arduino Uno R4 ao seu computador usando um cabo USB Type-C.
  2. Na Arduino IDE, verifique se a placa correta (Arduino Uno R4 Minima ou WiFi) e a porta serial estão selecionadas.
  3. Clique no ícone Libraries na barra lateral esquerda.
  4. Digite "DIYables_4Digit7Segment_74HC595" na caixa de busca e localize a biblioteca publicada pela DIYables.
  5. Clique em Install para adicionar a biblioteca à sua IDE. Selecione a versão 2.0.0 ou mais recente.
Biblioteca do display de 7 segmentos e 4 dígitos 74HC595 para Arduino

Nenhuma dependência adicional é necessária - a biblioteca é totalmente independente.

Estrutura Mínima do Sketch

Todos os sketches que usam a biblioteca DIYables_4Digit7Segment_74HC595 compartilham este esqueleto:

#include <DIYables_4Digit7Segment_74HC595.h> #define SCLK_PIN 7 #define RCLK_PIN 6 #define DIO_PIN 5 DIYables_4Digit7Segment_74HC595 display(SCLK_PIN, RCLK_PIN, DIO_PIN); void setup() { display.begin(); display.print(1234); } void loop() { display.loop(); }

Chame display.begin() uma vez no setup() para configurar os pinos. Depois chame display.loop() repetidamente para que a biblioteca faça a multiplexação dos 4 dígitos. Defina o conteúdo do display com print() - o valor permanece até você mudá-lo.

Se você precisar de um atraso no seu código, use display.delay(ms) para que o display continue sendo atualizado.

Exibir Inteiros

Este exemplo mostra números inteiros no display, passando por vários valores, incluindo números negativos e saída preenchida com zeros.

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-74hc595-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_74HC595.h> // Pin configuration - change these to match your wiring #define SCLK_PIN 7 // The Arduino Uno R4 pin connected to the Serial clock pin of 7-segment display #define RCLK_PIN 6 // The Arduino Uno R4 pin connected to the Register clock / latch pin of 7-segment display #define DIO_PIN 5 // The Arduino Uno R4 pin connected to the Data (DS) pin of 7-segment display DIYables_4Digit7Segment_74HC595 display(SCLK_PIN, RCLK_PIN, DIO_PIN); int numbers[] = {0, 42, 1234, -5, -123, 9999}; int numCount = 6; int currentIndex = 0; bool showZeroPad = false; unsigned long lastChange = 0; void setup() { Serial.begin(9600); display.begin(); Serial.println("4-Digit 7-Segment 74HC595 - Integer Example"); } void loop() { display.loop(); // Must be called frequently to refresh the display if (millis() - lastChange >= 2000) { lastChange = millis(); if (!showZeroPad) { display.print(numbers[currentIndex]); Serial.print("Displaying: "); Serial.println(numbers[currentIndex]); currentIndex++; if (currentIndex >= numCount) { currentIndex = 0; showZeroPad = true; } } else { display.print(42, true); // Shows "0042" Serial.println("Displaying: 0042 (zero-padded)"); showZeroPad = false; } } }

Como Executar

  • Ligue o display ao Uno R4 como descrito acima.
  • Conecte o cabo USB Type-C.
  • Cole o código na Arduino IDE, escolha a placa e a porta corretas e pressione Upload.
  • Abra o Serial Monitor para ver a saída.

O display passa por 0, 42, 1234, -5, -123 e 9999 e depois mostra 0042 (preenchido com zeros). Cada valor fica por 2 segundos.

Referência Rápida de Métodos

Método O Que Faz Uso
print(int) Mostra um inteiro (-999 a 9999) display.print(1234)
print(int, true) Mostra o inteiro com zeros à esquerda display.print(42, true)
loop() Atualiza a multiplexação do display display.loop()
begin() Inicializa os pinos do display display.begin()

Exibir Floats

Este exemplo demonstra a exibição de floats com casas decimais automáticas e especificadas manualmente.

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-74hc595-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_74HC595.h> // Pin configuration - change these to match your wiring #define SCLK_PIN 7 // The Arduino Uno R4 pin connected to the Serial clock pin of 7-segment display #define RCLK_PIN 6 // The Arduino Uno R4 pin connected to the Register clock / latch pin of 7-segment display #define DIO_PIN 5 // The Arduino Uno R4 pin connected to the Data (DS) pin of 7-segment display DIYables_4Digit7Segment_74HC595 display(SCLK_PIN, RCLK_PIN, DIO_PIN); void setup() { Serial.begin(9600); display.begin(); Serial.println("4-Digit 7-Segment 74HC595 - Float Example"); } void loop() { // Auto decimal placement display.print(1.5); // Shows " 1.5" Serial.println("Auto decimal: 1.5"); display.delay(2000); display.print(12.34); // Shows "12.34" Serial.println("Auto decimal: 12.34"); display.delay(2000); display.print(3.141); // Shows "3.141" Serial.println("Auto decimal: 3.141"); display.delay(2000); display.print(-1.2); // Shows "-1.20" Serial.println("Auto decimal: -1.20"); display.delay(2000); display.print(0.5); // Shows " 0.5" Serial.println("Auto decimal: 0.5"); display.delay(2000); // Fixed decimal places display.print(23.5, 1); // 1 decimal place: shows "23.5" Serial.println("1 decimal place: 23.5"); display.delay(2000); display.print(1.5, 2); // 2 decimal places: shows "1.50" Serial.println("2 decimal places: 1.50"); display.delay(2000); // Zero-padded display.print(1.5, 2, true); // Shows "01.50" Serial.println("2 decimal places, zero-padded: 01.50"); display.delay(2000); }

Como Executar

  • Cole o código na Arduino IDE, escolha a placa e a porta corretas e pressione Upload.
  • Abra o Serial Monitor para ver a saída.

Os floats são exibidos primeiro com casas decimais automáticas, depois com 1 e 2 casas decimais fixas e, por fim, com preenchimento de zeros.

Exibir Texto e Temperatura

Este exemplo cobre textos, o símbolo de grau e o método de exibição de temperatura.

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-74hc595-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_74HC595.h> // Pin configuration - change these to match your wiring #define SCLK_PIN 7 // The Arduino Uno R4 pin connected to the Serial clock pin of 7-segment display #define RCLK_PIN 6 // The Arduino Uno R4 pin connected to the Register clock / latch pin of 7-segment display #define DIO_PIN 5 // The Arduino Uno R4 pin connected to the Data (DS) pin of 7-segment display DIYables_4Digit7Segment_74HC595 display(SCLK_PIN, RCLK_PIN, DIO_PIN); const char* texts[] = {"HELP", "Hi", "COOL", "done"}; int textCount = 4; int currentIndex = 0; int phase = 0; unsigned long lastChange = 0; void setup() { Serial.begin(9600); display.begin(); Serial.println("4-Digit 7-Segment 74HC595 - Text and Degree Example"); } void loop() { display.loop(); // Must be called frequently to refresh the display if (millis() - lastChange >= 2000) { lastChange = millis(); if (phase == 0) { // Display text strings display.print(texts[currentIndex]); Serial.print("Text: "); Serial.println(texts[currentIndex]); currentIndex++; if (currentIndex >= textCount) { currentIndex = 0; phase = 1; } } else if (phase == 1) { // Display temperature 25 degrees C display.printTemperature(25, 'C'); Serial.println("Temperature: 25 C"); phase = 2; } else if (phase == 2) { // Display temperature 72 degrees F display.printTemperature(72, 'F'); Serial.println("Temperature: 72 F"); phase = 3; } else if (phase == 3) { // Display degree symbol using string with DEGREE_CHAR constant char degStr[5]; degStr[0] = '2'; degStr[1] = '5'; degStr[2] = DEGREE_CHAR; degStr[3] = 'C'; degStr[4] = '\0'; display.print(degStr); Serial.println("String with degree: 25 deg C"); phase = 4; } else { // Display string with dots display.print("1.2.3.4"); Serial.println("Dots: 1.2.3.4"); phase = 0; } } }

Como Executar

  • Faça o upload do sketch e abra o Serial Monitor.

O display mostra textos como "HELP" e "COOL" e depois valores de temperatura com o símbolo de grau e a letra da unidade.

Exibir a Hora

Mostra um display no estilo de relógio HH.MM com um ponto piscante entre as horas e os minutos.

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-74hc595-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_74HC595.h> // Pin configuration - change these to match your wiring #define SCLK_PIN 7 // The Arduino Uno R4 pin connected to the Serial clock pin of 7-segment display #define RCLK_PIN 6 // The Arduino Uno R4 pin connected to the Register clock / latch pin of 7-segment display #define DIO_PIN 5 // The Arduino Uno R4 pin connected to the Data (DS) pin of 7-segment display DIYables_4Digit7Segment_74HC595 display(SCLK_PIN, RCLK_PIN, DIO_PIN); int hours = 12; int minutes = 30; bool colonOn = true; unsigned long lastToggle = 0; void setup() { Serial.begin(9600); display.begin(); Serial.println("4-Digit 7-Segment 74HC595 - Time Example"); Serial.println("Displaying 12:30 with blinking dot separator"); } void loop() { display.loop(); // Must be called frequently to refresh the display if (millis() - lastToggle >= 500) { lastToggle = millis(); display.printTime(hours, minutes, colonOn); colonOn = !colonOn; // Toggle dot separator every 500ms for blinking effect } }

Como Executar

  • Faça o upload do sketch e abra o Serial Monitor.

O display mostra 12.30 com o ponto alternando a cada 500ms para criar um separador piscante.

Piscar o Display

Usa off() e on() para fazer valores diferentes piscarem no display.

/* * Este código de Arduino UNO R4 foi desenvolvido por pt.newbiely.com * Este código de Arduino UNO R4 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-74hc595-4-digit-7-segment-display */ #include <DIYables_4Digit7Segment_74HC595.h> // Pin configuration - change these to match your wiring #define SCLK_PIN 7 // The Arduino Uno R4 pin connected to the Serial clock pin of 7-segment display #define RCLK_PIN 6 // The Arduino Uno R4 pin connected to the Register clock / latch pin of 7-segment display #define DIO_PIN 5 // The Arduino Uno R4 pin connected to the Data (DS) pin of 7-segment display DIYables_4Digit7Segment_74HC595 display(SCLK_PIN, RCLK_PIN, DIO_PIN); // States: 0 = blink int, 1 = blink float, 2 = blink text int phase = 0; int blinkCount = 0; bool isOn = true; unsigned long lastAction = 0; unsigned long pauseUntil = 0; void setup() { Serial.begin(9600); display.begin(); Serial.println("4-Digit 7-Segment 74HC595 - Blink Example"); display.print(1234); Serial.println("Blinking: 1234"); } void loop() { display.loop(); // Must be called frequently to refresh the display unsigned long now = millis(); // Pause between phases if (now < pauseUntil) return; if (now - lastAction >= 300) { lastAction = now; if (isOn) { display.off(); isOn = false; } else { display.on(); isOn = true; blinkCount++; if (blinkCount >= 5) { blinkCount = 0; pauseUntil = now + 1000; phase++; if (phase > 2) phase = 0; switch (phase) { case 0: display.print(1234); Serial.println("Blinking: 1234"); break; case 1: display.print(12.34); Serial.println("Blinking: 12.34"); break; case 2: display.print("HELP"); Serial.println("Blinking: HELP"); break; } } } } }

Como Executar

  • Faça o upload do sketch e abra o Serial Monitor.

O display pisca 1234 cinco vezes, depois 12.34 e depois "HELP", repetindo os três em ciclo.

Referência Rápida de Métodos

Método O Que Faz Uso
off() Apaga o display display.off()
on() Retoma a saída do display display.on()
delay(ms) Espera mantendo o display ativo display.delay(2000)
yield() Um ciclo de atualização para loops longos display.yield()

Solução de Problemas

  • Nada no display - Confira novamente as conexões de VCC e GND. Confirme que os pinos SCLK, RCLK e DIO correspondem ao código. Verifique se begin() está no setup() e se loop() chama display.loop().
  • Caracteres errados ou embaralhados - Verifique se o display é de anodo comum ou catodo comum. O padrão é anodo comum. Para catodo comum, passe false: DIYables_4Digit7Segment_74HC595 display(7, 6, 5, false).
  • O display apaga ou fica tremulando - Evite delay() no seu código. Use display.delay() no lugar para manter a multiplexação ativa.

Suporte de Plataformas

A biblioteca depende exclusivamente das APIs padrão do Arduino (pinMode, digitalWrite, millis) e funciona em todas as plataformas compatíveis com Arduino.

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!