zurück

Joystick für den Arduino

17.02.2018

Das folgende Joystick-Modul (oder auch Joypad-Modul) ist eine gute Eingabe-Möglichkeit für den Arduino, wenn es um zweidimensionale Koordinaten geht. Optional gibt es auch noch einen Knopf, der gedrückt werden kann (also ein digitales Signal).

Joystick-Modul
Abb.: Joystick-Modul

Verwendete Bauteile

Anschluss des Joysticks
Abb.: Anschluss des Joysticks

Der folgende Sketch gibt alle Änderungen in X- und Y-Richtung aus, sowie das Drücken des Joystick-Knopfes:

#define PIN_X A0
#define PIN_Y A1
#define PIN_BUTTON 2

const int tolerance = 10;
int xPos, xPosOld, yPos, yPosOld;

void setup()
{
    Serial.begin(9600);

    pinMode(PIN_X, INPUT);
    pinMode(PIN_Y, INPUT);

    // activate pull-up resistor on the push-button pin
    pinMode(PIN_BUTTON, INPUT_PULLUP);

    xPos    = 0;
    xPosOld = 0;
    yPos    = 0;
    yPosOld = 0;
}

void loop()
{
    xPos = analogRead(PIN_X);
    yPos = analogRead(PIN_Y);

    if (abs(xPos - xPosOld) > tolerance) {
        Serial.print("X: ");
        Serial.println(xPos);
        xPosOld = xPos;
    }
    if (abs(yPos - yPosOld) > tolerance) {
        Serial.print("Y: ");
        Serial.println(yPos);
        yPosOld = yPos;
    }
    if (digitalRead(PIN_BUTTON) == LOW) {
        Serial.println("Button pressed!");
    }
}