9. November 2011
Aufgaben 1. Lasst eine LED im Sekundentakt blinken Material: LED// Deklarieren von Pins #define LED_PIN 13 // Deklarieren von variablen //void setup() Wird einmal zu Beginn ausgeführt void setup() { // Deklarieren wie die Pins benutzt werden pinMode(LED_PIN, OUTPUT); } //void loop() Wird in einer Schleife ausgeführt void loop() { digitalWrite(LED_PIN, HIGH); // Output auf EIN schalten delay(1000); // Angabe in Millisekunden ( 1000 millis = 1 Sekunden) digitalWrite(LED_PIN, LOW); // Output auf AUS schalten delay(1000); }2. Über einen Taster wird eine LED geschaltet Material: LED, Vorwiderstand, 1 Taster
#define LED_PIN 13 #define BUTTON_PIN 6 void setup() { pinMode(LED_PIN, OUTPUT); pinMode(BUTTON_PIN, INPUT); digitalWrite(BUTTON_PIN, HIGH); } void loop() { if(digitalRead(BUTTON_PIN) == LOW) { digitalWrite(LED_PIN, HIGH); }else{ digitalWrite(LED_PIN, LOW); } }3. Ein Druck auf einen Taster schaltet eine LED ein, bei erneutem Druck wird sie wieder ausgeschaltet. Material: LED, Vorwiderstand, 1 Taster
#define LED_PIN 13 #define BUTTON_PIN 6 // boolean buttonState; // void setup() { pinMode(LED_PIN, OUTPUT); pinMode(BUTTON_PIN, INPUT); digitalWrite(BUTTON_PIN, HIGH); buttonState = false; } void loop() { if(digitalRead(BUTTON_PIN) == LOW) { if(buttonState == false) { digitalWrite(LED_PIN, HIGH); buttonState = true; delay(500); }else{ digitalWrite(LED_PIN, LOW); buttonState = false; delay(500); } } }4. 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 Ampel Eine Aufgabe bestand darin eine Ampel zu erstellen, welche mit 3 LEDs und 3 Tastern via Arduino-Board gesteuert werden. Es soll immer nur eine LED leuchten je nach gedrücktem Taster. Jede LED ist mit einem Digital-Output vom Arduino verbunden, die drei Taster jeweils mit einem Digital-Input. Die LEDs und die Taster benutzen jeweils gemeinsam einen Ground. Der PIN Nr. 13 braucht für die LED keinen Vorwiderstand, dieser ist bereits im Arduino verbaut. Die anderen LEDs, bei mir an PIN Nr. 12 und 11 brauchen aber einen separaten Vorwiderstand. Das Arduino wird via USB mit 5V versorgt, die Widerstände sind für die rote und gelbe LED 150 Ohm. Die grüne bräuchte einen Widerstand mit 65 Ohm ist bei mir aber an den PIN Nr. 13 angeschlossen. Version 1
#define LED_PIN 13 #define LED_PIN2 12 #define LED_PIN3 11 #define BUTTON_PIN 6 #define BUTTON_PIN2 5 #define BUTTON_PIN3 4 // boolean buttonState; boolean buttonState2; boolean buttonState3; // void setup() { pinMode(LED_PIN, OUTPUT); pinMode(LED_PIN2, OUTPUT); pinMode(LED_PIN3, OUTPUT); pinMode(BUTTON_PIN, INPUT); digitalWrite(BUTTON_PIN, HIGH); pinMode(BUTTON_PIN2, INPUT); digitalWrite(BUTTON_PIN2, HIGH); pinMode(BUTTON_PIN3, INPUT); digitalWrite(BUTTON_PIN3, HIGH); buttonState = buttonState2 = buttonState3 = false; } void loop() { if(digitalRead(BUTTON_PIN) == LOW) { buttonState2 = buttonState3 = false; digitalWrite(LED_PIN2, LOW); digitalWrite(LED_PIN3, LOW); if(buttonState == false) { digitalWrite(LED_PIN, HIGH); buttonState = true; delay(500); }else{ digitalWrite(LED_PIN, LOW); buttonState = false; delay(500); } }else if(digitalRead(BUTTON_PIN2) == LOW) { buttonState = buttonState3 = false; digitalWrite(LED_PIN, LOW); digitalWrite(LED_PIN3, LOW); if(buttonState2 == false) { digitalWrite(LED_PIN2, HIGH); buttonState2 = true; delay(500); }else{ digitalWrite(LED_PIN2, LOW); buttonState2 = false; delay(500); } }else if(digitalRead(BUTTON_PIN3) == LOW) { buttonState = buttonState2 = false; digitalWrite(LED_PIN2, LOW); digitalWrite(LED_PIN, LOW); if(buttonState3 == false) { digitalWrite(LED_PIN3, HIGH); buttonState3 = true; delay(500); }else{ digitalWrite(LED_PIN3, LOW); buttonState3 = false; delay(500); } } }Version 2
#define LED_G 13 #define LED_R 12 #define LED_Y 11 #define BUTTON_G 6 #define BUTTON_R 5 #define BUTTON_Y 4 // boolean green; boolean red; boolean yellow; // void setup() { pinMode(LED_G, OUTPUT); pinMode(LED_R, OUTPUT); pinMode(LED_Y, OUTPUT); pinMode(BUTTON_G, INPUT); digitalWrite(BUTTON_G, HIGH); pinMode(BUTTON_R, INPUT); digitalWrite(BUTTON_R, HIGH); pinMode(BUTTON_Y, INPUT); digitalWrite(BUTTON_Y, HIGH); green = red = yellow = false; } void loop() { if(digitalRead(BUTTON_G) == LOW) { green = true; yellow = false; red = false; }else if(digitalRead(BUTTON_Y) == LOW) { green = false; yellow = true; red = false; }else if(digitalRead(BUTTON_R) == LOW) { green = false; yellow = false; red = true; } digitalWrite(LED_R, red); digitalWrite(LED_G, green); digitalWrite(LED_Y, yellow); }