ESP32 Tutorial 36/55 - Zahlratenspiel | SunFounder's ESP32 IoT Lernset

ESP32 Tutorial 36/55 - Zahlratenspiel | SunFounder's ESP32 IoT Lernset

In diesem Tutorial werden wir ein unterhaltsames Zahlenspiel erstellen, bei dem es darum geht, eine zufällig generierte Zahl zwischen 0 und 99 zu erraten, indem wir den ESP32-Mikrocontroller zusammen mit einer Infrarotfernbedienung und einem LCD-Display verwenden. Der Spieler wird versuchen, die richtige Zahl zu erraten, wobei das Spiel Hinweise gibt, ob die Schätzung zu hoch oder zu niedrig ist. Durch dieses Projekt werden Sie lernen, wie man den Infrarotempfänger verwendet, Werte auf einem LCD anzeigt und Benutzereingaben von einer Fernbedienung verwaltet. Sie können das Video zur zusätzlichen Klarheit ansehen (im Video bei 00:00).

ESP32_36_nummer_raten-1
ESP32_36_guessing_numbe-2

Hardware erklärt

Die Hauptkomponenten, die in diesem Projekt verwendet werden, sind der ESP32-Mikrocontroller, eine Infrarotfernbedienung, ein Infrarotempfänger und ein LCD-Display. Der ESP32 dient als zentrale Verarbeitungseinheit und ist in der Lage, drahtlose Kommunikation zu handhaben, was ihn zu einer vielseitigen Wahl für IoT-Projekte macht. Die Infrarotfernbedienung ermöglicht es den Benutzern, Eingaben zu machen, ohne physisch mit dem Board zu interagieren, während das LCD den Spielstatus und Aufforderungen anzeigt.

Der Infrarotempfänger erkennt Signale von der Fernbedienung und dekodiert sie zur Verwendung im Spiel. Jeder Tastendruck auf der Fernbedienung entspricht einem bestimmten Wert, den der ESP32 interpretieren kann. Das LCD-Display bietet eine visuelle Schnittstelle für den Benutzer, die den aktuellen Schätzbereich und anzeigt, ob die Schätzung korrekt war.

Datenblattdetails

Hersteller SunFounder
Teilenummer ESP32
Logik/IO-Spannung 3,3 V
Versorgungsspannung 5 V (über USB)
Ausgangsstrom (pro Kanal) 12 mA (max)
PWM-Frequenzrichtlinien 1 kHz
Eingabelogikschwellen 0,3 * Vcc bis 0,7 * Vcc
Spannungsabfall / RDS(on)/ Sättigung 0,2 V
Thermische Grenzen Betriebstemperatur: -40 bis 85 °C
Paket WROOM-32 Modul
Hinweise / Varianten Unterstützt WLAN und Bluetooth

  • Stellen Sie sicher, dass alle Komponenten für 3,3 V und 5 V geeignet sind, wo dies zutrifft.
  • Verwenden Sie geeignete Pull-Up-Widerstände für den IR-Empfänger, um schwebende Eingangssignale zu vermeiden.
  • Berücksichtigen Sie die Verwendung eines Kühlkörpers, wenn Sie über längere Zeit mit maximalem Ausgangsstrom arbeiten.
  • Beim Einsatz von PWM sollte eine Frequenz von etwa 1 kHz für optimale Leistung eingehalten werden.
  • Seien Sie vorsichtig mit der Verkabelung; stellen Sie sicher, dass die Verbindungen sicher sind, um intermittierende Ausfälle zu vermeiden.

Verdrahtungsanweisungen

ESP32_36_guessing_number_wiring

Um die Verdrahtung für das Zahlengeschätzspiel einzurichten, beginnen Sie mit dem Anschließen des Infrarotempfängers. Verbinden Sie den roten Draht vom rechten Pin des Empfängers mit der 3,3 V Stromversorgung auf dem ESP32. Der schwarze Draht sollte mit dem Boden verbunden werden, während der linke Pin des Infrarotempfängers mit dem Pin verbinden.14auf dem ESP32.

ESP32_36_Zahlenraten_Schaltplan

Als Nächstes schließen Sie das LCD-Display an. Verbinden Sie den VCC-Pin des LCD mit der 5-V-Versorgung des ESP32 und den Ground-Pin mit dem Masseanschluss. Die SDA- und SCL-Pins des LCD sollten mit den Pins verbunden werden.21und22beziehungsweise. Stellen Sie sicher, dass zwischen den SDA- und SCL-Verbindungen zwei Leerzeichen frei bleiben, um Pin-Konflikte zu vermeiden. Entfernen Sie schließlich alle Kunststoffabdeckungen von der Batterie, bevor Sie die Platine mit Strom versorgen.

Codebeispiele und Durchgänge

Die folgenden Codeausschnitte veranschaulichen wesentliche Teile des Programms, das für das Zahlenratenspiel verwendet wird. Wir beginnen damit, notwendige Bibliotheken einzufügen und wichtige Bezeichner zu definieren.

#include 
#include 
#include 
#include 

const uint16_t IR_RECEIVE_PIN = 14;
IRrecv irrecv(IR_RECEIVE_PIN);
decode_results results;

In diesem Auszug fügen wir Bibliotheken für die Handhabung der LCD- und IR-Empfängerfunktionalität ein. Der Pin für den Infrarotempfänger ist definiert als14, und wir erstellen Instanzen der notwendigen Objekte, um Eingaben und Ausgaben zu verwalten.

void setup() {
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);
  irrecv.enableIRIn();
  initNewValue();
}

Dieser Snippet zeigt die Setup-Funktion, in der wir das LCD initialisieren, die serielle Kommunikation starten und den IR-Empfänger aktivieren. Die FunktioninitNewValue()wird aufgerufen, um eine neue Zufallszahl für den Spieler zu generieren, die er erraten soll.

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;
}

Diese Funktion vergleicht die Vermutung des Spielers mit der zufällig generierten Zahl und passt die oberen und unteren Grenzen entsprechend an. Wenn die Vermutung korrekt ist, wird der Zähler zurückgesetzt und es wird true zurückgegeben.

Der vollständige Code ist unter dem Artikel zu Ihrer Referenz geladen.

Demonstration / Was zu erwarten ist

Sobald alles verdrahtet ist und der Code hochgeladen wurde, wird das Spiel Sie auffordern, eine beliebige Zahl auf der Fernbedienung zu drücken. Das Spiel wird Ihnen dann Rückmeldung zu Ihren Vermutungen geben und den Bereich möglicher Zahlen aktualisieren, bis Sie die Zielnummer korrekt erraten. Wenn Sie die POWER-Taste drücken, wird das Spiel zurückgesetzt und von vorne begonnen (im Video bei 02:30).

Häufige Fehlerquellen sind, dass der Infrarotempfänger richtig ausgerichtet ist und dass alle Verbindungen sicher sind. Wenn das Spiel nicht reagiert, überprüfen Sie die Stromversorgung und stellen Sie sicher, dass das richtige Board und der richtige Port im Arduino IDE ausgewählt sind.

Video-Zeitstempel

  • 00:00 Start
  • 2:17 Einführung in das Spielprojekt
  • 4:37 Verkabelung
  • 6:15 Arduino-Code erklärt
  • 12:32 Auswahl des ESP32-Boards und COM-Ports in der Arduino IDE
  • 16:16 Spiele Zahlenraten

Bilder

ESP32_36_guessing_number_schematic
ESP32_36_guessing_number_schematic
ESP32_36_guessing_number_wiring
ESP32_36_guessing_number_wiring
ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-1
ESP32_36_guessing_numbe-2
ESP32_36_guessing_numbe-2
837-ESP32 Tutorial 36/55- Arduino code for guessing number
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Dateien📁

Keine Dateien verfügbar.