Pages: [1]   Go Down
Author Topic: Aktion ausführen wenn Bedingung erfüllt  (Read 370 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 45
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo und guten abend zusammen.

Ich hab da mal wieder eine Frage.

Kann ich Teile eines Sketches in eine "do while" oder "if else" schleife packen?

Der hintergrund ist:
Ich möchte eine Servo Steuerung starten, wenn etwas vor einem HC-SR04 auftaucht.

Was wäre da sinnvoller? "do while" oder "if else" ?

MfG Matze
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 49
Posts: 2734
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das hängt davon ab ...

Am flexibelsten bist du, wenn loop() keine delays und keine while Schleifen hat, also sofort fertig ist und im nächsten Umlauf feststellt, dass noch nichts neues passiert ist...
Mit ( if else ) stellst du dann irgendwann Änderungen fest und in den nächsten Umläufen macht dein Servo dann "weiche dem Hindernis aus" .

Den aktuellen Zustand merkst du dir in globalen Variablen, und ( für Zeitdauern ) mekst du dir, wann etwas passiert ist.


Code:
if ( ausweichen )
{
    // Ausweich-Logik hier

   if ( (millis() - start) > ausweichdauer )
   {
       ausweichen = false; // weiter im Normalprogramm
   }
}
else
{
   // Normalprogramm hier
   if ( HindernisErkennung() )
   {
       ausweichen = true;
       start = millis();
   }
}
Logged

Pages: [1]   Go Up
Jump to: