Go Down

Topic: Brauche Starthilfe... (Read 173 times) previous topic - next topic

Steinair

Hallo zusammen.

Ich bin ganz neu beim Arduino dabei und benötige Hilfe beim Sketch...

Der Arduino muss folgendes können:

Wenn am INPUT 1 (WZIn1) HIGH anliegt dass muss OUTPUT 1 (BLZ) auf HIGH geschaltet werden, 2 Sekunden warten, dann OUTPUT 2 (MOT) auf HIGH.
Das muss solange ausgeführt werden bis an INPUT 2 (WZ1) auf HIGH anliegt, dann muss OUTPUT 1 (MOT) auf LOW, 1 Sekunde warten und OUTPUT 2 (BLZ) auf LOW.

Den ersten Teil hab ich so geschrieben:

{if (digitalRead(WZIn1)==HIGH) {
  digitalWrite(BLZ,HIGH)
  delay(2000)
  digitalWrite(MOT,HIGH)
}

Den 2. Teil muss ich ja, wie ich das verstanden habe, mit einer do-while Schleife machen, da habe ich aber keine Ahnung wie ich das in den Code integriere...

Könnte mir da jemand weiter helfen?

Vielen Dank schon mal
Schönen Gruss

Stefan

uwefed

vergiß delay.
Schau Dir millis() (Nachtwächtererklährung) und endlichen Automaten an.
Grüße Uwe

HotSystems

Und du brauchst keine "do-while"-Schleife.
Die loop() ist schon eine Schleife, du brauchst keine zweite.
Einfach den Zustand des Pins innerhalb der Loop abfragen.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

postmaster-ino

Hi

Deine Umschreibung empfinde ich als arg kompliziert und ist nicht 'logisch rund'.
Wer ist BLZ ect.pp.?
Klar, Das wird den Sketch nicht verändern, aber wenn ich verstehe, was ich Da mache, hilft Das zumindest mir.
In Deinem Kopf sind diese Bezeichner bildgebende Begriffe, in Meinem nicht wirklich - ich kenne BMZ/BMA/EMZ/EMA, um Gebräuchliche zu nennen.

Wenn Du Dir den Nachtwächter verinnerlichst, sollte sich Dein Ablauf stark vereinfachen lassen - und ohne delay().
Blink_without_delay - das Beispiel in der IDE - geht in die gleiche Richtung, bitte anschauen.

MfG

Go Up