Schalterzustand mit App ändern
|
01.01.2021, 15:38
Beitrag #1
|
|||
|
|||
Schalterzustand mit App ändern
Moin zusammen,
mit meinem Sketch wird mit einem Nano und einem Blutooth Shield ( HC 05) über eine App ( diese habe ich übernommen) eine H- Brücke ( L298) umgeschaltet. Mit dem delay ist es so, dass der Ausgang der H- Brücke für 800 ms die positive Eingangsspg der H- Brücke ( +12V) bekommt und danach LOW wird. Beim nächsten Umschaltvorgang für 800 ms der H- Brückenausgang die negative Eingangsspg ( -12V) bekommt. Dies funkioniert soweit ohne Probleme. Nun wollte ich das delay durch das timing mit den Moba Tools ersetzen. So wie in dem Sketch habe ich es bereits in etlichen anderen Anwendungen durchgeführt und es hat immer funktioniert. Deswegen bin ich im Moment etwas ratlos. Im 2 ten Sketch funktioniert das delay nachwievor. Code: #include <SoftwareSerial.h> Code: #include <MobaTools.h> Mit freundlichen Grüßen Norbert |
|||
03.01.2021, 10:46
Beitrag #2
|
|||
|
|||
RE: Schalterzustand mit App ändern
Habe noch eine Änderung vorgenommen ( int x herausgenommen).Es sieht nun so, dass bei der ersten Schaltänderung if (inputString.charAt(2) == '0' ) { keine Veränderung des Zustandes stattfindet und bei der zweiten
if (inputString.charAt(2) == '1') { die Veränderung navh 800 ms stattfindet. Hat jemand eine Idee für das problem? Code: #include <MobaTools.h> Mit freundlichen Grüßen Norbert |
|||
10.01.2021, 19:11
Beitrag #3
|
|||
|
|||
RE: Schalterzustand mit App ändern
Hallo Norbert,
Aufgrund des Titels habe ich hier nicht reingeschaut - mit Apps habe ich nichts am Hut ![]() Ich denke, dein Problem ist, dass du diesen Block: Code: if ( delayZeit1.expired()) { Der muss auf der obersten Ebene im loop stehen, unabhängig von deinen anderen if's. Gruß, Franz-Peter |
|||
11.01.2021, 10:33
Beitrag #4
|
|||
|
|||
RE: Schalterzustand mit App ändern
(10.01.2021 19:11)MicroBahner schrieb: Hallo Norbert, Moin Franz Peter, ich habe den Block an anderen Stellen positioniert, aber leider ohne Erfolg. M.E: wäre es auch nicht richtig, da mit digitalWrite(JA_STRAIGHT, LOW); digitalWrite(JA_BRANCH, HIGH); eine Positionsänderung erfolgt, die wiederum nach 800ms mit if ( delayZeit1.expired()) { digitalWrite(JA_STRAIGHT, HIGH); geändert werden soll. Vielleicht ist aufgrund der erforderlichen if Anweisungen nur ein delay möglich. Mit freundlichen Grüßen Norbert |
|||
11.01.2021, 12:23
Beitrag #5
|
|||
|
|||
RE: Schalterzustand mit App ändern
(11.01.2021 10:33)RCudino schrieb: M.E: wäre es auch nicht richtig, da mitEs geht immer ohne delay. delayZeit1.expired() wird nur 'true' wenn Du die Zeit vorher auch aufgezogen hast. 800ms nach deinem 'stringComplete' läuft er in den Block if ( stringComplete ) gar nicht mehr rein, da würde auch das expired() nicht mehr abgefragt. Deshalb muss das auf jeden Fall unabhängig von jeder anderen Bedingung im loop abgefragt werden. Und Du solltes den MoToTimer auch nicht mit delay mischen. Sonst kannst Du nicht regelmäßig prüfen, ob er abgelaufen ist. Gruß, Franz-Peter |
|||
11.01.2021, 15:25
(Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2021 15:26 von RCudino.)
Beitrag #6
|
|||
|
|||
RE: Schalterzustand mit App ändern
Hallo Franz Peter,
ich habe den code wie folgt umgebaut: den gesamten Bereich mit Zeit setzen und Zeit abfragen , alles nach if (inputString.charAt(2) == '0' ) { direkt hinter den loop Es funktioniert wie es soll. Vielen Dank für deinen Input. Es lassen sich so die motorischen Weichen von LGB per App schalten Code: #include <MobaTools.h> Mit freundlichen Grüßen Norbert |
|||
11.01.2021, 15:39
(Dieser Beitrag wurde zuletzt bearbeitet: 11.01.2021 15:39 von MicroBahner.)
Beitrag #7
|
|||
|
|||
RE: Schalterzustand mit App ändern
Hallo Norbert,
super, wenn's jetzt funktioniert. Aber was versprichst Du dir von diesen Abfragen: (11.01.2021 15:25)RCudino schrieb:Da die Anweisungsblöcke leer sind, sind die eigentlich sinnfrei, da passiert ja nichts. Gruß, Franz-Peter |
|||
11.01.2021, 15:52
Beitrag #8
|
|||
|
|||
RE: Schalterzustand mit App ändern
(11.01.2021 15:39)MicroBahner schrieb: Hallo Norbert, Da hast du Recht. Ich kann sie herausnehmen und der Ablauf ist der selbe. Jetzt hat sich allerdings ein Folgeproblem aufgetan. Auf der App sind 4 Schalter a,b,c,d mit j sind die Schalter als solches definiert. So wie der code jetzt läuft , läßt sich der Zustand des motorischen Antriebes mit jedem Schalter ändern. Das war natürlich vorher nicht so. Daher wohl auch die if Verschachtelung Mit freundlichen Grüßen Norbert |
|||
|
|
Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste