Wenn man sich intensiv mit Microcontrollerschaltungen beschäftigt, kommt man irgendwann an einen Punkt an dem der Einsatz von Tastern als Eingabeeinheit
einfach zu umständlich wird. Besonders wenn man bei Werteeingaben mal große und mal feinfülig sehr kleine Sprünge machen will. Hier zwängen sich geradezu inkrementale Drehgeber auf. Deshalb habe ich mir mal einige
Modelle z.B. von Alps und Panasonic genauer angesehen und musste feststellen das diese als Tastererstz für Microcontrollerschaltungen nur bedingt einsetzbar sind. Ein großes Problem stellt zum Beispiel das
Kontaktprellen dar. Schaut man sich in einschlägigen Internetforen um, sieht man jede Menge an Beiträgen dieses lästige Prellen auszutrixen. Eine Möglichkeit ist es den Schaltkontakt mit Kondensatoren zu puffern.
Dies bringt bei stark prellenden Kontakten allerdings wenig Erfolg. Ausserdem besteht natürlich auch die Möglichkeit mit Flip-Flops oder Monoflopps rumzuhantieren. Sicherlich funktioniert das, aber man braucht
natürlich doch wieder einiges an externen Bauteilen. Des weiteren kann man sich natürlich trickreiche Programme einfallen lassen um im Pollingmodus stabile Zustände herauszufiltern. Das kostet aber zum einen aber
einiges an Programmieraufwand, zum Anderen doch einiges an Rechenleistung. Richtig kritisch wird es wenn man um nicht pollen zu müssen die Prellenden Kontakte an einen Interrupt legt. Ratz faz kommt es dann zu
unerklärlichem Programmverhalten durch Bufferoverflows oder gar zu Programmabstürzen. Da gibt es solche schlaumeierischen Vorschläge nach auslösen des Interrupts doch einfach den Interrupt zu deaktivieren und erst
mal abzuwarten bis sich der Kontakt beruhigt hat. Das bedingt jedoch das man es schafft den Interrupt zu deaktivieren bevor das Impulsgewitter auf den armen Chip einprasselt. Und genau das schafft man gerade dann
nicht wenn man den Microcontroller nur langsam taktet. Bei 1MHz Taktfrequenz braucht man schon ca. eine Mikrosekunde um den Interrupt abzuschalten und es hat sich gezeigt das das schon deutlich zu langsam sein kann.
Deshalb sann ich nach einer Lösung wirklich saubere Signale von einem Inkrementalen Drehgeber zu bekommen. Da auch ich das Rad nicht jedes mal neu erfinden
möchte hab ich mich mal im www umgesehen und stieß zum einen auf die Lösung von Drehgebern mit Optischer Drehencodern (siehe gute alte Computermaus) oder aber einen ausgedienten kleinen Schrittmotor zweck zu
entfremden. Dabei stieß ich auf folgende Schaltung. Ich möchte mich nicht mit fremden Federn schmücken und würde auch gerne die Quelle angeben, aber ich finde die Seite einfach nicht wieder. Hier die Schaltung.
|