So Verbinden Sie Einen Joystick Mit Arduino

Inhaltsverzeichnis:

So Verbinden Sie Einen Joystick Mit Arduino
So Verbinden Sie Einen Joystick Mit Arduino

Video: So Verbinden Sie Einen Joystick Mit Arduino

Video: So Verbinden Sie Einen Joystick Mit Arduino
Video: Arduino joystick control LED 2024, April
Anonim

Es gibt eine Vielzahl von Möglichkeiten, Informationen von einer Person auf einen Mikrocontroller oder Computer zu übertragen, und eine davon ist die Verwendung eines Joysticks. Mal sehen, wie man einen analogen Joystick mit zwei Achsen und einer Taste an den Arduino anschließt.

Joystick mit zwei Achsen und einem Knopf
Joystick mit zwei Achsen und einem Knopf

Es ist notwendig

  • -Arduino;
  • - zweiachsiger Joystick;
  • - 3 Widerstände mit einem Nennwert von 220 Ohm;
  • - 1 RGB oder 3 konventionelle LEDs.

Anleitung

Schritt 1

Der Joystick ist ein bequemes und einfach zu bedienendes Gerät zur Übertragung von Informationen. Hinsichtlich der Anzahl der Freiheitsgrade, des Prinzips der Anzeige der Anzeigen und der verwendeten Technologien gibt es eine Vielzahl von Joystick-Typen. Joysticks werden am häufigsten verwendet, um die Bewegung von Mechanismen, gesteuerten Modellen und Robotern zu steuern. Der analoge Joystick, den wir uns heute anschauen, ist ein Griff, der an einem Kugelgelenk mit zwei zueinander senkrechten Achsen befestigt ist. Beim Kippen des Knopfes dreht die Achse den beweglichen Kontakt des Potentiometers, wodurch sich die Spannung an seinem Ausgang ändert. Außerdem verfügt der analoge Joystick über eine Takttaste, die ausgelöst wird, wenn man den Griff vertikal drückt.

Schematische Darstellung des Joysticks
Schematische Darstellung des Joysticks

Schritt 2

Schließen Sie den Joystick gemäß der folgenden Abbildung an. Verbinden Sie die analogen Ausgänge X und Y des Joysticks mit den analogen Eingängen A1 und A2 des Arduino, den Ausgang der SW-Taste mit dem digitalen Eingang 8. Der Joystick wird mit einer Spannung von +5 V versorgt.

Joystick-Schaltplan für Arduino
Joystick-Schaltplan für Arduino

Schritt 3

Um klar zu sehen, wie der Joystick funktioniert, schreiben wir eine solche Skizze. Lassen Sie uns die Pins deklarieren und die Betriebsmodi für sie einstellen. Beachten Sie, dass wir in der Prozedur setup() den Eingang switchPin auf einen hohen Pegel setzen. Dadurch wird der eingebaute Pull-Up-Widerstand an diesem Port aktiviert. Wenn Sie es nicht einschalten, hängt der 8. Arduino-Port in der Luft und fängt Pickups auf, wenn die Joystick-Taste nicht gedrückt wird. Dies führt zu unerwünschten, chaotischen Fehlalarmen.

Im loop()-Verfahren fragen wir ständig den Zustand des Tasters ab und zeigen ihn über die LED am Ausgang 13 an. Durch das Hochziehen des switchPin-Eingangs ist die LED konstant an und beim Drücken des Tasters erlischt sie, und nicht umgekehrt.

Als nächstes lesen wir die Messwerte der beiden Potentiometer des Joysticks aus - den Ausgang der X- und Y-Achse. Der Arduino hat einen 10-Bit-ADC, daher liegen die vom Joystick gelesenen Werte im Bereich von 0 bis 1023. In der Mittelstellung des Joysticks, wie man in der Abbildung sehen kann, liegen die Werte im Bereich 500 etwa in der Mitte des Bereichs.

