Joystick-Modul am Arduino auslesen
FunduinoZuletzt aktualisiert am
Zwei Achsen und den Taster auslesen, LEDs und einen Ton ansteuern
So funktioniert das Joystick-Modul
Aufgabe 1: Position auslesen und LEDs ansteuern
Aufgabe 1: Joystick auslesen und LEDs ansteuern
int ledUnten = 6;
int ledOben = 7;
int ledLinks = 8;
int ledRechts = 9;
int SensorWert = 0; // Festlegen der Variablen
void setup()
{
pinMode(ledUnten, OUTPUT); // Definieren der LEDs
pinMode(ledOben, OUTPUT);
pinMode(ledLinks, OUTPUT);
pinMode(ledRechts, OUTPUT);
Serial.begin(9600);
}
void loop()
{
SensorWert = analogRead(A0); // Auslesen des Wertes an A0. Hier: VRx, X-Achse
Serial.print("X:"); // Darstellung des Wertes im seriellen Monitor
Serial.print(SensorWert, DEC); // Darstellung des Wertes als Dezimalzahl
if (SensorWert > 1010) // Wenn der Wert größer als 1010 ist, dann ...
{
digitalWrite(ledLinks, HIGH); // ... soll ledLinks leuchten
}
if (SensorWert < 1010) // Wenn der Wert kleiner als 1010 ist, dann ...
{
digitalWrite(ledLinks, LOW); // ... soll ledLinks nicht mehr leuchten
}
if (SensorWert < 20) // Wenn der Wert kleiner als 20 ist, dann ...
{
digitalWrite(ledRechts, HIGH); // ... soll ledRechts leuchten
}
if (SensorWert > 20) // Wenn der Wert größer als 20 ist, dann ...
{
digitalWrite(ledRechts, LOW); // ... soll ledRechts nicht mehr leuchten
}
SensorWert = analogRead(A1); // Auslesen des Wertes an A1. Hier: VRy, Y-Achse
Serial.print(" |Y:");
Serial.println(SensorWert, DEC);
if (SensorWert > 1010) // Wenn der Wert größer als 1010 ist, dann ...
{
digitalWrite(ledOben, HIGH); // ... soll ledOben leuchten
}
if (SensorWert < 1010) // Wenn der Wert kleiner als 1010 ist, dann ...
{
digitalWrite(ledOben, LOW); // ... soll ledOben nicht mehr leuchten
}
if (SensorWert > 20) // Wenn der Wert größer als 20 ist, dann ...
{
digitalWrite(ledUnten, LOW); // ... soll ledUnten nicht leuchten
}
if (SensorWert < 20) // Wenn der Wert kleiner als 20 ist, dann ...
{
digitalWrite(ledUnten, HIGH); // ... soll ledUnten leuchten
}
}Aufgabe 2: Den Taster auslesen und einen Ton ausgeben
Aufgabe 2: zusätzlich den Taster auslesen und einen Ton ausgeben
int piezo = 5; // Der Piezo-Speaker wird an Pin 5 angeschlossen
int ledUnten = 6;
int ledOben = 7;
int ledLinks = 8;
int ledRechts = 9;
int SensorWert = 0; // Festlegen der Variablen
void setup()
{
pinMode(piezo, OUTPUT); // Definieren des Speakers als Ausgang
pinMode(ledUnten, OUTPUT); // Definieren der LEDs
pinMode(ledOben, OUTPUT);
pinMode(ledLinks, OUTPUT);
pinMode(ledRechts, OUTPUT);
Serial.begin(9600);
}
void loop()
{
SensorWert = analogRead(A0); // Auslesen des Wertes an A0. Hier: VRx, X-Achse
Serial.print("X:"); // Darstellung des Wertes im seriellen Monitor
Serial.print(SensorWert, DEC); // Darstellung des Wertes als Dezimalzahl
if (SensorWert > 1010) // Wenn der Wert größer als 1010 ist, dann ...
{
digitalWrite(ledLinks, HIGH); // ... soll ledLinks leuchten
}
if (SensorWert < 1010) // Wenn der Wert kleiner als 1010 ist, dann ...
{
digitalWrite(ledLinks, LOW); // ... soll ledLinks nicht mehr leuchten
}
if (SensorWert < 20) // Wenn der Wert kleiner als 20 ist, dann ...
{
digitalWrite(ledRechts, HIGH); // ... soll ledRechts leuchten
}
if (SensorWert > 20) // Wenn der Wert größer als 20 ist, dann ...
{
digitalWrite(ledRechts, LOW); // ... soll ledRechts nicht mehr leuchten
}
SensorWert = analogRead(A1); // Auslesen des Wertes an A1. Hier: VRy, Y-Achse
Serial.print(" |Y:");
Serial.print(SensorWert, DEC);
if (SensorWert > 1010) // Wenn der Wert größer als 1010 ist, dann ...
{
digitalWrite(ledOben, HIGH); // ... soll ledOben leuchten
}
if (SensorWert < 1010) // Wenn der Wert kleiner als 1010 ist, dann ...
{
digitalWrite(ledOben, LOW); // ... soll ledOben nicht mehr leuchten
}
if (SensorWert > 20) // Wenn der Wert größer als 20 ist, dann ...
{
digitalWrite(ledUnten, LOW); // ... soll ledUnten nicht leuchten
}
if (SensorWert < 20) // Wenn der Wert kleiner als 20 ist, dann ...
{
digitalWrite(ledUnten, HIGH); // ... soll ledUnten leuchten
}
SensorWert = analogRead(A2); // Auslesen des Wertes an A2. Hier: SW, der Taster
Serial.print(" |Taster:");
Serial.println(SensorWert, DEC);
if (SensorWert < 20) // Wenn der Wert kleiner als 20 ist, dann ...
{
digitalWrite(piezo, HIGH); // ... soll der Speaker angesteuert werden ...
}
else // ... ist die Bedingung nicht erfüllt, ...
{
digitalWrite(piezo, LOW); // ... soll der Speaker wieder ausgeschaltet werden
}
}Anleitung bewerten