Go Down

Topic: Buttons an Shift-Register entprellen? (Read 1 time) previous topic - next topic

File23

Hallo zusammen,

Ich habe meinen Arduino Uno mit einem "HC165 Shift-Register" verbunden um 8 Taster ein zu lesen. Leider prellen meinen Buttons ein wenig. Mit Hilfe von Google hab ich schnell ein paar Antworten zum entprellen von Tastern gefunden. Hab mir die "Bounce-Library" runter geladen und ein paar Versuche mit nur einem Taster direkt am µC gemacht. Soweit so gut.
Dann wollte ich das Ganze mal mit meinem Shift-Register versuchen. Leider kam dabei kein sinnvolles Ergebnis.
Kann man ein Shift-Register überhaupt über die Software entprellen?
Ich hab nun schon einen dicken Kopf vom nachdenken und komm leider nicht weiter, vielleicht kann mir ja jemand den richtigen Anstoß geben.

LG Philipp

Serenifly

Die primitiv-Version geht so:

1. Taster abfragen
2. Delay von ein paar ms
3. Nochmal abfragen

Das geht auch bei einem Schieberegister

michael_x

#2
Jul 08, 2013, 11:52 pm Last Edit: Jul 08, 2013, 11:58 pm by michael_x Reason: 1
???
Die primitiv-Version geht so:

1. Taster abfragen und bearbeiten
2. Delay von ein paar ms

Was bei 1 erkannt wird, ist entweder der neue Zustand oder noch der alte, und nach dem delay ist auf jeden Fall der Wechsel durch.
Wenn bei 1 noch der alte Zustand war ( und selbst wenn wir gerade das zurückfedern während des Prellens gemessen haben sollten )
ist beim nächsten Mal eben der neue Zustand da ( und das Prellen schon vorbei )
Wenn bei 1 schon der neue Zustand zu sehen war, auch gut, reagieren,  dann ist nach dem Delay das Prellen vorbei und im nächsten Zyklus ist alles ruhig.

Nachtrag:Wenn nichts passiert war, kann man das Delay natürlich weglassen, aber das ist eigentlich egal, wenn es nur um Taster geht.
Auch 8 Taster über ein Schieberegister sollten sich nach dem kleinen delay beruhigt haben. ( Hier geht es um mehrere Taster mit shift-in )



Was soll deine 3 Stufen Version denn machen, wenn bei 1 und 3 unterschiedliche Ergebnisse sind ?
Das ist schon lange nicht mehr primitiv ... ;)


File23

Danke ihr beiden für die schnellen Antworten. Hab derweil schon mal überlegt ob sich das in meinem Projekt umsetzen lässt. Die Schaltung mit den Shift-Register und den 8 Buttons habe ich nur hergenommen um damit zu experimentieren. Ich arbeite derzeit an einem "Breadboard Projekt" eines "16 Step MIDI Sequencers".

Gibt es dafür noch elegantere Lösungswege denn sonst sollte ich meinen Code nochmal komplett überdenken oder via Hardware entprellen...
Gruß
Philipp

volvodani

Ich habe "debounce" immer so gemacht das die Taster erst wirklich High waren wenn das Signal länger als 5ms ist. Du kannst das mit millis() schön auswerten.
Gruß
Der Dani
"Komm wir essen Opa!" - Satzzeichen retten Leben!

Realizer

Der Sequenzer ist ja ein klasse Teil. Habenwill ;)

Da kommt gleich der Klaus Schulze in mir raus. :D

http://www.youtube.com/watch?v=BUCYq2qLxJc
Eine Kuh macht muuhh.
Viele Kuehe machen Muehe

File23

#6
Jul 09, 2013, 10:59 pm Last Edit: Jul 09, 2013, 11:08 pm by File23 Reason: 1

Ich habe "debounce" immer so gemacht das die Taster erst wirklich High waren wenn das Signal länger als 5ms ist. Du kannst das mit millis() schön auswerten.
Gruß
Der Dani


Danke so werde ich es mal versuchen.


Der Sequenzer ist ja ein klasse Teil. Habenwill ;)

Da kommt gleich der Klaus Schulze in mir raus. :D


Danke für die Blumen! Die Hardware scheint mir so weit ganz in Ordnung, ein paar Details muss ich noch ergänzen danach sollte das Setup stehen.
Leider komme ich mit dem CODE noch nicht so gut voran.
Hab vor 8 Wochen mit einem "Arduino Starter Kit" und dem Buch von Erik Bartmann "Die Welt mit Arduino entdecken" begonnen. Ein paar Vorkenntnisse über die Grundlagen von µControllern hatte ich schon mitgebracht, allerdings wollte ich mich nicht schon wieder mit "Hallo Welt" herumschlagen. Darum habe ich begonnen die einzelnen Teile für den Sequencer zu bauen, zu testen und zu kombinieren.

Wer Interesse hat, hab auch meine Homepage grafisch neu überarbeitet, ist zwar noch im Aufbau aber ein wenig über die Hardware des SEQs ist zu finden.

Danke nochmal alle für die Anregungen. Ich hoffe damit ein Stück weiter zu kommen und den SEQ im Heurigen Jahr noch fertig stellen zu können.

Gruß
Philipp

Go Up