1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | // 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() { Serial.begin(9600); 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); } Serial.println(“Helligkeit rote LED: ” + String(LeuchtStaerkeRot)); Serial.println(“Helligkeit grüne LED: ” + String(LeuchtStaerkeGruen)); } // 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); } Serial.println(“Helligkeit rote LED: ” + String(LeuchtStaerkeRot)); Serial.println(“Helligkeit grüne LED: ” + String(LeuchtStaerkeGruen)); } // Bewegung der Y‑Achse lesen PositionY = analogRead(YAchse); // Bewegung Y‑Achse nach rechts if (PositionY > 600) { if (LeuchtStaerkeGruen > 0) { LeuchtStaerkeGruen = LeuchtStaerkeGruen - 1; analogWrite (GRUEN, LeuchtStaerkeGruen); delay(20); } Serial.println(“Helligkeit rote LED: ” + String(LeuchtStaerkeRot)); Serial.println(“Helligkeit grüne LED: ” + String(LeuchtStaerkeGruen)); } // Bewegung Y‑Achse nach links if (PositionY < 300) { if (LeuchtStaerkeGruen < 255) { LeuchtStaerkeGruen = LeuchtStaerkeGruen + 1; analogWrite(GRUEN, LeuchtStaerkeGruen); delay(20); } Serial.println(“Helligkeit rote LED: ” + String(LeuchtStaerkeRot)); Serial.println(“Helligkeit grüne LED: ” + String(LeuchtStaerkeGruen)); } // 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: