Arduino Mega - Joystick

Willkommen zu diesem umfassenden Arduino Mega Joystick-Tutorial! In dieser detaillierten Arduino Mega Joystick-Anleitung werden Sie entdecken, wie Sie die Kraft analoger Joystick-Module nutzen können, um intuitive, interaktive Steuerungssysteme für Ihre Arduino Mega-Projekte zu erstellen.

Joystick-Module sind unglaublich vielseitige Eingabegeräte, die präzise zweidimensionale Positionssteuerung bieten und sich perfekt für Gaming-Anwendungen, Robotik-Steuerung, Kamera-Pan-Tilt-Systeme und interaktive Kunstinstallationen eignen. In diesem Arduino Mega Joystick-Tutorial erkunden wir alles, was Sie zur Meisterung der Joystick-Integration benötigen:

Dieses Arduino Mega Joystick-Projekt eröffnet endlose kreative Möglichkeiten! Bauen Sie Game-Controller, ferngesteuerte Roboter mit intuitiver Lenkung, Pan-Tilt-Kamera-Systeme, Virtual-Reality-Schnittstellen oder interaktive Displays, die auf Joystick-Bewegungen reagieren. Die Kombination aus präziser analoger Steuerung und digitaler Button-Eingabe macht Joysticks zu einem der leistungsstärksten und benutzerfreundlichsten verfügbaren Eingabegeräte!

Arduino Mega und Joystick

Benötigte Hardware

1×Arduino Mega
1×USB 2.0 Kabel Typ A/B
1×Joystick
1×Verbindungskabel
1×(Empfohlen) Screw Terminal Block Shield for Arduino Uno/Mega
1×(Empfohlen) Breadboard Shield for Arduino Mega
1×(Empfohlen) Enclosure for Arduino Mega

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über den Joystick

Joysticks sind vertraute Eingabegeräte, denen Sie wahrscheinlich in vielen Anwendungen begegnet sind - von klassischen Videospiel-Controllern und RC-Spielzeug-Fernbedienungen bis hin zu professioneller Ausrüstung wie Industriemaschinen, Baggern und Drohnen-Steuerungssystemen. Ihre intuitive Bedienoberfläche macht sie zu einer natürlichen Wahl für jedes Projekt, das Richtungssteuerung erfordert.

Das Joystick-Modul besteht aus zwei Potentiometern (variable Widerstände), die senkrecht zueinander unter einem federbelasteten Stick montiert sind, plus einem integrierten Push-Button-Schalter, der aktiviert wird, wenn Sie den Stick nach unten drücken. Diese clevere mechanische Anordnung bietet drei unterschiedliche Ausgänge:

  • X-Achsen-Ausgang: Eine analoge Ablesung von 0 bis 1023, die die Links-Rechts-Position (horizontale Bewegung) darstellt
  • Y-Achsen-Ausgang: Eine analoge Ablesung von 0 bis 1023, die die Auf-Ab-Position (vertikale Bewegung) darstellt
  • Button-Status: Ein digitales Signal (HIGH oder LOW), das anzeigt, ob der Joystick nach unten gedrückt wird

Wenn Sie die beiden analogen Werte kombinieren, erstellen sie präzise 2D-Koordinaten, die die Position des Joysticks im Raum abbilden. In Ruhestellung (neutrale Position) gibt der Joystick typischerweise mittlere Werte um 512 für sowohl X- als auch Y-Achsen aus. Das Bewegen des Sticks in jede Richtung verändert diese Werte proportional und bietet sanfte, kontinuierliche Steuerung.

Die Schönheit dieses Designs liegt in seiner Flexibilität - einige Anwendungen nutzen alle drei Ausgänge gleichzeitig (wie ein Gaming-Controller mit Bewegung und Action-Buttons), während andere möglicherweise nur die X/Y-Positionsdaten benötigen (wie ein Kamera-Pan-Tilt-System) oder nur den Button (als einfacher Schalter). Sie können die genaue Koordinaten-Zuordnung einfach bestimmen, indem Sie Test-Code ausführen, was wir im Programmierabschnitt unten im Detail erkunden werden.

Pinout

Das Verstehen der Pin-Konfiguration des Joysticks ist für die ordnungsgemäße Verkabelung unerlässlich. Das Joystick-Modul verfügt über fünf Pins, die Stromversorgung, Masse und Signalverbindungen bereitstellen:

  • GND-Pin: Der Masse-Referenz-Pin. Verbinden Sie diesen mit dem GND (0V) des Arduino Mega, um alle elektrischen Schaltkreise zu vervollständigen und eine gemeinsame Masse-Referenz zu etablieren.
  • VCC-Pin: Der Stromversorgungs-Pin. Verbinden Sie diesen mit dem 5V-Ausgang des Arduino Mega, um Betriebsspannung für die Potentiometer und interne Schaltkreise bereitzustellen.
  • VRX-Pin: Der X-Achsen-analoge Ausgangs-Pin. Dieser liefert ein analoges Spannungssignal (0V bis 5V), das die horizontale Position des Joysticks darstellt. Verbinden Sie mit einem beliebigen analogen Eingangs-Pin des Arduino Mega (A0-A15).
  • VRY-Pin: Der Y-Achsen-analoge Ausgangs-Pin. Dieser liefert ein analoges Spannungssignal (0V bis 5V), das die vertikale Position des Joysticks darstellt. Verbinden Sie mit einem beliebigen analogen Eingangs-Pin des Arduino Mega (A0-A15).
  • SW-Pin: Der Schalter-(Button)-Ausgangs-Pin vom integrierten Push-Button. Dieser Pin ist normalerweise offen (keine Verbindung). Das Modul enthält typischerweise einen internen Pull-up-Widerstand, der diesen Pin HIGH (5V) hält, wenn er nicht gedrückt wird, und ihn LOW (0V) zieht, wenn der Joystick nach unten gedrückt wird. Verbinden Sie mit einem beliebigen digitalen Eingangs-Pin des Arduino Mega.
Joystick Pinout

Verbindungs-Tipp: Sie können VRX und VRY mit beliebigen verfügbaren analogen Pins Ihres Arduino Mega verbinden. Der Arduino Mega bietet 16 analoge Eingangs-Pins (A0 bis A15), was Ihnen viele Optionen für die Integration mehrerer Sensoren neben Ihrem Joystick gibt.

Wie es funktioniert

Lassen Sie uns in die technischen Details eintauchen, wie der Joystick physische Bewegung in elektrische Signale umwandelt, die Ihr Arduino verstehen kann:

Links/Rechts-Bewegung (X-Achse):

  • Wenn Sie den Joystick nach links oder rechts bewegen, drehen Sie physisch das X-Achsen-Potentiometer im Modul
  • Das Bewegen des Sticks vollständig nach links dreht das Potentiometer in seine minimale Widerstandsposition und erzeugt etwa 0V am VRX-Pin
  • Das Bewegen des Sticks vollständig nach rechts dreht das Potentiometer in seine maximale Widerstandsposition und erzeugt etwa 5V am VRX-Pin
  • Der Analog-Digital-Wandler (ADC) des Arduino Mega liest diese Spannung und wandelt sie in einen digitalen Wert von 0 bis 1023 um, wobei 0V gleich 0 und 5V gleich 1023 entspricht
  • In der Mittelposition (neutral) beträgt die Spannung etwa 2,5V, was sich in einen Wert um 512 übersetzt

Auf/Ab-Bewegung (Y-Achse):

  • Die Y-Achse funktioniert identisch zur X-Achse, reagiert aber auf vertikale Bewegung anstatt horizontale
  • Das Bewegen des Sticks vollständig nach oben erzeugt etwa 0V am VRY-Pin (analoger Wert nahe 0)
  • Das Bewegen des Sticks vollständig nach unten erzeugt etwa 5V am VRY-Pin (analoger Wert nahe 1023)
  • Der Arduino wandelt diese Spannung mit dem gleichen ADC-Prozess in eine Zahl von 0 bis 1023 um
  • Die Mittelposition ergibt etwa 2,5V (analoger Wert um 512)

Kombinierte Bewegungen (Diagonal):

  • Wenn Sie den Joystick diagonal bewegen (zum Beispiel oben-rechts oder unten-links), ändern sowohl der VRX- als auch der VRY-Pin gleichzeitig ihre Spannungen
  • Jede Achse arbeitet unabhängig, sodass Sie einzigartige Koordinatenpaare für jede Joystick-Position erhalten
  • Zum Beispiel könnte das Bewegen zur oberen rechten Ecke Ihnen X=1023, Y=0 geben, während die untere linke Ecke X=0, Y=1023 ergibt
  • Dies schafft eine glatte, kontinuierliche Zuordnung des gesamten 2D-Bewegungsbereichs

