Hallo zusammen, ich habe ein Problem. Ich will einen Motor mittels Sensor (Arduino) ansteuern. Wenn der Sensor einen bestimmten Wert übersteigt soll, soll der Motor anspringen. Dieser soll bis einem bestimmten Wert laufen bis ein höhere Sensorwert erreicht wird. Dann soll der Motor ausgehen. Das läuft auch alles. Der Motor soll aber nicht mehr angehen. Erst wenn der Sensorwert einmal auf 0 war. Das Problem ist wenn der Sensorwert wieder unter den höheren Sensorwert sinkt, fängt der Motor wieder an zu laufen und das soll er nicht. Die Werte frage ich mit einer while Schleife ab. Gibt es einen Befehl, indem ich dem Programm sagen kann, das der Motor nicht mehr anspringen soll, bis der Wert wieder 0 ist? Danke im voraus.
Du benötigst einen Automaten: http://de.wikipedia.org/wiki/Endlicher_Automat
Hendrik Heinemann schrieb: > Gibt es einen Befehl, indem ich dem Programm sagen kann, das der Motor > nicht mehr anspringen soll, bis der Wert wieder 0 ist? Du setzt einfach eine Flagge, wenn der Motor einmal gelaufen ist. Solange die Flagge gesetzt ist, sperrst du den Motor und löschst die Flagge erst dann, wenn der Sensor wieder mal 0 liefert.
Gast
#3693123
Hendrik Heinemann schrieb: > Der Motor soll aber nicht mehr angehen. Erst wenn der Sensorwert einmal > auf 0 war. In dem Fall ein Flag setzen und if-Schleife (http://www.if-schleife.de/) verwenden.
Gast
#3693127
Hi danke für die Antworten, Wie funktioniert das denn genau mit dem flag. Ist das ein spezieller Befehl? Oder wie programmiert so eine Flag. Danke
Das ist einfach ne Variable. Mindestgrösse 1Bit. Üblicherweise verwendet man ein char. 0: gelöscht, ansonsten gesetzt.
Gast
#3693137
hheinema schrieb: > Hi danke für die Antworten, > Wie funktioniert das denn genau mit dem flag. Ist das ein spezieller > Befehl? Oder wie programmiert so eine Flag. > > Danke Beispielsweise einfach eine Variable auf 1 setzen, wenn er angelaufen ist. Dann diese Variable testen, und wenn sie immer noch 1 ist, nicht anlaufen lassen. Erst bei Drehzahl 0 setzt du die Variable auf 0 zurück. Beim nächsten Test der Variablen stellst du fest, daß sie nicht mehr 1 ist und der Motor darf wieder anlaufen.
Siehe Statemachine. Da lernst du auch gleich was Grundlegendes.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.