kk logo

Im Tutorial über die Taster habe ich schon über das prellen eines Tasters geschrieben. Es gibt in Ardublock zwei Blöcke mit denen man Tasterdrücke ohne Delay zählen kann. Diese beiden Blöcke können für Taster oder für alles andere das ein HIGH oder LOW Signal ausgeben kann verwendet werden. Das können Joysticks, Schalter, Lichtschranken usw. sein.

Mit dem Block "count change state on" werden die Tasterdrücke gezählt und mit dem Block "reset count change state of" wird dieser Zähler zurück gesetzt.

1 ardublock tutorial change count on trigger

 

Tastendrücke ohne "delay" zählen

 

Da der "count change state on" Block Tastendrücke oder besser gesagt die Änderung am PIN zählt braucht es eine Variable die die Zahlen speichert. Der "count change state on" Block kann in einer integer oder integer long Variable unter dem Variablen Namen eingefügt werden. Nun wird jeder Tastendruck an dem angegebenen Pin gezählt und in der Variablen gespeichert. 

2 count change state arduino tutorial

 

Für diese Zählung braucht es keine delay Blöcke. Natürlich können auch mehrer Taster durch diese Blöcke abgefragt werden. Es braucht nur mehrer Variablen dazu. 

3 count change state ardublock tutorial

 

Ardublock reset chang count state

Damit dieser Block auch genutzt werden kann muss der Zähler ab und zu mal auf 0 gesetzt werden können. Das geht nicht indem die Variable auf 0 gesetzt wird. Sondern nur über den eigenen reset Block. Die Variable die der Tastenblock verwendet kann auch nicht über die Variable verändert werden.

4 count change state ardublock tutorial

 

Taster ohne delay entprellen und LED schalten

Mit diesen beiden Blöcken kann man nun Taster ganz leicht entprellen bzw. die Taster verwenden ohne ein entprellen zu programmieren.
Im Beispiel unten habe ich genau das getan. Bei jedem Druck auf den Taster zählt die Variable um eine stellen hoch. Und zwar wird wirklich nur gezählt wenn der Taster los gelassen und erneut gedrückt wurde.

Damit das ganze funktioniert wird bei jedem zweiten drücken die Variable über den Block auf 0 zurück gesetzt. Bei einer 1 die LED eingeschaltet und bei einer 2 die LED ausgeschaltet. Das ganze könnte man nun mit beliebigen Zahlen weiterführen.

Wird das Beispiel hochgeladen geht die LED an, wenn der Taster gedrückt wird und die LED geht aus wenn der Taster erneut gedrückt wird. Ohne delay ohne ein weiteres abfragen von anderen Blöcken.

5 ardublock push button without delay

 

 Dieses beiden Blöcke kann man überall verwenden. Zum Beispiel für einen Rundenzähler mit einem Reedkontakt. Egal überall da wo einer der Digital PINs als Eingang verwendet wird, lässt sich dieser Zähler als Entprellten Eingang verwenden.

by grace

By grace alone somehow I standWhere even angels fear to treadInvited by redeeming loveBefore the throne of God aboveHe pulls me close with nail-scarred handsInto His everlasting arms

Ronnie

schwäbischer tüftler und bastler, kraftsportler, 41 Jahre, 1 Frau, 5 Kinder und 1003 Ideen. 

ronnie berzins at mee