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.
Tutoriais ESP32 36/55 - Jogo de Adivinhação de Números | Kit de Aprendizado IoT ESP32 da SunFounder
Neste tutorial, vamos criar um divertido jogo de adivinhação de números usando o microcontrolador ESP32 junto com um controle remoto infravermelho e um display LCD. O jogador tentará adivinhar um número gerado aleatoriamente entre 0 e 99, com o jogo fornecendo dicas sobre se o palpite é muito alto ou muito baixo. Através deste projeto, você aprenderá como usar o receptor infravermelho, exibir valores em um LCD e gerenciar a entrada do usuário a partir de um controle remoto. Você pode se referir ao vídeo para maior clareza (no vídeo em 00:00).
Os componentes principais utilizados neste projeto incluem o microcontrolador ESP32, um controle remoto infravermelho, um receptor infravermelho e um display LCD. O ESP32 serve como a unidade de processamento principal e é capaz de gerenciar comunicação sem fio, tornando-se uma escolha versátil para projetos de IoT. O controle remoto infravermelho permite que os usuários insiram palpites sem exigir interação física com a placa, enquanto o LCD exibe o status do jogo e os avisos.
O receptor infravermelho detecta sinais do controle remoto e os decodifica para uso no jogo. Cada pressionamento de botão no controle corresponde a um valor específico que o ESP32 pode interpretar. O display LCD fornece uma interface visual para o usuário, mostrando a faixa de palpite atual e se o palpite estava correto.
Detalhes da Ficha Técnica
Fabricante
SunFounder
Número da peça
ESP32
Tensão de lógica/IO
3,3 V
Tensão de fornecimento
5 V (via USB)
Corrente de saída (por canal)
12 mA (máx)
Orientação sobre frequência PWM
1 kHz
Limiares de lógica de entrada
0,3 * Vcc até 0,7 * Vcc
Queda de tensão / RDS(on)saturação
0,2 V
Limites térmicos
Temperatura de operação: -40 a 85 °C
Pacote
Módulo WROOM-32
Notas / variantes
Suporta Wi-Fi e Bluetooth
Certifique-se de que todos os componentes sejam classificados para 3,3 V e 5 V, quando aplicável.
Use resistores de pull-up adequados para o receptor IR para evitar entradas flutuantes.
Considere usar um dissipador de calor se estiver operando na corrente máxima de saída por períodos prolongados.
Ao usar PWM, mantenha uma frequência em torno de 1 kHz para desempenho ideal.
Tenha cuidado com a fiação; assegure-se de que as conexões estão seguras para evitar falhas intermitentes.
Instruções de fiação
ESP32_36_guessing_number_wiring
Para configurar a fiação para o jogo de adivinhação de números, comece conectando o receptor infravermelho. Conecte o fio vermelho do pino direito do receptor à fonte de alimentação de 3,3 V no ESP32. O fio preto deve ir para o terra, enquanto o pino da esquerda do receptor infravermelho se conecta ao pino14no ESP32.
ESP32_36_guessing_number_schematic
Em seguida, conecte o display LCD. Conecte o pino VCC do LCD à fonte de 5 V no ESP32 e o pino de terra ao terra. Os pinos SDA e SCL do LCD devem ser conectados aos pinos21e22respectivamente. Certifique-se de que haja dois espaços vazios entre as conexões SDA e SCL para evitar conflitos de pinos. Por fim, certifique-se de remover quaisquer capas de plástico da bateria antes de ligar a placa.
Exemplos de Código e Tutorial
Os seguintes trechos de código ilustram partes essenciais do programa utilizado para o jogo de adivinhação de números. Começamos incluindo bibliotecas necessárias e definindo identificadores chave.
Neste excerto, incluímos bibliotecas para lidar com a funcionalidade do LCD e do receptor de infravermelho. O pino para o receptor de infravermelho é definido como14, e criamos instâncias dos objetos necessários para gerenciar a entrada e a saída.
Este trecho mostra a função de configuração onde inicializamos o LCD, começamos a comunicação serial e habilitamos o receptor IR. A funçãoinitNewValue()é chamado para gerar um novo número aleatório para o jogador adivinhar.
bool detectPoint() {
if (count > pointValue) {
if (count < upper) upper = count;
} else if (count < pointValue) {
if (count > lower) lower = count;
} else if (count == pointValue) {
count = 0;
return 1;
}
count = 0;
return 0;
}
Esta função verifica o palpite do jogador em relação ao número gerado aleatoriamente, ajustando os limites superior e inferior de acordo. Se o palpite estiver correto, redefine a contagem e retorna verdadeiro.
O código completo está carregado abaixo do artigo para sua referência.
Demonstração / O Que Esperar
Uma vez que tudo esteja conectado e o código carregado, o jogo irá solicitar que você pressione qualquer número no controle remoto. O jogo então fornecerá feedback sobre suas palpites, atualizando a faixa de números possíveis até que você acerte o número-alvo. Se você pressionar o botão POWER, o jogo reinicia e começa novamente (no vídeo em 02:30).
Os erros comuns incluem garantir que o receptor de infravermelho esteja devidamente orientado e que todas as conexões estejam seguras. Se o jogo não responder, verifique a fonte de energia e confirme se a placa e a porta corretas estão selecionadas no Arduino IDE.
Marcadores de Tempo do Vídeo
00:00 Iniciar
2:17 Introdução ao projeto do jogo
4:37 Fiação
6:15 Código do Arduino explicado
Selecionando a Placa ESP32 e a Porta COM no Arduino IDE
16:16 Jogando jogo de adivinhação de números
Imagens
ESP32_36_guessing_number_schematic
ESP32_36_guessing_number_wiring
ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-2
ESP32_36_guessing_number_schematic
ESP32_36_guessing_number_wiring
ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-2
837-ESP32 Tutorial 36/55- Arduino code for guessing number