Hi,
ich habe mir einen ESP32 genommen, 3 Taster angeschlossen und 3 WS2812b
LEDs.
Wenn ich einen Taster drücke, geht die entsprechende LED an.
Nun möchte ich aber, das die Zeit des Drückens gemessen wird, und beim
Loslassen des Tasters die LED von orange auf rot umspringt.
Also:
Taster 1 wird für 5.76s gedrückt, LED 1 wird orange
Taster 1 wird losgelassen, LED 1 springt von orange auf rot, und
leuchtet 5.76s, Danach geht sie aus.
Weiterhin:
Wenn einer der Taster gedrückt wurde, oder eine der LED orange/rot
leuchtet, Sollen alle Taster abgeschaltet werden, also ein drücken der
Taster soll keine Auswirkungen haben. Erst, wenn alle LEDs aus sind,
können die Taster wieder betätigt werden.
Mein Problem ist, das ich zu wenig Ahnung in der Programmierung habe,
und ich bis morgen früh, 10.10. 4Uhr fertig sein soll.
Das ganze ist ein Geschenk für einen Arbeitskollegen, der in Rente geht,
und als Erinnerung eine Sprechstelle bekommt, die zumindest ein paar
Funktionen bekommen soll...
wer kann mir weiterhelfen?
Björn C. schrieb:> Mein Problem ist, das ich zu wenig Ahnung in der Programmierung habe,> und ich bis morgen früh, 10.10. 4Uhr fertig sein soll.
Dann hättest du evtl. früher anfangen sollen.
Schau dir mal millis() an und dazu BlinkWithoutDelay als Beispiel.
Wenn ich jedoch erst gestern gesagt bekommen habe, das ich das tun soll,
kann ich leider nicht früher anfangen...
Und wenn ich nicht alles hinbekomme, müssen die mit dem Leben, was sie
bekommen...
Björn schrieb:> Wenn ich jedoch erst gestern gesagt bekommen habe, das ich das tun soll,> kann ich leider nicht früher anfangen..
Ok, da magst du Recht haben.
Björn schrieb:> Wenn ich jedoch erst gestern gesagt bekommen habe, das ich das tun soll,> kann ich leider nicht früher anfangen...> Und wenn ich nicht alles hinbekomme, müssen die mit dem Leben, was sie> bekommen...
Ach was, wirklich? Wer hätte das gedacht.
Willst du uns damit sagen dass wir Schuld an der Misere sind?
Ich habe eher das Gefühl, dass es sich hier um eine verbummelte
Hausaufgabe handelt.
Stefan F. schrieb:> Ich habe eher das Gefühl, dass es sich hier um eine verbummelte> Hausaufgabe handelt.
Hausaufgabe nur indirekt, aber verbummelt kann man kaum bestreiten:
Beitrag "Sprechstelle für Arbeitskollegen"Brain 2.0 schrieb:> Schau dir mal millis() an und dazu BlinkWithoutDelay als Beispiel.
Im Gegenteil, hier ist delay das Mittel der Wahl, weil eine Blockierung
ausdrücklich gewünscht wird:
Björn C. schrieb:> Sollen alle Taster abgeschaltet werden, also ein drücken der> Taster soll keine Auswirkungen haben.
Das heißt, wenn gedrückt, muß er sich die millis() vom µC merken und
solange in einer Schleife bleiben, bis die Taste gelöst wird. Die
gemerkten millis() werden von den aktuellen millis() abgezogen und ein
delay mit diesem Wert gefüttert.
Manfred schrieb:> Das heißt, wenn gedrückt, muß er sich die millis() vom µC merken und> solange in einer Schleife bleiben, bis die Taste gelöst wird.
Kann man machen, oder die pulseIn() Funktion benutzen.
Manfred schrieb:> Stefan F. schrieb:>>> Ich habe eher das Gefühl, dass es sich hier um eine verbummelte>> Hausaufgabe handelt.>> Hausaufgabe nur indirekt, aber verbummelt kann man kaum bestreiten:> Beitrag "Sprechstelle für Arbeitskollegen"
Stimmt nicht ganz mit verbummelt...
Die zuerst gewünschte Schaltung mit Taster an, LED an war da schon
vorhanden...
Nur die Erweiterung mit LED rot wenn Taster aus, mit Schaltzeit etcpp
kam erst gestern auf...
> Brain 2.0 schrieb:>>> Schau dir mal millis() an und dazu BlinkWithoutDelay als Beispiel.>> Im Gegenteil, hier ist delay das Mittel der Wahl, weil eine Blockierung> ausdrücklich gewünscht wird:
Genau - hab es jetzt auch hinbekommen, vielleicht nicht wie ein
Meisterprogrammierer, aber es geht...
Stefan F. schrieb:>> Das heißt, wenn gedrückt, muß er sich die millis() vom µC merken und>> solange in einer Schleife bleiben, bis die Taste gelöst wird.> Kann man machen, oder die pulseIn() Funktion benutzen.
Upps, der ist ja interessant. War zwar nicht meine Frage, aber
trotzdem danke!