Drücken des Joysticks (Z-Achse / Button):

  • Das Drücken direkt nach unten auf die Oberseite des Joysticks aktiviert einen taktilen Push-Button-Schalter unter dem Stick
  • Der SW-Pin enthält einen internen Pull-up-Widerstand (oder Sie können den internen Pull-up des Arduino aktivieren)
  • Wenn nicht gedrückt, hält der Pull-up-Widerstand den SW-Pin auf HIGH-Spannung (5V)
  • Wenn gedrückt, verbindet der Button den SW-Pin direkt mit der Masse und zieht ihn LOW (0V)
  • Der Arduino liest dies als einfaches digitales Signal: HIGH = nicht gedrückt, LOW = gedrückt

Zusammenfassung: Der Joystick ist im Wesentlichen zwei variable Widerstände (Potentiometer) plus ein Button. Das Bewegen des Sticks ändert Widerstandswerte, was die Spannungen an VRX und VRY ändert. Die analogen Eingänge des Arduino messen diese Spannungen als Zahlen von 0 bis 1023 und geben Ihnen präzise Positionsdaten. Der Button bietet einen zusätzlichen digitalen Eingang, der entweder HIGH oder LOW ist, perfekt zum Auslösen von Aktionen, wenn der Benutzer den Joystick nach unten drückt.

Schaltplan

Lassen Sie uns nun die ordnungsgemäßen Verbindungen zwischen Ihrem Arduino Mega und dem Joystick-Modul betrachten. Diese Konfiguration verwendet zwei analoge Pins für die Positionserkennung und einen digitalen Pin für die Button-Erkennung:

Arduino Mega Joystick Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Verbindungsübersicht:

Joystick-Pin Arduino Mega Pin
GND GND
VCC 5V
VRX A1
VRY A0
SW Pin 2

Diese Pin-Zuweisungen können bei Bedarf in Ihrem Code geändert werden, um andere Komponenten in Ihrem Projekt zu berücksichtigen.

Wie man für den Joystick programmiert

Lassen Sie uns die Programmiergrundlagen für die Arbeit mit Joystick-Modulen erkunden! Der Joystick kombiniert zwei unterschiedliche Eingabetypen - analoge Positionierung und digitale Button-Erkennung - die verschiedene Programmieransätze erfordern.

Lesen analoger Positionsdaten

Die X- und Y-Achsen des Joysticks sind analoge Eingänge, wodurch sie einfach zu lesen sind. Verwenden Sie einfach die analogRead()-Funktion auf den verbundenen analogen Pins:

int xValue = analogRead(A1); // X-Achsen-Position lesen (0-1023) int yValue = analogRead(A0); // Y-Achsen-Position lesen (0-1023)

Diese Werte reichen von 0 bis 1023, wobei etwa 512 die Mitte (neutrale Position) darstellt. Sie können diese Werte kontinuierlich in Ihrer loop()-Funktion lesen, um Joystick-Bewegungen in Echtzeit zu verfolgen.

Lesen des Push-Buttons

Für die digitale Button-Komponente (SW-Pin) empfehlen wir die Verwendung der ezButton-Bibliothek anstatt einfacher digitalRead()-Aufrufe. Hier ist der Grund:

  • Entprellung: Die ezButton-Bibliothek enthält eingebaute Entprellungsalgorithmen, die elektrisches Rauschen und mechanisches Prellen herausfiltern und zuverlässige Button-Status-Erkennung gewährleisten
  • Flanken-Erkennung: Sie bietet einfache Methoden zur Erkennung von Drück-Ereignissen, Loslassen-Ereignissen und kontinuierlichen Drück-Zuständen
  • Saubererer Code: Vereinfacht die Button-Behandlung mit intuitiven Funktionen

Sie können vollständige Button-Programmiertechniken in unserem Arduino Mega - Button Tutorial lernen. Wir werden die ezButton-Verwendung in den folgenden Code-Beispielen demonstrieren.

Verarbeitung von Joystick-Daten

Nach dem Lesen roher analoger Werte müssen Sie sie oft in nützlichere Formate umwandeln:

  • Richtungsbefehle (OBEN, UNTEN, LINKS, RECHTS)
  • Servo-Winkel (0° bis 180°)
  • Motor-Geschwindigkeiten (-255 bis +255)
  • Cursor-Koordinaten für Displays

Die Code-Beispiele im nächsten Abschnitt demonstrieren mehrere gängige Datentransformationstechniken, die Sie für Ihre spezifische Anwendung anpassen können.

Arduino Mega Code

Lassen Sie uns in praktische Code-Beispiele eintauchen, die verschiedene Methoden zur Arbeit mit Joystick-Daten demonstrieren! Wir haben mehrere progressiv fortgeschrittene Beispiele vorbereitet, um Ihnen bei der Meisterung der Joystick-Programmierung zu helfen:

  • Beispiel 1: Lesen und Anzeigen roher analoger Joystick-Werte (X- und Y-Positionsdaten)
  • Beispiel 2: Lesen analoger Werte plus Erkennung von Push-Button-Drück-Ereignissen
  • Beispiel 3: Umwandlung analoger Positionsdaten in Richtungsbefehle (NACH LINKS BEWEGEN, NACH RECHTS BEWEGEN, NACH OBEN BEWEGEN, NACH UNTEN BEWEGEN)
  • Beispiel 4: Transformation analoger Werte in Servomotor-Winkel zur Steuerung eines Pan-Tilt-Kamera-Systems

Jedes Beispiel baut auf den vorherigen Konzepten auf, daher empfehlen wir, sie der Reihe nach durchzuarbeiten, wenn Sie neu in der Joystick-Programmierung sind.

Liest analoge Werte vom Joystick

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-mega/arduino-mega-joystick */ #define VRX_PIN A1 // The Arduino Mega pin connected to VRX pin #define VRY_PIN A0 // The Arduino Mega pin connected to VRY pin int xValue = 0; // To store value of the X axis int yValue = 0; // To store value of the Y axis void setup() { Serial.begin(9600) ; } void loop() { // read analog X and Y analog values xValue = analogRead(VRX_PIN); yValue = analogRead(VRY_PIN); // print data to Serial Monitor on Arduino IDE Serial.print("x = "); Serial.print(xValue); Serial.print(", y = "); Serial.println(yValue); delay(200); }

Schnelle Schritte

Folgen Sie diesen detaillierten Schritten sorgfältig, um Ihr Joystick-Setup zu testen:

Schritt 1 - Physische Verbindung: Verbinden Sie den Joystick mit dem Arduino Mega unter Verwendung des oben gezeigten Schaltplans. Überprüfen Sie doppelt, dass VCC, GND, VRX, VRY und SW alle mit den richtigen Pins verbunden sind.

Schritt 2 - USB-Verbindung: Verbinden Sie das Arduino Mega Board mit Ihrem Computer über ein USB-Kabel. Warten Sie, bis Ihr Betriebssystem das Gerät erkennt.

Schritt 3 - Arduino IDE starten: Öffnen Sie die Arduino IDE Software auf Ihrem Computer. Falls Sie sie noch nicht installiert haben, laden Sie sie von der offiziellen Arduino-Website herunter.

Schritt 4 - Board-Konfiguration: Navigieren Sie zu Tools > Board und wählen Sie "Arduino Mega or Mega 2560". Gehen Sie dann zu Tools > Port und wählen Sie den entsprechenden COM-Port.

Schritt 5 - Code laden: Kopieren Sie das obige Code-Beispiel und fügen Sie es in das Arduino IDE Editor-Fenster ein.

Schritt 6 - Programm hochladen: Klicken Sie den Upload-Button (Pfeil-nach-rechts-Symbol) in der Arduino IDE, um den Code zu kompilieren und auf Ihr Arduino Mega zu übertragen. Warten Sie auf die "Done uploading"-Meldung.

Schritt 7 - Bewegung testen: Bewegen Sie den Joystick zu seinen extremen Rändern und drehen Sie ihn in vollständigen Kreisen (im oder gegen den Uhrzeigersinn), um den gesamten Bewegungsbereich zu testen.

Schritt 8 - Ausgabe überwachen: Öffnen Sie den Serial Monitor (Tools > Serial Monitor oder Strg+Shift+M), um die Echtzeit-Joystick-Daten zu betrachten.

COM6
Send
x = 512, y = 508 x = 512, y = 509 x = 1023, y = 512 x = 1023, y = 510 x = 514, y = 1023 x = 512, y = 1023 x = 0, y = 511 x = 0, y = 512 x = 511, y = 0 x = 512, y = 0
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Die Ausgabe verstehen:

  • Wenn X nahe 0 liest, ist der Joystick vollständig nach LINKS bewegt
  • Wenn X nahe 1023 liest, ist der Joystick vollständig nach RECHTS bewegt
  • Wenn Y nahe 0 liest, ist der Joystick vollständig NACH OBEN bewegt
  • Wenn Y nahe 1023 liest, ist der Joystick vollständig NACH UNTEN bewegt
  • Die Mittelposition zeigt Werte um 512 für beide Achsen

Profi-Tipp: Ihr Joystick liest möglicherweise nicht genau 0, 512 oder 1023 aufgrund von Herstellungstoleranzen. Typische Mittenwerte reichen von 505-520, und Randwerte können 10-20 Zählungen von den Extremen entfernt sein. Dies ist normal und kann in Ihrem Code durch Kalibrierung oder Schwellenwerte kompensiert werden.

Liest analoge Werte und liest den Button-Status vom Joystick

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-mega/arduino-mega-joystick */ #include <ezButton.h> #define VRX_PIN A1 // The Arduino Mega pin connected to VRX pin #define VRY_PIN A0 // The Arduino Mega pin connected to VRY pin #define SW_PIN 2 // The Arduino Mega pin connected to SW pin ezButton button(SW_PIN); int xValue = 0; // To store value of the X axis int yValue = 0; // To store value of the Y axis int bValue = 0; // To store value of the button void setup() { Serial.begin(9600) ; button.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button.loop(); // MUST call the loop() function first // read analog X and Y analog values xValue = analogRead(VRX_PIN); yValue = analogRead(VRY_PIN); // Read the button value bValue = button.getState(); if (button.isPressed()) { Serial.println("The button is pressed"); // TODO do something here } if (button.isReleased()) { Serial.println("The button is released"); // TODO do something here } // print data to Serial Monitor on Arduino IDE Serial.print("x = "); Serial.print(xValue); Serial.print(", y = "); Serial.print(yValue); Serial.print(" : button = "); Serial.println(bValue); }

Schnelle Schritte

Schritt 1 - ezButton-Bibliothek installieren: Klicken Sie das Libraries-Symbol (Buch-Symbol) in der linken Seitenleiste der Arduino IDE, um den Library Manager zu öffnen.

Schritt 2 - Bibliothek suchen: Geben Sie in der Suchbox "ezButton" ein und finden Sie die ezButton-Bibliothek von ArduinoGetStarted.com in den Ergebnissen.

Schritt 3 - Installieren: Klicken Sie den Install-Button, um die ezButton-Bibliothek zu Ihrer Arduino IDE hinzuzufügen. Warten Sie, bis die Installation abgeschlossen ist.

Arduino Mega button library

Schritt 4 - Code laden: Kopieren Sie das obige Code-Beispiel und öffnen Sie es im Arduino IDE Editor.

Schritt 5 - Programm hochladen: Klicken Sie den Upload-Button in der Arduino IDE, um den Code zu kompilieren und auf Ihr Arduino Mega hochzuladen.

Schritt 6 - Joystick testen: Bewegen Sie den Joystick in alle Richtungen - links, rechts, oben und unten - um zu sehen, wie sich die analogen Werte ändern.

Schritt 7 - Button testen: Drücken Sie fest nach unten auf die Oberseite des Joysticks, um den integrierten Push-Button zu aktivieren.

Schritt 8 - Ergebnisse anzeigen: Öffnen Sie den Serial Monitor, um Echtzeit-Joystick-Positionsdaten und Button-Drück-Ereignisse zu sehen.

COM6
Send
x = 512, y = 510 x = 1020, y = 512 x = 1023, y = 510 The button is pressed x = 1021, y = 512 The button is released x = 510, y = 1023 x = 5, y = 8 x = 0, y = 0 The button is pressed x = 1, y = 2 The button is released x = 512, y = 511
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Profi-Tipp: Die Entprellungsfunktion der ezButton-Bibliothek sorgt für saubere, zuverlässige Button-Drück-Erkennung ohne Fehlauslöser durch elektrisches Rauschen oder mechanisches Prellen.

Wandelt analoge Werte in NACH LINKS/RECHTS/OBEN/UNTEN BEWEGEN-Befehle um

/* * Dieser Arduino Mega Code wurde von newbiely.de entwickelt * Dieser Arduino Mega Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-mega/arduino-mega-joystick */ #define VRX_PIN A1 // The Arduino Mega pin connected to VRX pin #define VRY_PIN A0 // The Arduino Mega pin connected to VRY pin #define LEFT_THRESHOLD 400 #define RIGHT_THRESHOLD 800 #define UP_THRESHOLD 400 #define DOWN_THRESHOLD 800 #define COMMAND_NO 0x00 #define COMMAND_LEFT 0x01 #define COMMAND_RIGHT 0x02 #define COMMAND_UP 0x04 #define COMMAND_DOWN 0x08 int xValue = 0 ; // To store value of the X axis int yValue = 0 ; // To store value of the Y axis int command = COMMAND_NO; void setup() { Serial.begin(9600) ; } void loop() { // read analog X and Y analog values xValue = analogRead(VRX_PIN); yValue = analogRead(VRY_PIN); // converts the analog value to commands // reset commands command = COMMAND_NO; // check left/right commands if (xValue < LEFT_THRESHOLD) command = command | COMMAND_LEFT; else if (xValue > RIGHT_THRESHOLD) command = command | COMMAND_RIGHT; // check up/down commands if (yValue < UP_THRESHOLD) command = command | COMMAND_UP; else if (yValue > DOWN_THRESHOLD) command = command | COMMAND_DOWN; // NOTE: AT A TIME, THERE MAY BE NO COMMAND, ONE COMMAND OR TWO COMMANDS // print command to serial and process command if (command & COMMAND_LEFT) { Serial.println("COMMAND LEFT"); // TODO: add your task here } if (command & COMMAND_RIGHT) { Serial.println("COMMAND RIGHT"); // TODO: add your task here } if (command & COMMAND_UP) { Serial.println("COMMAND UP"); // TODO: add your task here } if (command & COMMAND_DOWN) { Serial.println("COMMAND DOWN"); // TODO: add your task here } }

Schnelle Schritte

Schritt 1 - Code laden: Kopieren Sie das obige Code-Beispiel und öffnen Sie es im Arduino IDE Editor-Fenster.

Schritt 2 - Programm hochladen: Klicken Sie den Upload-Button in der Arduino IDE, um den Code zu kompilieren und auf das Arduino Mega hochzuladen.

Schritt 3 - Richtungen testen: Bewegen Sie den Joystick gezielt in jede Himmelsrichtung - links, rechts, oben und unten - sowie in diagonale Richtungen.

Schritt 4 - Befehle anzeigen: Öffnen Sie den Serial Monitor, um die interpretierten Richtungsbefehle in Echtzeit zu sehen.

COM6
Send
COMMAND: MOVE UP COMMAND: MOVE UP, MOVE RIGHT COMMAND: MOVE RIGHT COMMAND: MOVE RIGHT COMMAND: MOVE DOWN, MOVE RIGHT COMMAND: MOVE DOWN COMMAND: MOVE DOWN, MOVE LEFT COMMAND: MOVE LEFT COMMAND: MOVE LEFT COMMAND: MOVE UP, MOVE LEFT COMMAND: MOVE UP
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ Notiz:

Befehlsausgabe verstehen: Je nach Joystick-Position sehen Sie möglicherweise keinen Befehl (Mitte/neutrale Position), einen einzelnen Befehl (reine Himmelsrichtung) oder zwei gleichzeitige Befehle (diagonale Bewegung wie OBEN + LINKS oder UNTEN + RECHTS). Dies ist völlig normal und stellt die kontinuierliche 2D-Positionierungsfähigkeit des Joysticks dar.

Anwendungsideen: Dieser befehlsbasierte Ansatz ist perfekt für Roboter-Navigation, Charakterbewegung in Spielen, Menü-Navigation oder jede Anwendung, bei der Sie diskrete Richtungsanweisungen anstatt roher analoger Werte benötigen.

Wandelt analoge Werte in Winkel um, um zwei Servomotoren zu steuern

Dieses fortgeschrittene Beispiel demonstriert eine der beliebtesten Joystick-Anwendungen: die Steuerung einer Pan-Tilt-Kamera-Halterung oder eines Roboterarms mit zwei Servomotoren! Die X-Achse steuert das horizontale Schwenken, während die Y-Achse das vertikale Neigen steuert. Für ein vollständiges, detailliertes Tutorial mit Code und Schaltplänen sehen Sie unser spezielles Arduino Mega - Joystick Servo Motor Tutorial.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!