Eine Skizze zur Demonstration der Bedienung des Joysticks
Eine Skizze zur Demonstration der Bedienung des Joysticks

Schritt 4

Normalerweise wird ein Joystick verwendet, um Elektromotoren zu steuern. Aber warum nicht zum Beispiel die Helligkeit einer LED damit steuern? Schließen wir eine RGB-LED (oder drei gewöhnliche LEDs) an die digitalen Ports 9, 10 und 11 des Arduino gemäß obigem Diagramm an, natürlich nicht die Widerstände vergessen.

Joystick- und RGB-LED-Schaltplan zu Arduino
Joystick- und RGB-LED-Schaltplan zu Arduino

Schritt 5

Wir ändern die Helligkeit der entsprechenden Farben, wenn wir die Position des Joysticks entlang der Achsen ändern, wie in der Abbildung gezeigt. Aufgrund der Tatsache, dass der Joystick vom Hersteller möglicherweise nicht genau zentriert ist und die Mitte der Skala nicht bei etwa 512, sondern bei 490 bis 525 liegt, kann die LED auch in der Neutralposition des Joysticks leicht aufleuchten. Wenn Sie es vollständig deaktivieren möchten, nehmen Sie die entsprechenden Änderungen am Programm vor.

Diagramm der Helligkeitsverteilung der R-, G-, B-Kanäle entlang der X- und Y-Achse
Diagramm der Helligkeitsverteilung der R-, G-, B-Kanäle entlang der X- und Y-Achse

Schritt 6

Basierend auf dem obigen Diagramm schreiben wir eine Skizze der Arduino-Steuerung der Helligkeit der RGB-LED mit einem Joystick.

Zuerst deklarieren wir die Entsprechung von Pins und zwei Variablen - ledOn und prevSw - für die Arbeit mit der Schaltfläche. Weisen Sie im Setup()-Verfahren den Pins die Funktionen zu und verbinden Sie den Pullup-Widerstand mit dem digitalWrite (swPin, HIGH)-Befehl mit dem Button-Pin.

In der Schleife () definieren wir das Drücken der Joystick-Taste. Wenn Sie die Taste drücken, wechseln wir die Betriebsmodi zwischen dem Modus "Taschenlampe" und dem Modus "Farbmusik".

Im freeMode()-Modus wird die Helligkeit der LEDs durch Neigen des Joysticks in verschiedene Richtungen gesteuert: Je stärker die Neigung entlang der Achse, desto heller leuchtet die entsprechende Farbe. Außerdem wird die Transformation von Werten von der Kartenfunktion übernommen (Wert, fromLower, fromUpper, toLower, toUpper). Die map()-Funktion überträgt die Messwerte (von Low, nach High) entlang der Joystick-Achsen in den gewünschten Helligkeitsbereich (nach Low, nach High). Sie können das gleiche mit gewöhnlichen arithmetischen Operationen machen, aber diese Notation ist viel kürzer.

Im DiscoMode () Modus gewinnen drei Farben abwechselnd an Helligkeit und gehen aus. Um die Schleife beim Drücken der Taste verlassen zu können, überprüfen wir bei jeder Iteration, ob die Taste gedrückt wurde.

Skizze zur Steuerung der Helligkeit der LED mit einem analogen Joystick
Skizze zur Steuerung der Helligkeit der LED mit einem analogen Joystick

Schritt 7

Das Ergebnis ist eine Taschenlampe aus einer dreifarbigen RGB-LED, deren Helligkeit jeder Farbe über einen Joystick eingestellt wird. Und wenn Sie die Taste drücken, wird der Modus "Farbmusik" aktiviert. Obwohl ich es im Gegenteil als Nachtlicht benutze.

So haben wir gelernt, wie man einen analogen Zweiachsen-Joystick mit einer Taste an den Arduino anschließt und Messwerte daraus ausliest. Sie können sich eine interessantere Verwendung des Joysticks vorstellen und implementieren als unser Beispiel.

Empfohlen: