8. November 2011
Erste Arbeit mit dem Arduino (UNO) Board. Aufgabe: Mit drei Tastern wird eine ‘Ampelschaltung’ realisiert. Jeder der Taster schaltet eine LED ein und beim Druck auf einen anderen Taster erlischt die vorige und eine neue LED leuchtet. Material: 3 LED’s, Vorwiderstände, 3 Taster #define LED_PIN_YL 13 #define LED_PIN_GR 12 #define LED_PIN_RED 11 #define BUTTON_PIN6 6 #define BUTTON_PIN5 5 #define BUTTON_PIN4 4 boolean buttonStateYL = false; // boolische varable boolean buttonStateGR = false; boolean buttonStateRED = false; void setup () { pinMode(LED_PIN_YL, OUTPUT); // definition des LED ausgang pinMode(LED_PIN_GR, OUTPUT); pinMode(LED_PIN_RED, OUTPUT); pinMode(BUTTON_PIN6, INPUT); //definition des buttons Pins als Input/eingang digitalWrite(BUTTON_PIN6, HIGH); // aktivieren des pullup widerstandes an PIN6 6 (Button Pin) pinMode(BUTTON_PIN5, INPUT); digitalWrite(BUTTON_PIN5, HIGH); pinMode(BUTTON_PIN4, INPUT); digitalWrite(BUTTON_PIN4, HIGH); } void loop() { if(digitalRead(BUTTON_PIN6) == LOW) //wenn button gedueckt wird dann..... { if(buttonStateYL == false) // wenn der status AUS ist, dann.... { buttonStateYL = true; //setze den Status aus EIN buttonStateGR = false; buttonStateRED = false; digitalWrite(LED_PIN_YL, HIGH); digitalWrite(LED_PIN_GR, LOW); digitalWrite(LED_PIN_RED, LOW); delay(200); } else // Wenn der Status EIN ist, dann... { buttonStateYL = false; // setze den status auf AUS digitalWrite(LED_PIN_YL, LOW); delay(200); } } if(digitalRead(BUTTON_PIN5) == LOW) { if(buttonStateGR == false) { buttonStateGR = true; //setze den Status aus EIN buttonStateRED = false; buttonStateYL = false; digitalWrite(LED_PIN_GR, HIGH); digitalWrite(LED_PIN_RED, LOW); digitalWrite(LED_PIN_YL, LOW); delay(200); } else { buttonStateGR = false; // setze den status auf AUS digitalWrite(LED_PIN_GR, LOW); delay(200); } } if(digitalRead(BUTTON_PIN4) == LOW) { if(buttonStateRED == false) { buttonStateRED = true; //setze den Status aus EIN buttonStateGR = false; buttonStateYL = false; digitalWrite(LED_PIN_RED, HIGH); digitalWrite(LED_PIN_GR, LOW); digitalWrite(LED_PIN_YL, LOW); delay(200); } else { buttonStateRED = false; // setze den status auf AUS digitalWrite(LED_PIN_RED, LOW); delay(200); } } }