@Ferdinand
Dein Problem:
"zum program ablauf war mein gedanke wie schafe ich es in der haupt schleife zu prüfen ob das poti richtig steht und das nur einmal beim starten des programs das heist wen das poti auf 0% steht ist alles ok und er kert in die haupt funktionen das program braucht nicht mehr zu prüfen ob das poti unter 3% steht"
Dazu muss die while-Schleife bei setup() rein, nicht bei loop().
Dieser Code muss bei setup() rein, am besten ganz am Ende:
Code:
poti_prozent = 4; sicherheit = false;
while( poti_prozent > 0 )
{
poti_Value = analogRead(POTI);
poti_prozent = map(poti_Value, 0,1023, 0,100);
}
sicherheit = true;
Was macht der Code:
poti_prozent wird auf 4 gesetzt, damit - egal in welchem Fall - die while-Schleife mindestens ein Mal ausgeführt wird, um das Poti abzufragen. Entweder prüfst Du in der while-Schleife auf >3 oder >0. Bei >0 bleibt der so lange in while, bis poti_prozent = 0 ist. Bei while (poti_prozent > 3) bleibt der solange in der while-Schleife, bis poti_prozent kleiner oder gleich 3 ist. Dazu muss in der while-Schleife nur das Poti abgefragt werden. Sobald das Poti den von Dir gewünschten Wert erreicht, wird die while-Schleife beendet (und Du kannst einen Status sicherheit = true; setzen. Im Hauptprogramm loop() musst Du dann nur noch sicherheit prüfen, ob das true oder false ist: if (sicherheit==true)... oder if(sicherheit==false)... ).
Man kann das mit der Variable sicherheit auch weglassen. Weil der solange in der while-Schleife drin bleibt, bis das Poti einmal richtig steht. Erst dann fängt er überhaupt mit loop() an. Das heißt: in loop() ist sicherheit dann immer true. Da es dort dann sowieso immer true wäre, kann man es dann weg lassen.
Das war es, viel Erfolg!
Lesezeichen