8. November 2011
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.#define LED_PIN 13 #define BUTTON_PIN 6 int buttonState = 0; int lastButtonState = 0; long lastButtonTime = 0; long buttonDelay = 50; void setup() { pinMode(LED_PIN, OUTPUT); pinMode(BUTTON_PIN, INPUT); digitalWrite(BUTTON_PIN, HIGH); } void loop() { int reading = digitalRead(BUTTON_PIN); if(reading != lastButtonState) { lastButtonTime = millis(); } if((millis()-lastButtonTime)> buttonDelay) { buttonState = reading; } if(buttonState == LOW) { digitalWrite(LED_PIN, HIGH); } else { digitalWrite(LED_PIN, LOW); } lastButtonState = reading; }
#define LED_PIN 13 // Pin der LED #define BUTTON_PIN 6 // Pin des Buttons boolean buttonState = false; void setup() { pinMode(LED_PIN, OUTPUT); // Define des LED Pis als Output/Ausgang pinMode(BUTTON_PIN, INPUT); // Definitioin des Button Pins als Eingang digitalWrite(BUTTON_PIN, HIGH); //Aktivieren des Pullup Widerstandes an Pin 6(BUTTON_PIN) } void loop() { if(digitalRead(BUTTON_PIN) == LOW) // Wenn der Button gedrückt wird dann... { if(buttonState == false) // Wenn der Statu AUS ist, dann... { buttonState = true; // Setzte den Status auf EIN delay(200); } else //Wenn der Status ein ist, dann { buttonState = false; // Setze den Status auf AUS delay(200); } } if(buttonState == true) // Wenn der Status Ein ist, dan... { digitalWrite(LED_PIN, HIGH); } else // Wenn der Status AUS ist, dann... { digitalWrite(LED_PIN, LOW); } }
// Deklarieren fon Pins #define LED_PIN 13 #define BUTTON_PIN 6 // Deklarieren von Variabeln boolean buttonState = False; void setup() // Wird einmal zu Beginn ausgeführt { // Deklarieren wie die Pins benzutzt werden pinMode(LED_PIN, OUTPUT); // LED_PIN als Output verwenden pinMode(BUTTON_PIN, INPUT); // BUTTON_PIN als Input verwenden digitalWrite(BUTTON_PIN, HIGH); // PullUp Widerstand für BUTTON_PINI aktivieren void loop() // Wird in einer Schleife gespielt { if(digitalRead(BUTTON_PIN) == LOW) { digitalWrite(LED_PIN, HIGH); // Soutput auf EIN schalten } else { digitalWrite(LED_PIN, LOW); // Output auf AUS schalten } }