Algumas partes deste site ainda não estão disponíveis no seu idioma. Estamos trabalhando para corrigir isso e pedimos desculpas por qualquer inconveniente.
Tutorial ESP32 33/55 - Dados Digitais usando o kit de aprendizado IoT ESP32 da SunFounder
Neste tutorial, criaremos um dado digital usando um display de sete segmentos e o ESP32 do kit de aprendizado IoT da SunFounder. O projeto permitirá que você role um dado virtual, gerando números de 1 a 6 com o pressionar de um botão. Esta é uma maneira fantástica de explorar as capacidades do ESP32 enquanto aprende sobre a interface com displays e botões. Para maior clareza, não deixe de conferir o vídeo em (no vídeo em 0:00).
ESP32-33_dados-digitais-principal
Hardware Explicado
Os principais componentes para este projeto incluem o microcontrolador ESP32, um registro de deslocamento 74HC595, um display de sete segmentos e um botão de pressão. O ESP32 é um microcontrolador poderoso que integra Wi-Fi e Bluetooth, tornando-o adequado para aplicações de IoT. O registro de deslocamento 74HC595 nos permite controlar o display de sete segmentos usando menos pinos do que conectando diretamente cada segmento.
O display de sete segmentos mostra números e é controlado pelo envio de dados do registro de deslocamento. O botão de pressão é usado para acionar a rolagem dos dados, gerando um número aleatório que será exibido. Quando pressionado, o botão se conecta ao pino 13 no ESP32, que possui um resistor pull-up interno para mantê-lo em um estado alto quando não está pressionado.
Detalhes da Ficha Técnica
Fabricante
Texas Instruments
Número da peça
74HC595
Tensão lógica/IO
2 V a 6 V
Tensão de alimentação
4,5 V a 5,5 V
Corrente de saída (por canal)
6 mA máximo
Corrente de pico (por canal)
35 mA máximo
Orientação sobre frequência de PWM
Não aplicável
Limites de lógica de entrada
VIH≥ 2 V, VIL≤ 0,8 V
Queda de tensão / RDS(on)/ saturação
0,5 V máx
Limites térmicos
150 °C
Pacote
DIP-16
Notas / variantes
Comumente usado em displays digitais
Assegure níveis de voltagem adequados (4,5 V a 5,5 V) para um funcionamento confiável.
Limite a corrente de saída para evitar danos ao registrador de deslocamento.
Utilize capacitores de desacoplamento perto dos pinos de alimentação para estabilizar a tensão.
Conecte o display de sete segmentos corretamente para evitar a representação incorreta de números.
Verifique a fiação em busca de conexões soltas que podem levar a um comportamento inesperado.
Instruções de Fiação
ESP32-33_digital-dice-wiring
Para ligar os dados digitais, comece configurando as conexões de energia. Conecte o aterramento (linha azul) na sua placa de ensaio ao pino de aterramento no ESP32 e certifique-se de que todos os pontos de aterramento estejam interconectados. Em seguida, conecte um pino de 3,3V do ESP32 ao barramento de energia (linha vermelha) na placa de ensaio.
ESP32-33_esquema-de-dados-digitais
Para o registrador de deslocamento 74HC595, certifique-se de que o pino 1 está conectado ao barramento de 3,3V e o pino 8 ao terra. Conecte o pino de saída de dados (DS) ao pino 25 no ESP32, o pino de relógio de deslocamento (SHCP) ao pino 26 e o pino de relógio de armazenamento (STCP) ao pino 27. O botão deve ser conectado entre o pino 13 no ESP32 e o terra, permitindo que ele puxe o pino para baixo quando pressionado.
Exemplos de Código e Passo a Passo
No texto, primeiro definimos os pinos usados para o registrador de deslocamento e o botão. O pino do botão é definido comobuttonPine está conectado ao pino 13 no ESP32. O array de dadosdatArraycontém as representações binárias dos números 0-9 para o mostrador de sete segmentos.
const int STcp = 27;//ST_CP
const int SHcp = 26;//SH_CP
const int DS = 25; //DS
const int buttonPin = 13;
int datArray[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
No textosetup()função, definimos o pino do botão como modo de entrada e os pinos do registro de deslocamento como modo de saída. Isso prepara os pinos para ler a entrada do botão e para enviar dados para o display.
A lógica principal do programa é encontrada noloop()função. Ela verifica se o botão está pressionado, gera um número aleatório e chama oshow_number()função para exibir o número no display de sete segmentos.
Oshow_number()a função envia o valor apropriado do array de dados para o registrador de deslocamento, que então controla os segmentos do display para mostrar o número gerado. Esta função é crucial para o feedback visual quando o botão é pressionado.
74HC595 Display de LED: Segmento Sete explicado
Demonstração / O que Esperar
Quando a configuração estiver concluída e o código for carregado, pressionar o botão gerará um número aleatório entre 1 e 6, que será exibido no display de sete segmentos. Se tudo estiver conectado corretamente, o display deve mostrar um número toda vez que o botão for pressionado. Tenha cuidado com entradas flutuantes; assegure-se de que o botão esteja devidamente conectado ao aterramento para evitar comportamentos erráticos (no vídeo em 1:30).
Marcos de Tempo do Video
00:00 Início
1:48 Introdução ao projeto
3:40 Fiação para Dados Digitais Explicada
Código Arduino para Dados Digitais explicado
19:19 Selecionando a placa ESP32 e a porta COM no Arduino IDE
21:00 Demonstração de Dados Digitais
22:15 Corrigindo Código Arduino
Imagens
Display de LED 74HC595: Segmento Sete explicado
ESP32-33_digital-dice-wiring
ESP32-33_digital-dice-main
ESP32-33_digital-dice-schematic
Display de LED 74HC595: Segmento Sete explicado
ESP32-33_digital-dice-wiring
ESP32-33_digital-dice-main
ESP32-33_digital-dice-schematic
834-ESP32 Tutorial 33/55- Arduino code for digital dice