Tutorial ESP32 10/55 - Contador digital usando Display de Sete Segmentos 74HC595 - Kit de Aprendizagem IoT ESP32

Tutorial ESP32 10/55 - Contador digital usando Display de Sete Segmentos 74HC595 - Kit de Aprendizagem IoT ESP32

Neste tutorial, criaremos um contador digital usando um display de sete segmentos controlado pelo microcontrolador ESP32. O contador irá aumentar de 0 a 9 e depois diminuir de volta para 0, proporcionando uma visualização clara do processo de contagem. Também exploraremos como acender segmentos individuais e exibir letras no display de sete segmentos.

ESP32_Animte7Segment-segments

Este projeto utiliza um registrador de deslocamento 74HC595 para controlar o display, permitindo-nos gerenciar os segmentos de forma eficiente sem usar muitos pinos GPIO no ESP32. Ao enviar valores binários para o registrador de deslocamento, podemos iluminar os segmentos correspondentes para representar números e letras. Para uma compreensão mais profunda do processo, você pode consultar o vídeo (no vídeo às :15).

ESP32_Animte7Segment-letras

Hardware Explicado

Os principais componentes deste projeto incluem o microcontrolador ESP32, um registrador de deslocamento 74HC595 e um display de sete segmentos. O ESP32 é um microcontrolador poderoso com capacidades de Wi-Fi e Bluetooth integradas, tornando-o adequado para projetos de IoT. O 74HC595 é um registrador de deslocamento que nos permite controlar várias saídas usando apenas alguns pinos de entrada. Ele funciona pegando dados seriais e convertendo-os em saída paralela, o que é perfeito para acionar um display de sete segmentos.

O display de sete segmentos consiste em sete LEDs individuais dispostos em um padrão de figura oito. Cada segmento pode ser ligado ou desligado enviando o valor binário apropriado para o registrador de deslocamento. Por exemplo, para exibir o número 0, todos os segmentos, exceto o do meio (G), precisam estar acesos.

ESP32_Animte7Segment-contador-cima-baixo
ESP32_Animte7Segment-contador-1

Detalhes da Ficha Técnica

Fabricante Texas Instruments
Número da peça 74HC595
Tensão de lógica/IO 2 V a 6 V
Tensão de alimentação 2 V a 6 V
Corrente de saída (por canal) 6 mA
Corrente de pico (por canal) 35 mA
Orientação sobre frequência PWM Até 1 kHz
Limiares de lógica de entrada 0,3 VCCa 0,7 VCC
Queda de tensão / RDS(on)/ saturação 0,2 V máx
Limites térmicos 125 °C
Pacote DIP-16
Notas / variantes Disponível em várias embalagens

  • Assegure o fornecimento correto de tensão (2 V a 6 V).
  • Limite a corrente de saída para evitar superaquecimento.
  • Use resistores separados para cada segmento para um brilho ótimo.
  • Tenha cuidado com a fiação para evitar curtos-circuitos e conexões incorretas.
  • Siga o pinout com atenção para evitar reconfigurações.

Instruções de Fiação

ESP32-10-seven-segment-wiring

Comece configurando sua placa de prototipagem. Conecte o trilho de terra (linha azul) e o trilho de energia (linha vermelha). A terra deve ser conectada à linha azul de um lado da placa de prototipagem, enquanto a energia deve ser conectada à linha vermelha do lado oposto. Use um fio preto para conectar o terra do ESP32 ao trilho de terra e um fio vermelho para conectar o pino de 3,3V do ESP32 ao trilho de energia.

Em seguida, insira o registrador de deslocamento 74HC595 na placa de ensaio, garantindo que a entalhe esteja orientado corretamente. Conecte o pino 11 (DS) ao pino 25 no ESP32, o pino 12 (SH_CP) ao pino 26 e o pino 14 (ST_CP) ao pino 27. Conecte o terra (pino 8) do registrador de deslocamento ao trilho de terra e o pino 10 (MR) ao trilho de energia para ativação.

Para o display de sete segmentos, conecte os pinos correspondentes aos segmentos (a-g) aos pinos de saída do registro de deslocamento. Use um resistor (220 ohm) em série para cada segmento para limitar a corrente. Certifique-se de ter conexões adequadas para o pino comum, que pode ser com ânodo ou cátodo comum, dependendo do tipo de seu display.

Exemplos de Código e Tutorial

Na função de configuração, começamos definindo os pinos conectados ao registrador de deslocamento como saídas. Isso garante que nosso ESP32 possa controlar os dados sendo enviados para o display.

void setup ()
{
  //set pins to output
  pinMode(STcp,OUTPUT);
  pinMode(SHcp,OUTPUT);
  pinMode(DS,OUTPUT);
}

Aqui, definimosSTcp,SHcp, eDScomo os pinos conectados ao ST_CP, SH_CP e DS do registrador de deslocamento, respectivamente. Configurar esses pinos como saídas nos permite controlar o registrador de deslocamento.

O loop principal do programa conta de 0 a 9, enviando os valores correspondentes para o display usando oshiftOutfunção.

for(int num = 0; num <10; num++)
{
    digitalWrite(STcp,LOW); //ground ST_CP and hold low for as long as you are transmitting
    shiftOut(DS,SHcp,MSBFIRST,datArray[num]);
    digitalWrite(STcp,HIGH); //pull the ST_CPST_CP to save the data
    delay(1000);
}

Este loop incrementa onumvariável, enviando o valor correspondente do adatArraypara o display a cada segundo. OshiftOuta função transmite os dados para o registro de deslocamento, que então acende os segmentos apropriados.

Demonstração / O que Esperar

Uma vez que a fiação estiver completa e o código estiver carregado, você deve ver o visor de sete segmentos contando de 0 a 9, pausiando brevemente antes de contar de volta para 0. Cada número será exibido por um segundo. Se você quiser acelerar a contagem, pode ajustar o atraso no loop (no vídeo às 15:30).

Ao manipular os segmentos individualmente, lembre-se de enviar os valores binários corretos para exibir letras ou segmentos específicos. Se o display parecer apagado, considere adicionar resistores individuais para cada segmento para garantir um brilho consistente em todo o display.

Marcas de Tempo do Vídeo

  • 00:00 Início
  • 1:53 Introdução ao display de sete segmentos
  • 4:38 Explicação da fiação
  • 13:15 Código Arduino-1
  • 17:01 Selecionando a porta COM e a placa ESP32
  • 18:43 Demonstração-1
  • 20:13 Exibindo apenas um dígito
  • 21:38 Contador de cima para baixo
  • 23:07 Ligando/desligando cada segmento
  • 24:53 Exibindo A, B, C, D, E e F

Imagens

ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-1
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-counter-up-down
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-letters
ESP32_Animte7Segment-segments
ESP32_Animte7Segment-segments
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-schematic
ESP32-10-seven-segment-wiring
ESP32-10-seven-segment-wiring
809-ESP32 Tutorial 10/55 - Arduino code for 2.5 7 segment
Idioma: C++
Copiado!

Recursos e referências

Arquivos📁

Nenhum arquivo disponível.