Analoge Schalter

Beim Bau meines Multifunktions-Foto-Arduino habe ich ja bereits mit Entsetzen feststellen müssen, dass es bereits genau das gibt, was ich eigentlich entwickeln wollte: Camera Axe 3.0.

Da es mir allerdings zu langweilig erscheint, nun einfach das Gerät zu kaufen, nehme ich es zum Teil als Basis für die Umsetzung meiner Ideen respektive suche noch nach Verbesserungen. Eine dieser Verbesserungen (hoffentlich wird es auch eine…) ist es, die im Camera Axe 3.0 für Taster verwendeten digitalen Pins des Arduino ATmegas auf ein Minimum zu reduzieren, um sie (gleichfalls eine Verbesserung?!) stattdessen als Stromgeber für (dann zusätzlich vorhandene) Sensoren zu nutzen.

Um das Ganze umzusetzen ist es notwendig, mehrere (bis dato 5) Taster über einen einzelnen Analog-Pin abzufragen. Das ist wesentlich einfacher möglich als ich dachte: man verwendet einfach einen Spannungsteiler, an dessen einzelnen Anschlüssen jeweils ein Taster sitzt. Wird nun ein Taster betätigt, wird eine dem Spannungsteiler entsprechend reduzierte Spannung an den analogen Pin ausgegeben, dessen Wert nun abgefragt werden kann.

Die einzigen Probleme, die hierbei auftauchen (könnten):

  1. Werden mehrere Taster gleichzeitig betätigt, entsteht ein Spannungswert, der entweder zwischen den Abgefragten oder aber auch möglicherweise gleich einem Wert eines einzelnen Tasters liegt. Workaround: entweder diese Zwischenwerte mit abfragen und auswerten, oder einfach davon ausgehen, dass derjenige, der sich das Gerät zusammen gebaut hat, weiß, dass dieses „Problem“ existiert. Alternativ sollte es auch möglich sein, nicht wie ich gleiche, sondern unterschiedliche Widerstände zu verwenden.
  2. Laut dem Erbauer des Camera Axe 3.0, Maurice Ribble, (ich sprach ihn in seinem Forum auf meine Vorschläge hin an) seien die Werte am Analogpin nicht so schnell auszulesen wie an einem Digitalpin, dies könne zu Problemen in zeitnahen Programmschleifen führen. Bis jetzt gehe ich allerdings davon aus, dass die verwendeten Taster eh nur zur Bedienung des Menüs gedacht sind – und dies nicht sonderlich zeitkritisch sein dürfte.
  3. Ferner bemerkte er, dass sowohl eine Kalibrierung innerhalb des Programms nötig sein könnte (was ich insofern bestätigen kann, als dass unterschiedliche Widerstände auch unterschiedliche Werte am Analogpin bewirken) und dass diese Werte möglicherweise auch noch temperaturabhängig sein könnten. (Auch das wird sich noch zeigen…)


Unterm Strich ist die Erfindung des Spannungsteilers am Analogpin keinesfalls neu. Aber sie ist praktisch. Meine Tests habe ich primär aus dem Arduino-Forum, weshalb ich hier auch kein eigenes Sketch veröffentliche. Das einzige, was ich am Demo-Sketch geändert hatte waren die Abfragewerte, die über den Serial-Monitor abzulesen sind.

Allerdings gebe ich hier noch meine Variante als Fritzing-Darstellung preis. (Der zusätzliche Widerstand am Anfang beruhte auf der Tatsache, dass ich für den ersten Taster keine eigenständigen Wert auslesen konnte und zu faul war, dem Problem jetzt schon näher auf den Grund zu gehen.)

Gib auch Du Deinen Senf dazu