Ich versuche dir noch einen Stoß in die richtige Richtung zu geben: Die Schaltung im ASURO ist im Endeffekt ein variabler Spannungsteiler. Es gibt auf der einen Seite einen Vorwiderstand und auf der anderen Seite dann die verschiedenen an die Taster angeschlossenen Widerstände. Der Vorwiderstand und die anliegende Spannung ist bekannt, es ist also möglich, den unbekannten Widerstand an den Tastern zu errechnen. Das ist Teil 1 der Lösung.
Um jetzt anhand des ermittelten Gesamtwiderstandes auf die einzelnen Taster zurückschließen zu können, hat man sich eines kleinen Tricks bedient: Die Widerstandswerte sind vielfache voneinander. Es gibt einen Grundwert R und alle Widerstände sind so ausgelegt, dass sie einen Wert von ungefähr 2^i * R haben, wobei i die Nummer des Widerstandes ist.
Mit diesem zweiten Teil Komponente ergibt sich dann eine Gleichung: Parallelschaltung von Widerständen (an den Tastern) -> Spannungsteiler (Vorwiderstand und der aus der Parallelschaltung resultierende Widerstand) -> Spannung -> ADC-Wert. Mit etwas Formel-Umstellen kommt man irgendwann dahin, dass auf einer Seite des Gleichheitszeichens eine Summe der ganzen 2^i steht, jeder Widerstand i also dann auf ein Bit (Zweierpotenz -> darstellbar durch ein Bit) abgebildet wird. Und genau diese Formel steht dann auch im Quelltext der Asurolib.
mfG
Markus
Lesezeichen