Forum: Mikrocontroller und Digitale Elektronik Drehschalter an einem ADC-Eingang auswerten


von blow (Gast)


Lesenswert?

Grundsätzliches Eingangsverhalten bei aktiviertem Pullup-Widerstand: 
Falls der mit GND verbundene Taster nicht betätigt wird (größerer 
Widerstand), liegt am Eingang eine High an. Wenn der Taster betätigt 
wird (kleinerer Widerstand) liegt eine Low am Eingang. Durch den 
Spannungsteiler ist das für mich nachvollziehbar.

Mein Vorgehen:
- Ich würde nun ein Masse-Kabel zum Drehschalter führen, auf das die 
jeweilige geschaltete Stellung schaltet.
- Ein Kabel vom Eingang würde ich nun zum Drehschalter führen und an 
jede Drehschalterstellung aufteilen
- An jede Drehschalter-Stellung würde ich einen unterschiedlichen 
Widerstand anbringen, damit ich sie bei der Auswertung im uC 
unterscheiden kann

Meine Fragen sind nun:
1. Welche Widerstände sind für die einzelnen Stellungen sinnvoll, wenn 
der Pullup z.B. 10k beträgt und der ADC eine Auflösung von 10bit hat? Es 
sollte auch bei Temperaturschwankungen um beispielsweise 40°C eine klare 
Auswertung möglich sein.
Also 5 mögliche Stellungen wären 1023 bis 800, 799 bis 600, 599 bis 400, 
399 bis 200, 199 bis 0.
Für den Bereich 1023 bis 800 würde müsste fast die gesamte 
Referenzspannung am Eingang sein. Dazu müsste der geschaltete Widerstand 
wesentlich größer sein als der Pullup von 10k, also beispielsweise 100k. 
Richtig?
Für 799 bis 600 müssten also ca. 3,5V am Eingang sein, also nur 1,5V am 
Pullup abfallen, also der Widerstand im Drehschalter ca. 22k betragen?!
USW.
.
.

2. Würde ein Spannungsteiler mehr Sinn machen? Das Verhältnis würde sich 
ja auch bei Temperaturschwankungen nicht ändern, falls sich die 
Widerstandswerte ähnlich verändern.

3. Welche Alternativen gibt es dazu, wenn einem weniger digitale 
Eingänge zur Verfügung stehen als man braucht und man möglichst auf 
weitere Elektronik verzichten will?

Bitte korrigiert, wenn ich falsch liege bzw. es bessere Möglichkeiten 
gibt. Danke.

LG

von Stefan F. (Gast)


Lesenswert?

Bedenke bei den 10 bit, dass die ganze Schaltugn auch rauscht und 
Widerstände auch deutlich vom Sollwert abweichen können.

Wenn du Widerstände it +/- 5% Genauigkeit verwendet, kannst Du bei 
deiner einfachen Schaltung logischerweise nur weniger als 20 Widerstände 
verwenden. In der Praxis würde ich nur 10 verwenden.

Aber mir fällt dazu spontan eine andere Lösung ein:
1
GND o---[===]---+---[===]---+---[===]---+--- usw. ---[===]---o VCC
2
                |           |           |
3
                 |           |           |  Schaltkontakte
4
                |           |           |
5
                +-----------+-----------+----- Zum ADC
So kannst du für alle Widerstände den gleichen Wert nehmen, was nicht 
nur den Einkauf sondern auch die Berechnung deutlich vereinfacht. Hinzu 
kommt, dass Abweichungen der Widerstandswerte zum Sollwert kaum stören.

von blow (Gast)


Lesenswert?

Also war mein oben geschildeter Grundgedanke richtig und 5 Stufen sind 
in der Praxis auch gut auswertbar?

Du hast den Pullup in deiner Lösung nur nicht skizziert, aber er ist 
vorhanden, oder? Sonst wäre der Eingang ja undefiniert.

Danke für diesen Vorschlag. Ich werde es kommende Woche mal testen.

von Dieter W. (dds5)


Lesenswert?

blow schrieb:
> Du hast den Pullup in deiner Lösung nur nicht skizziert, aber er ist
> vorhanden, oder? Sonst wäre der Eingang ja undefiniert.

Ein Pullup an einem Analogeingang ist ziemlich kontraproduktiv.
Wenn er nicht automatisch abgeschaltet wird sollte man das unbedingt bei 
der Pin-Konfiguration erledigen.

von Wolfgang (Gast)


Lesenswert?

blow schrieb:
> Du hast den Pullup in deiner Lösung nur nicht skizziert, aber er ist
> vorhanden, oder? Sonst wäre der Eingang ja undefiniert.

Beim Drehschalter sollte eigentlich immer ein Kontakt geschlossen sein, 
außer im Umschalt-"moment". Je nach dem, ob der Schalter vom Type 
"Break-before-Make" oder "Make-before-Break" wird der Eingang dabei mal 
kurz in der Luft hängen oder ein Widerstand kurz überbrückt sein. Ein 
Kondensator am Eingang vom ADC hilft gegen "in-der-Luft-hängen". Ein 
Pull ist also nicht so richtig nötig und sorgt nur für Abweichungen von 
den Spannungspegeln, sofern der Teiler nicht arg niederohmig und damit 
"stromschluckend" ist.

von Stefan F. (Gast)


Lesenswert?

>  5 Stufen sind in der Praxis auch gut auswertbar

Ja klar, locker.

> Du hast den Pullup in deiner Lösung nur nicht skizziert,

Doch, ganz rechts. Aber mit dem gleichen Wert, wie alle anderen 
Widerstände.

> Ein Pullup an einem Analogeingang ist ziemlich kontraproduktiv.

Er meint einen externen. Der interne eignet sich kaum, weil dessen Wert 
in Ohm nicht ausreichend festgelegt ist.

von Route_66 H. (route_66)


Lesenswert?

Stefan us schrieb:
>>  5 Stufen sind in der Praxis auch gut auswertbar
>
> Ja klar, locker.

Zu den 5 analogen "Zwischenstufen" kann man ja auch noch zwei Stufen 
zufügen: Ohne Widerstände direkt mit GND und direkt mit Vcc verbunden.
Also im Bild von Sefanus noch zwei Schaltkontakte ganz links und rechts.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.