montebaur.tech

This is the website's legacy version. Access the current one here.
Analoges Schalterpad
Dezember 2013
Wenn man an einen Mikrocontroller viele Taster anschließen will, verbraucht man immer viele Pins, die man aber vielleicht für andere Sachen besser gebrauchen könnte. Abhilfe kann da ein analoges Schalterpad schaffen. Am Arduino gibt es ja nicht nur die digitalen Eingänge, sondern auch Analoge. Diese geben einen Wert zwischen 0 und 1023 zurück, je nach dem, wie hoch die Eingangsspannung (0V bis 5V) ist. Wenn wir nun mehrere Taster haben, schließen wir auf der einen Seite +5V Spannung vom Arduino an. Auf der anderen Seite schließen wir einen Widerstand an. Wichtig dabei ist, dass nach jedem Schalter ein anderer Widerstand kommt. Diese Widerstände werden dann alle mit einem analogen Anschluss unseres Arduino verbunden. Gleichzeitig geht von dort noch mal ein Widerstand zum GND-Anschluss des Arduino. Dieses Bild zeigt den Schaltplan, den ihr aufbauen müsst. Zum Testen ist so ein Steckbrett natürlich ganz praktisch, aber wenn ihr dieses Schalterpad öfter benutzen wollt, ist es ratsam, die Schaltung auf eine Platine zu löten.
Die Werte der Widerstände lauten von links nach rechts: 221Ω, 121Ω, 100Ω, 68Ω, 182Ω, 150Ω. Der Widerstand unten rechts (dieser heißt Pulldown-Widerstand) hat den Wert 182Ω. Die Kombination von zwei Widerständen fungiert als Spannungsteiler. Je nachdem, welchen Taster man betätigt, fließt der Strom durch diese Kombination aus Widerständen. Wenn die beiden Widerstände die gleiche Größe haben (zweiter Taster von rechts wurde betätigt), wird der Arduino einen analogen Wert von etwa 512 messen. Wenn nun der Widerstand direkt nach dem Schalter größer ist, als der Pulldown-Widerstand, so wird der Eingangswert am Arduino kleiner als 512 sein.

Das ganze funktioniert aber natürlich nicht nur mit sechs Tastern. Genau so gut kann man auch mehr oder weniger Taster verwenden. Auch die Werte der Widerstände kann man beliebig ändern, wichtig ist dabei nur, dass der Pulldown-Widerstand in etwa so groß ist, wie die anderen Widerstände.


Programmierung

Um auszulesen, welcher Taster gedrückt wurde, wird etwas mehr Code benötigt, als wenn man nur einen Taster an einen analogen Port anschließt. Der analoge Input liefert uns einen Wert zwischen 0 und 1023. Zuerst müssen wir natürlich herausfinden, welcher Taster welchen Wert liefert. Das geht ganz einfach: Wir müssen nur ein kleines Arduino Programm schreiben, dass den analogen Eingang ausliest und die Werte auf dem Serial Monitor ausgibt. Wenn du das Programm nicht selber schreiben willst, habe ich dir unten ein solches Programm zum Download verlinkt. Wir schreiben uns auf, welcher Taster welchen Wert liefert. Am besten geben wir jedem Taster eine Nummer. Als nächstes können wir ein neues Programm schreiben, das diese Signale von 0 bis 1023 liest und einem der Taster zuordnet. Wenn der Arduino dann als Eingangssignal einen Wert hat, der beispielsweise zwischen 500 und 520 (Schalter 5 liefert einen Wert von 512) liegt, kann er einer Variable den Wert 5 zuweisen. Ein Programm, welches genau das tut, steht ebenfalls zum Download bereit. Wenn du andere Widerstände verwendest, musst du gegebenenfalls die Eingangswerte für deine Schaltung anpassen.


Downloads

Arduino Programme:
- Tasterwerte auslesen: hier
- Tasterzuordnung: hier

Marius M.