Für ein kleines Projekt habe ich mich zur Steuerung induktiver Last 230VAC Motor (mit Snubber)
auf 433,92 MHz mit RC-Switch 2.6.4 Library festgelegt. Beim Muster habe ich leider ein, nennen
wir es mal "prellen", festgestellt. Ich suche eine "elegante" Softwarelösung, die entweder einen
Tastendruck pro loop() -schleife als Einzel-Tastendruck erkennt, oder Umwandlung eines
geprellten Einzel-Tastendruck als Schalter interpretiert. Die Schaltung soll eine Up-/Down-
Umschaltung einer E-Seilwinde darstellen.
Hallo zampano27
Herzlich Willkommen im besten Arduinoforum der Welt.
Hier habe ich einen kleinen "ButtonManager" bereitgestellt.
Einfach mal ausprobieren, der kann dir in deinem Projekt weiterhelfen.
Ich verstehe nicht so recht, was Dein Problem ist, aber hast Du schon mal das StateChangeDetection Beispiel ausprobiert?
Du suchst den endlichen Automaten.
Was genau meinst du mit Muster ?
Kannst du das bitte genauer beschreiben oder deinen verwendeten Sketch hier zeigen.
Was dir helfen könnte ist die lib ezButton.
Einfach Taster Objekt erstellen, zyklisch seine loop- Methode aufrufen und den entprellten Zustand abfragen ![]()
Kann es sein, daß Du noch nie davon gehört hast, daß mechanische Schalter prellen, und wie man das im Code handhabt? Dann habe ich einen Tip für Dich: auf Englisch heißt entprellen "debounce". Damit findest Du sicher genügend Code, Beispiele und Topics zu Deinem Problem.
Und interessant wäre auch zu Wissen, wie sich das Prellen in deinem Projekt äußert.
Wenn man nur etwas per Taster einschalten möchte, stört ein Prellen normalerweise nicht.
Edit:
Wenn ich mir deinen Eingangspost nochmal "genau" durchlese, muss ich bemerken, dass dein Problem wohl nichts mit prellen von Kontakten zu tun hat, sondern wohl eher mit falsch verwendeten Funktionen der Library RCSwitch.
Daher nochmals die Bitte, poste deinen verwendeten Sketch, dann sehen wir weiter.
Das ist ein komplizierter Ansatz. Schreib deinen Sketch lieber so, dass eine loop()-Schleife überhaupt keine Zeit braucht und dafür unendlich oft drankommt. (Dennoch damit rechnen, dass nicht jede Millisekunde vorkommt)
Bei einer RC-Fernsteuerung sollten Tasterwechsel eigentlich höchstens alle 20 ms übertragen werden. Da würde ein echtes Prellen schon auf der Senderseite abgefangen.
Um andere Störsignale oder was auch immer abzufangen, kannst du natürlich zusätzlich programmieren, dass der Umschalt-Taster (?) mindestens z.B. 100 ms lang dauernd gedrückt sein muss, um den Umschaltvorgang durchzuführen. ( Und eine mindestens ebensolange Pause vor dem nächsten Umschaltvorgang )
Ob du das von Hand oder durch eine Taster-Lib realisierst, ist Geschmackssache.
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.