LED ausschalten

Hallo,

Ich habe 2 Taster und eine LED. Mit dem Taster1 möchte ich den Befehl geben, dass die LED 10s leuchtet. Mit dem Taster2 möchte ich die LED vorzeitig ausschalten. Also wenn sie zb. 5s leuchtet, dann soll sie mit Taster2 sofort ausgehen. Falls der Taster2 nach 10s noch nicht betätigt worden ist, soll die LED nicht mehr leuchten.

Wie mach ich das nun? Mit if, while? Mit milis?

Vielen Dank schonmal :slight_smile:

Mit if und millis. while brauchst Du nicht, Di hast doch loop.

Gruß Tommy

Mit millis() machst Du die Zeit.
Mit einer Ablaufsteuerung machst Du das Ausschalten.

Antworten findest Du bei Combie Delay nur für bestimmten Teil des Codes - #6 by combie - Deutsch - Arduino Forum

Grüße Uwe

Mit if und millis.

Was hast du denn bisher schon versucht (Schaltung, Programm)?

Die oben beschriebene Aufgabe würde mir sehr helfen bei meinen großen Hauptprojekt. Habe leider keine Erfahrung mit milis und state machine etc.

Das kannst Du lernen.

Schaue Dir dazu BlinkWithoutDelay an und verstehe es.
Dabei kann Dir die Nachtwächtererklärung helfen.

Gruß Tommy

Ok danke.
Und wie mach ich das frühzeitige unterbrechen?
Mfg

Den Taster2 immer in der Loop abfragen.
Wird der Zustand geändert, dann deine Routine unterbrechen.

Das klingt ja alles sehr komplex. Ich lass das dann mit den Taster2 und geb mich mit dem Rest zufrieden :smiley:

Hey Siebot,
nur nicht zu schnell aufgeben!
Du kannst ja auch erstmal nur die Sache mit dem Taster1 aufbauen und das Programm dazu schreiben, so dass die LED erstmal einfach für die 10 Sekunden nach drücken von Taster1 leuchtet.
Wenn das dann sauber funktioniert, gehst Du einen Schritt weiter, schliesst den Taster2 an, und versuchts den Taster2 so ins Programm einzubinden, dass Du damit die LED vorzeitig abschalten kannst.

Manchmal ist es so, dass wenn mehrere Aufgaben zusammen für den Anfang zuviel ist, man in kleineren Schritten vorgehen muss, damit man es hinkriegt.

Das geht mir übrigens auch so, wenn ich ein neues Projekt beginne, indem ich (zum Teil) Neuland betrete.
Dann schreibe ich zuerst die Programmteile, von denen ich schon weiss, wie ich sie schreiben muss, und teste diese, damit sie reibungslos laufen. Wenn ich dann neu zu lernendes hinzufügen will, weiss ich, wenn es nicht klappt, dass nur noch das Neu hinzugefügte fehlerhaft sein kann, weil ja der Rest vorher funktioniert hat.

Es braucht nur etwas Geduld und den Willen zu lernen.
Ich wünsche Dir viel Erfolg, Du kannst es schaffen!

Liebe Grüsse
Stefan