Positive Flanke erkennen. Brauche Hilfe!

Hallo zusammen :slight_smile: ,

Ich möchte einen Motor über 2 Endschalter ausschalten. Dazu möchte ich die Positive Flanke der Endschalter auswerten. (Die Endschalter sind Schließer und auf den Pins 2 und 4 angeschlossen.)
Der Motor wird über ein Motorshield gesteuert.

Kann mir jemand helfen einen konkreten Sketch für eine Positive Flankenerkennung zu schreiben? Bin neu und kenne mich da nicht genau aus.

Arduino Flankenauswertung - Google Search liefert 466 Ergebnisse, wovon mindestens die Hälfte Deine Frage beantworten.

Wenn Du dann konkrete Detailfragen hast, helfen wir Dir gern weiter.

Gruß Tommy

Zum Abschauen: Wie man (viele) Taster entprellt ... mit OOP mit den Methoden steigend() und fallend().

Auch die Bibliothek bounce2 hat sowas.

Hallo,

wiso einen Motor über 2 Endschalter anhalten ? dazu reicht doch einer. Wenn abgeschaltet ist kommt der Motor doch nicht mehr an den zweizen Endschalter was soll der ?

Ich denke aber Du hast zwei Richtungen, links- rechts, und willst jede Richtung mit einem Endschalter abschalten. Dazu kannst Du aber keine Flanke verwenden.

Beispiel so geht das aber nicht.
Du fährst von rechts nach links. Irgendwann wird der linke Endschalter angefahren und stoppt den Motor mit der positiven Flanke. Jerzt ist also der Endschalter belegt , damit kommt keine erneute Flanke mehr , aber das Fahren nach rechts könnte somit, z.B mit Taster, nochmals gestartet werden. Und damit fährt das Ding gegen mech. Block.

Also ohne Flanke die brauchst Du nicht, wenn links der Schalter belegt ist kann nur noch nach rechts gefahren werde.

Heinz.

Hallo @Tommy56, @agmue, @Rentner

Erstmals danke, dass ihr euch die Zeit genommen habt zu helfen.

@Rentner
Mein Problem ist es momentan noch, dass z.B. der Linke Endschalter dauerhaft betätigt bleibt und
dadurch alle weiteren Befehle blockiert. Aus diesem Grund hatte ich gedacht, dass der Motor nur abgeschaltet werden kann bei einem Flankenwechsel und danach der Befehl geresetet wird.

Oder gibt es eine einfachere Möglichkeit dies zu tun? z.B ein stopp, break oder pause Befehl?

//dieser Zustand ist dauerhaft was Probleme bereitet

if(buttonstate1 == HIGH){
Motor->run(RELEASE);

}

Grüsse Makani

Hallo,

leider hab ich Dein Problem nicht so richtig verstanden, was soll buttonstate1 sein. Ich habe hier allerdings vor einiger Zeit schon mal was zu dem Thema geschrieben und ein Beispiel eingestellt.

Motor links rechts

dann schau dir das mal an , geht alerdings von Digialausgängen für den Motor aus, aber das sollte eigendlich egal sein.

Ansonsten stell ml Deinen Code hier rein damit wir mal drüber sehen können.

Heinz

Hallo ,

hab mir den alten Post nochmal angesehen da war damals die Frage nach dem Sinn für die delay aufgetaucht.

Falls das mit Relais oder Wendeschützen gemacht wird stellt das sicher das diese abgefallen sind, und der Motor steht wenn wärend des Fahrens umgeschaltete wird.

Ich komme aus dem Maschinenbau und da kommt es irgendwie nicht gut an wenn der Motor an 400V Drehstrom hängt und ein 15KW Motor drann hängt.:-), selbst wenn die Schütze mit Öffnern gegeneinander verriegelt sind.

Heinz