Florian-Binder

mod5a_key12LED

Nov 10th, 2021
906
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define ledr 2
  2. #define ledg 3
  3. #define ledb 4
  4. #define ledy 5
  5.  
  6. int led[] = {ledr, ledg, ledb, ledy};
  7. int key1 = 8;
  8. int key2 = 9;
  9. int tmpneu = 0;
  10. int tmpalt = tmpneu;
  11.  
  12. void setup() {
  13.   // Arry durchgehen und den PinMode der einzelnen Anschlüsse setzen
  14.   for (int i = 0; i <= 3; i++){
  15.     pinMode(led[i], OUTPUT);
  16.   }
  17.   pinMode(key1, INPUT_PULLUP);
  18.   pinMode(key2, INPUT_PULLUP);
  19.   digitalWrite(led[tmpneu], HIGH);
  20. }
  21.  
  22. void loop() {
  23.   if (digitalRead(key1) == HIGH){ //Key1 wird zum weiterschalten nach rechts benötigt
  24.     tmpneu++; //nächste LED nach Rechts
  25.     if (tmpneu > 3){  //Ende der LED Kette erreicht?
  26.       tmpneu = 0; //Setzen auf die LED am anderen Ende der Kette
  27.     }
  28.   }
  29.  
  30.   if (digitalRead(key2) == HIGH){ //Key2 wird zum weiterschalten nach links benötigt
  31.     tmpneu--; //nächste LED nach Links
  32.     if (tmpneu < 0){  //Ende der LED Kette erreicht?
  33.       tmpneu = 3; //Setzen auf die LED am anderen Ende der Kette
  34.     }
  35.   }
  36.  
  37.   if (tmpneu != tmpalt){  //Überprüfung ob die ein Botten gedrückt wurde?
  38.     resetled(); //LEDs zurücksetzen
  39.     digitalWrite(led[tmpneu], HIGH); //Die ausgewählte LED einschalten
  40.     tmpalt = tmpneu; //neuen Überprüfungswert setzten;
  41.     delay(500); //delay zur vermeidung das mit einem Knopfdruck kurz hinterinander weitergeschaltet wird
  42.   }
  43. }
  44.  
  45. void resetled () {
  46.   // Arry durchgehen und alle LEDs auschalten
  47.   for (int i = 0; i <=3 ; i++){
  48.     digitalWrite(led[i], LOW);
  49.   }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment