Algunas partes de este sitio web aún no están disponibles en su idioma. Estamos trabajando para solucionar esto y nos disculpamos por cualquier inconveniente.
Tutorial ESP32 36/55 - Juego de Adivinanza de Números | Kit de Aprendizaje IoT ESP32 de SunFounder
En este tutorial, crearemos un divertido juego de adivinar el número utilizando el microcontrolador ESP32 junto con un control remoto por infrarrojos y una pantalla LCD. El jugador intentará adivinar un número generado aleatoriamente entre 0 y 99, y el juego proporcionará pistas sobre si la adivinanza es demasiado alta o demasiado baja. A través de este proyecto, aprenderás a utilizar el receptor infrarrojo, mostrar valores en una LCD y gestionar la entrada del usuario desde un control remoto. Puedes consultar el video para mayor claridad (en el video a las 00:00).
Los componentes principales utilizados en este proyecto incluyen el microcontrolador ESP32, un control remoto infrarrojo, un receptor infrarrojo y una pantalla LCD. El ESP32 actúa como la unidad de procesamiento principal y es capaz de manejar la comunicación inalámbrica, lo que lo convierte en una opción versátil para proyectos de IoT. El control remoto infrarrojo permite a los usuarios introducir conjeturas sin requerir interacción física con la placa, mientras que la LCD muestra el estado del juego y las indicaciones.
El receptor infrarrojo detecta señales del control remoto y las decodifica para su uso en el juego. Cada pulsación de botón en el control remoto corresponde a un valor específico que el ESP32 puede interpretar. La pantalla LCD proporciona una interfaz visual para el usuario, mostrando el rango de suposiciones actual y si la suposición fue correcta.
Detalles de la hoja de datos
Fabricante
SunFounder
Número de pieza
ESP32
Tensión de lógica/entrada/salida
3.3 V
Tensión de alimentación
5 V (a través de USB)
Corriente de salida (por canal)
12 mA (máx)
Guía de frecuencia PWM
1 kHz
Umbrales de lógica de entrada
0.3 * Vcc a 0.7 * Vcc
Caída de voltaje / RDS(on)/ saturación
0.2 V
Límites térmicos
Temperatura de operación: -40 a 85 °C
Paquete
Módulo WROOM-32
Notas / variantes
Soporta Wi-Fi y Bluetooth
Asegúrese de que todos los componentes estén calificados para 3.3 V y 5 V cuando sea aplicable.
Utilice resistencias pull-up adecuadas para el receptor IR para evitar entradas flotantes.
Considere usar un disipador de calor si funciona a la corriente máxima de salida durante períodos prolongados.
Al usar PWM, mantenga una frecuencia de alrededor de 1 kHz para un rendimiento óptimo.
Ten cuidado con el cableado; asegúrate de que las conexiones estén seguras para evitar fallos intermitentes.
Instrucciones de cableado
ESP32_36_guessing_number_wiring
Para configurar el cableado del juego de adivinanza de números, comienza conectando el receptor infrarrojo. Conecta el cable rojo del pin derecho del receptor a la fuente de alimentación de 3.3 V en el ESP32. El cable negro debe ir a tierra, mientras que el pin izquierdo del receptor infrarrojo se conecta al pin.14en el ESP32.
ESP32_36_adivinando_número_esquema
A continuación, cablee la pantalla LCD. Conecte el pin VCC de la LCD a la fuente de 5 V en el ESP32 y el pin de tierra a tierra. Los pines SDA y SCL de la LCD deben conectarse a los pines.21y22respectivamente. Asegúrese de que haya dos espacios vacíos entre las conexiones SDA y SCL para evitar conflictos de pines. Finalmente, asegúrese de quitar cualquier cubierta de plástico de la batería antes de encender la placa.
Ejemplos de código y guía paso a paso
Los siguientes fragmentos de código ilustran partes esenciales del programa utilizado para el juego de adivinar un número. Comenzamos incluyendo las bibliotecas necesarias y definiendo identificadores clave.
En este extracto, incluimos bibliotecas para manejar la funcionalidad de la LCD y el receptor de infrarrojos. El pin para el receptor infrarrojo se define como14, y creamos instancias de los objetos necesarios para gestionar la entrada y la salida.
Este fragmento muestra la función de configuración donde inicializamos el LCD, comenzamos la comunicación serial y habilitamos el receptor IR. La funcióninitNewValue()se llama a generar un nuevo número aleatorio para que el jugador adivine.
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 función comprueba la suposición del jugador en comparación con el número generado aleatoriamente, ajustando los límites superiores e inferiores en consecuencia. Si la suposición es correcta, reinicia el contador y devuelve verdadero.
El código completo se carga debajo del artículo para su referencia.
Demostración / Qué Esperar
Una vez que todo esté conectado y el código esté subido, el juego te pedirá que presiones cualquier número en el control remoto. Luego, el juego proporcionará retroalimentación sobre tus conjeturas, actualizando el rango de números posibles hasta que adivines correctamente el número objetivo. Si presionas el botón de POWER, el juego se reinicia y comienza de nuevo (en el video a las 02:30).
Las trampas comunes incluyen asegurarse de que el receptor de infrarrojos esté correctamente orientado y que todas las conexiones sean seguras. Si el juego no responde, verifica la fuente de alimentación y asegúrate de que la placa y el puerto correctos estén seleccionados en el IDE de Arduino.
Marcas de tiempo del video
00:00 Comenzar
2:17 Introducción al proyecto del juego
4:37 Cableado
6:15 Código de Arduino explicado
12:32 Seleccionando la placa ESP32 y el puerto COM en Arduino IDE
16:16 Jugando al juego de adivinar el número
Imágenes
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