Hallo,
ich wollte ein paar LEDs aufbauen die nur dann blinken, wenn der Taster gedrückt ist. Wenn der Taster nicht gedrückt wird sollen sie also aus sein.
Mein Problem ist, dass die LEDs sofort nach dem Hochladen des Programmtextes blinkt. Auch wenn ich Taster entferne blinken sie.
Mein Programmtext folgt:
int LEDgruen = 5;
int LEDrot = 6;
int TasterSlot = 2;
int tasteDruck = 0;
void setup() {
pinMode(LEDrot, OUTPUT);
pinMode(TasterSlot, INPUT);
}
void loop() {
tasteDruck = digitalRead(TasterSlot);
if (tasteDruck== HIGH) {
delay(1000);
digitalWrite(LEDrot, LOW);
delay(500);
digitalWrite(LEDgruen, HIGH);
delay(500);
digitalWrite(LEDgruen, LOW);
delay(500);
digitalWrite(LEDrot, HIGH);
}
}
Für Hilfe wäre ich dankbar.
Liebe Grüße
Da du vermutlich keinen Pulldown-Widerstand am Taster angeschlossen hast, empfängt der Pin alles was er aus der Luft bekommen kann.
Störungen lassen den schon HIGH schalten und dann blinken deine Leds.
Also Pulldown-Widerstand einbauen oder den internen Pullup-Widerstand verwenden und den Taster nach GND schalten sowie abfragen.
Und setze den Sketch bitte in Code-Tags.
Verwende dazu die Schaltfläche </> oben links im Editorfenster.
Dazu den Sketch markieren und die Schaltfläche klicken, oder [ code] davor und [ / code] dahinter ohne Leerzeichen.
Damit wird dieser für alle besser lesbar, auch für mobile Geräte. Das kannst du auch noch nachträglich machen.
Hallo,
bei Deinem Sketch wird es Dir noch passieren das die rote LED anbleibt wenn der ander Schaltzustand des Tasters anliegt. Wenn Du den Taster nach GND schaltest dreht sich die logik um, der Eingang ist dann H wenn der Taster offen(nicht gedrückt ist). Es würde Sinn machen mit eime else dann alle LED auszuschalten.
Heinz
Wie hast Du die Led angschlossen? Leuchtet sie bei HIGH oder bei LOW? Wenn sie bei HIGH leuchtet, schaltest Du sie mit der letzten Anweisung im if-Block ein. Damit ist sie auch an, wenn beim nächsten Durchlauf der Taster nicht mehr gedrückt ist, und der if-Block nicht ausgeführt wird.
MicroBahner:
Wie hast Du die Led angschlossen? Leuchtet sie bei HIGH oder bei LOW? Wenn sie bei HIGH leuchtet, schaltest Du sie mit der letzten Anweisung im if-Block ein. Damit ist sie auch an, wenn beim nächsten Durchlauf der Taster nicht mehr gedrückt ist, und der if-Block nicht ausgeführt wird.
Stimmt , aber nur eine bleibt an entweder grün oder rot . Das hängt davon ab ob sie mit H oder L leuchten. Deshalb eine hübsche Else mit einbauen. 
Nächster Schritt bei Deinen Übungen könnte sein eine Zeit mal auf 5 s ändern, und dann damit unzufrieden sein das die LEDs etwas seltsam blinken. Tipp Beispiel BlinkWithoutDelay.
Heinz
Ups - glatt übersehen, dass da 2 Led's blinken sollen ..