// PWM-Pins
int GRUEN = 5;
int ROT = 6;
// Button/Knopf
int JoystickButton = 7;
// analoge Pins
int XAchse = A0;
int YAchse = A1;
// Variablen für die Auswertung der Bewegung des Joysticks
int PositionX;
int PositionY;
// Leuchstärke der LEDs (0-255)
int LeuchtStaerkeRot;
int LeuchtStaerkeGruen;
// Zustand des Buttons
int ButtonLesen;
void setup()
{
pinMode(ROT, OUTPUT);
pinMode(GRUEN, OUTPUT);
pinMode(JoystickButton, INPUT_PULLUP);
}
void loop()
{
// Bewegung der X-Achse lesen
PositionX = analogRead(XAchse);
// Bewegung X-Achse nach oben
if (PositionX > 600)
{
// bei der PWM darf die Leuchstärke 255 nicht übersteigen
if (LeuchtStaerkeRot < 255)
{
// Helligkeit um 1 erhöhen
LeuchtStaerkeRot = LeuchtStaerkeRot + 1;
// rote LED einschalten
analogWrite(ROT, LeuchtStaerkeRot);
delay(20);
}
}
// Bewegung X-Achse nach unten
if (PositionX < 300)
{
// solange die Helligkeit > 0
// -> Helligkeit um 1 verringern
if (LeuchtStaerkeRot > 0)
{
LeuchtStaerkeRot = LeuchtStaerkeRot - 1;
analogWrite(ROT, LeuchtStaerkeRot);
delay(20);
}
}
// Bewegung der Y-Achse lesen
PositionY = analogRead(YAchse);
// Bewegung Y-Achse nach rechts
if (PositionY > 600)
{
if (LeuchtStaerkeGruen < 255)
{
LeuchtStaerkeGruen = LeuchtStaerkeGruen + 1;
analogWrite(GRUEN, LeuchtStaerkeGruen);
delay(20);
}
}
// Bewegung Y-Achse nach links
if (PositionY < 300)
{
if (LeuchtStaerkeGruen > 0)
{
LeuchtStaerkeGruen = LeuchtStaerkeGruen - 1;
analogWrite (GRUEN, LeuchtStaerkeGruen);
delay(20);
}
}
// Button/Knopf auswerten
ButtonLesen = digitalRead(JoystickButton);
if (ButtonLesen == LOW)
{
// Helligkeit der LEDs auf 0 setzen und LEDs ausschalten
LeuchtStaerkeGruen = 0;
LeuchtStaerkeRot = 0;
analogWrite(ROT, 0);
analogWrite(GRUEN, 0);
}
}
Letzte Aktualisierung: