Leucht­stär­ke LEDS mit Joystick

// 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: 25. Jul 2023 @ 19:11