ESP32 Tutorial 26/55 - Verwendung von Joystick mit Arduino Aktionen ausführen | SunFounder's ESP32 IoT-Kit

ESP32 Tutorial 26/55 - Verwendung von Joystick mit Arduino Aktionen ausführen | SunFounder's ESP32 IoT-Kit

In diesem Tutorial werden wir lernen, wie man einen XY-Joystick mit dem ESP32-Mikrocontroller von SunFounder verbindet, um seine Position zu erkennen und basierend auf seinem Input Maßnahmen zu ergreifen. Wir werden außerdem einen Summer integrieren, der aktiviert wird, wenn der Joystick in eine bestimmte Position bewegt wird. Diese Kombination ermöglicht es uns, interaktive Projekte zu erstellen, die in Echtzeit auf Benutzerinput reagieren.

ESP32-26-xy-joystick-haupt

Der XY-Joystick bietet zwei analoge Ausgänge, die den X- und Y-Positionen entsprechen, und einen Schalter, der gedrückt werden kann, um eine Aktion auszulösen. Durch das Auslesen der Werte vom Joystick können wir verschiedene Elemente in unserem Projekt steuern, wie z. B. das Aktivieren eines Summers oder das Anzeigen von Werten auf dem Bildschirm. Um den Prozess vollständig zu verstehen, sollten Sie das Video für zusätzliche Einblicke ansehen (im Video bei 00:00).

Hardware Erklärt

Die Hauptkomponenten für dieses Projekt umfassen den ESP32-Mikrocontroller, den XY-Joystick und einen Summer. Der ESP32 ist ein vielseitiges Board, das Wi-Fi und Bluetooth unterstützt, was es ideal für IoT-Projekte macht. Der XY-Joystick besteht aus zwei veränderlichen Widerständen für die X- und Y-Achsen sowie einem Drucktaster für zusätzliche Eingaben.

Joystick-Schema
ESP32-26-xy-Joystick-Schema

Der Joystick gibt analoge Signale entsprechend seiner Position aus, die von den analogen Pins des ESP32 gelesen werden. Der Druckknopf liefert ein digitales Signal, wenn er gedrückt wird. Der Summer ist an einen digitalen Ausgangspin des ESP32 angeschlossen, wodurch er basierend auf der Position des Joysticks aktiviert oder deaktiviert werden kann.

Technische Datenblatt Details

Hersteller SunFounder
Teilenummer XY Joystick Moduler
Betriebsspannung 3,3 V - 5 V
Widerstandswert 10 kΩ (jede Achse)
Maximaler Strom 20 mA
Schaltertyp Momentary Drucktaster
Abmessungen Ungefähr 50 mm x 50 mm

  • Stellen Sie sicher, dass der Joystick mit 3,3 V versorgt wird, um mit dem ESP32 kompatibel zu sein.
  • Verwenden Sie Pull-up-Widerstände für den Schalter, um schwebende Eingänge zu vermeiden.
  • Schließen Sie die analogen Ausgänge an die ADC-Pins des ESP32 an (34 für X, 35 für Y).
  • Verwenden Sie einen Entprellmechanismus für den Schalter, um Fehltrigger zu verhindern.
  • Überwachen Sie die Spannungspegel, um sicherzustellen, dass sie innerhalb sicherer Betriebsgrenzen bleiben.

Verdrahtungsanweisungen

ESP32-26-xy-joystick-wiring

Um den Joystick mit dem ESP32 zu verbinden, beginnen Sie damit, den Masse-Pin des Joysticks mit einem Masse-Pin des ESP32 zu verbinden. Als Nächstes verbinden Sie den VCC-Pin des Joysticks mit dem 3,3 V-Pin des ESP32. Der Joystick hat zwei analoge Ausgangspins: Verbinden Sie den Ausgang der X-Achse (beschriftet alsVRX) um zu pinnen34auf dem ESP32 und dem Y-Achsen-Ausgang (bezeichnet alsVRY) zum Stecken35.

