Arduino mit Schrittmotor und Lichtschranken
|
28.01.2021, 19:54
Beitrag #33
|
|||
|
|||
RE: Arduino mit Schrittmotor und Lichtschranken
Hallo zusammen,
vielen Dank für die Anregungen. Vorerst würde ich gerne die möglichen Zustände in einen funktionierenden Code umsetzen. Ob Lichtschranke oder Nährungsschalter kann ja später noch entschieden werden... Ich habe jetzt versucht, die 5 Zustände in einer switch-case-Funktion abzubilden: Code: #define MAX8BUTTONS Folgende Fragen dazu: Der Kompiler meckert bei Code: bool myButtons.pressed( uint8_t startTaster ); Code: MoToButtons myButtons( const uint8_t pinNumbers[], const uint8_t pinCnt, Und die zweite Frage: Ich möchte ja, dass der Aufzug hochfährt, dann in Ruhe verbleibt, dann mit Tastendruck nach unten fährt und dort in Ruhe verbleibt. Immer solange, bis der Taster gedrückt wird. Wäre das nicht in 4 Zuständen besser vorstellbar? Oder braucht es die "Wartezeit"? Der Befehl stepper.stop() ist ja eher für Notstop gedacht. Aber in Kombination mit switch könnte das doch gehen, oder? Ich verlasse die cases sowieso mit break. Habe das aber noch nicht abgeändert, weil ich zuerst euch mal fragen wollte... LG und Danke, Markus |
|||
28.01.2021, 21:42
(Dieser Beitrag wurde zuletzt bearbeitet: 28.01.2021 21:44 von MicroBahner.)
Beitrag #34
|
|||
|
|||
RE: Arduino mit Schrittmotor und Lichtschranken
Hallo Markus,
ich denke, Du hast noch ein Verständnisproblem mit dem 'endlchen Automaten' und der switch-Anweisung. Du musst dich von deiner bisherigen Denkweise der blockierenden Programmierung lösen. Die Zustände werden nicht einfach von aussen druchgeschaltet. Wenn sich dein Aufzug in einem bestimmten Zustand befindet, läuft der loop ständig durch den entsprechenden case-Block des switch. Da wird nicht angehalten ( kein while ). Es wird nur auf Ereignisse geprüft, die einen Zustandswechsel bewirken. Als Pseudocode: Code: switch ( aufzugZustand ) { //Zustand 1: Aufzug in Ruhes Zu den MoToButtos schaust Du dir am Besten mal das Beispiel 'PrintStates2' der MobaTools an. Da ist gezeigt, wie man die MoToButtons einrichtet. Gruß, Franz-Peter |
|||
|
|
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste