Jede 12 sekunden eine LED zum leuchten bringen

hallo zusammen :slight_smile: :), ich weiss nicht wie ich eine rote LED leuchte jedes mal nach 12 sekunden zum leuchten bringen kann .. parallel dazu jede 3 sekunden eine blaue LED leuchten zu lassen. hilfe :frowning:

vicky2030:
hallo zusammen :slight_smile: :), ich weiss nicht wie ich eine rote LED leuchte jedes mal nach 12 sekunden zum leuchten bringen kann .. parallel dazu jede 3 sekunden eine blaue LED leuchten zu lassen. hilfe :frowning:

Dazu verwendest du die Funktion "millis()", so wie es im Beispiel "BlinkWithoutDelay" beschrieben ist.
Das Beispiel findest du unter den Beispielen in der IDE.

Schau Dir mal das Beispiel Wechselblinker.ino der Bibliothek MobaTools an, das sollte recht genau tun, wonach Du fragst.

vicky2030:
weiss nicht wie ich eine rote LED leuchte jedes mal nach 12 sekunden zum leuchten bringen kann ..
parallel dazu jede 3 sekunden eine blaue LED

Ja wie lange denn?

Hallo
Wie weit bist Du bereits bei der Erstellung des Sketches gekommen ?
Zeig mal :slight_smile:

Hallo,
ich vermute mal es geht um ein Schulprojekt.

Du hast ja jetzt schon einige Tipps bekommen. Die Variante das mit millis zu machen ist richtig. Wenn Du es Dir einfach machen willst kannst Du eine Lib verwenden die Timer zur VerfĂŒgung stellt.

Wenn Du was lerne willst habe ich einen anderen Vorschlag.
Es gibt auch einen anderen "falschen" Weg der dennoch geht. Bekanntlich lernt man bei Fehrern ja am Meisten, also auf. Du machst ein delay(2500) danach schaltest Du die blaue LED ein . Danach ein delay(500) dann schaltest Du sie wieder aus. Dann hast Du also eine blaue LED die 2,5s aus ist und fĂŒr eine halbe Sekunde an ist, sie geht alle 3 Sekunden fĂŒ eine halbe Sekunde an. Jetzt baust Du eine ZĂ€hler dazu der jedesmal wenn die LED an geht um eins erhöht wird. 0,1,2,3 bei 4 wird er wieder auf 0 gesetzt und es geht von vorne los. Immer wenn er auf 0 ist geht dann auch die rote LED mit an. Blaue und Rote werden zusammen ausgeschaltet. Damit geht die blaue alle 3s fĂŒr eine halbe Sekunde an und die Rote alle 12s fĂŒr eine halbe Sekunde. Aufgabe erfĂŒllt.

mach Dir einen Abaufplan dazu dann kannst Du das zeileweise in Code umsetzen.

Was lernst Du dabei? Was mit delay geht, wie man einen ZĂ€hler aufbaut , wozu man if..else verwenden kann.
Zum Schluss gibts dann noch den grĂ¶ĂŸten Lernefekt. Du versuchst Deinen Sketch so zu Ă€ndern das die rote LED erst nach 2s wieder aus geht. Wenn Du dann verstanden hast warum der Ansatz nicht optimal war denkst Du ĂŒber millis nach und suchst nach dem NachtwĂ€chter.

Heinz

my_xy_projekt:
Ja wie lange denn?

Spielt das eine Rolle? Wenn ja, welche?

Gruß

Gregor

Hallo
Oje, mit der delay()-Funktion lĂ€ĂŸt sich die Aufgabenstellung einfach, aber nicht schön, umsetzen, dass auch nur weil die Blinkfrequenzen vielfache voneinander sind. SpĂ€testens wenn eine grĂŒne LED, egal mit welcher Blinkfrequenz, dazu kommt fliegt einem der delay-Sketch um die Ohren. Und die grĂŒne LED wird 100% vom Lehrer gefordert werden :slight_smile:

paulpaulson:
SpĂ€testens wenn eine grĂŒne LED, egal mit welcher Blinkfrequenz, dazu kommt fliegt einem der delay-Sketch um die Ohren.

Nö, der Ansatz von Heinz ist absolut richtig, denn man findet immer eine kleinste gemeinsame Einheit der Zeiten. In der ursprĂŒnglichen Fragestellung sind das Sekunden, bei Heinz dann 0,5 Sekunden. FĂŒr die grĂŒme LED benötigt man dann möglicherweise 100 Millisekunden oder nur 50 oder auch nur eine Millisekunde, dann steht da delay(1). Genau da bin ich mal gelandet und es war dann nur noch ein kleiner Schritt fĂŒr mich1) zu dem eingebauten ZĂ€hler von Millisekunden -> millis().

paulpaulson:
Und die grĂŒne LED wird 100% vom Lehrer gefordert werden :slight_smile:

Hoffen wir auf die SchlÀue der Bildungskraft.


Anm.:

  1. Anders als andere Schritte fĂŒr die Menschheit allerdings gĂ€nzlich unbedeutend ::slight_smile:

gregorss:
Spielt das eine Rolle? Wenn ja, welche?

FĂŒr einen kleinen ToggleSketch ja.
Bei Ein-Zeit == AusZeit ist das mit einer Variablen zu lösen.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.