Für den Schalts Ausgang den Schaltstift mit dem Pin verbinden.33auf dem ESP32. Dieser Pin wird den Tastendruck als digitales Eingangssignal lesen. Stellen Sie sicher, dass die Verbindungen sicher sind, um intermittierende Probleme zu vermeiden. Wenn Ihre Verkabelung von dem Video abweicht (im Video bei 02:30), passen Sie sie entsprechend an, während Sie die gleichen Prinzipien für analoge und digitale Verbindungen befolgen.

Codebeispiele und Anleitung

Im Code beginnen wir damit, Konstanten für die Joystick-Pins zu definieren. Die BezeichnerxAxis,yAxis, undbtnsind festgelegt auf34,35, und33, bzw. Das erleichtert die Bezugnahme auf diese Pins im gesamten Programm.

#define xAxis 34
#define yAxis 35
#define btn 33

Imsetup()Funktion, wir initialisieren die serielle Kommunikation und setzen den Tasten-Pin-Modus auf Eingabe. Dies bereitet den ESP32 darauf vor, Daten vom Joystick zu lesen und an den seriellen Monitor zu senden.

void setup() {
  Serial.begin(115200);
  pinMode(btn, INPUT);  
}

Innerhalb derloop(), wir lesen die analogen Werte für die X- und Y-Achsen des Joysticks mit Hilfe vonanalogRead()und sie speichern inxValueundyValueDer Schaltzustand wird mithilfe von gelesen.digitalRead()und gespeichert inbtnValue. Schließlich drucken wir diese Werte auf dem seriellen Monitor aus.

void loop() {
  int xValue = analogRead(xAxis);
  int yValue = analogRead(yAxis); 
  int btnValue = digitalRead(btn);
  
  Serial.printf("Joystick value is %d , %d , %d \n",xValue,yValue,btnValue);
  delay(300);  // Delay between reads
}

Diese Schleife aktualisiert kontinuierlich die Werte und liefert Echtzeit-Feedback zur Joystickbewegung und zu Tasteneingaben. Für den vollständigen Code verweisen Sie bitte auf den vollständigen Code, der unter dem Artikel geladen ist.

Demonstration / Was zu erwarten ist

Wenn die Einrichtung abgeschlossen ist und der Code hochgeladen wurde, sollte der serielle Monitor die X- und Y-Werte sowie den Zustand des Buttons anzeigen. Während Sie den Joystick bewegen, ändern sich die Werte entsprechend und spiegeln seine Position wider. Das Drücken des Buttons wechselt seinen Zustand zwischen hoch und niedrig.

Häufige Fehler sind falsche Verdrahtungen, die zu schwebenden Eingängen oder keiner Reaktion des Joysticks führen können. Stellen Sie sicher, dass die richtigen Pins verwendet werden und dass die Pull-up-Widerstände für den Schalter implementiert sind. Sehen Sie sich das Video für praktische Demonstrationen dieser Verhaltensweisen an (im Video bei 13:00).

Video-Zeiten

  • 00:00 Start
  • 1:47 Einführung in den XY-Joystick
  • 7:32 Joystick-Werte messen
  • 8:40 Verdrahtung erklärt
  • 11:06 Arduino-Code für Joystick mit ESP32 erklärt
  • 14:43 ESP32-Board und COM-Port im Arduino IDE auswählen
  • 16:24 Demonstration der einfachen Verwendung von Joystick
  • 19:20 Erkennung der Position des Joystick-Codes mit Summer
  • 21:16 Demonstration der Positionsbestimmung

Bilder

joystick_schematic
joystick_schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-schematic
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-wiring
ESP32-26-xy-joystick-main
ESP32-26-xy-joystick-main
826-ESP32 Tutorial 26/55- Arduino code for XY Joystick
Sprache: C++
Kopiert!

Ressourcen & Referenzen

Dateien📁

Keine Dateien verfügbar.