Forum: Mikrocontroller und Digitale Elektronik Widerstandsnetzwerk für 2 3-Wegetaster an ADC


von Michael S. (schiko)


Lesenswert?

Ich möchte mit einem noch freien ADC-Eingang einen Joystick
mit gegebenen Anschlüssen einlesen. An den beiden Achs-Ausgänge
des Joysticks schalten jeweils GND-offen-5V. Das lässt sich leider auch
nicht ändern, sonst könnte ich die jetzigen Joystick-Ausgange
alle auf ein Pol legen, und die Taster über ein Reihennetzwerk
anschließen.
Nun sollte es doch dennoch möglich sein, durch einfache Überlegung
ein einfaches Widerstandsnetzwerk zu basteln, das eine möglichst
große Abstufung aller 9 Kombination liefert.
Z.B. so:
1
                        + 5V
2
                        |  ___              SW_A
3
                        +-|___|---+         -+-
4
                            R1    |          |  o---- 5V
5
          ----.                   |  ___     |
6
              |                   +-|___|--o-+--o
7
              |            ___    |   R2     |
8
     µContrl  |         +-|___|---+          |  o---- GND
9
              |         |  R3
10
          ADC o---------+
11
              |         |  ___              SW_B
12
              |         +-|___|---+         -+-
13
              |             R4    |          |  o---- 5V
14
              |                   |  ___     |
15
              |                   +-|___|--o-+--o
16
          ----'            ___    |   R5     |
17
                        +-|___|---+          |  o---- GND
18
                        |   R6
19
                        + GND
20
(created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Wenn ich damit zB in ltSpice rumspiele komme ich nicht auf über 0.2V
für die kleinste Spannungsdifferenz. (z.B für R1-R6: 47k 22k 0 47k 47k)
Es müsste doch aber möglich sein, durch rein logische Überlegung
die Widerstandsverhältnisse für eine ausgewogene Spannungsverteilung
am ADC-Eingang zu bestimmen.
Wie macht man es am besten?
Schiko

von Helge A. (besupreme)


Lesenswert?

Schuß ins Blaue..

R1=100k, R2=12k, R3=0, R4=0,R5=24k, R6=100k..??

von Michael S. (schiko)


Lesenswert?

Helge A. schrieb:
> Schuß ins Blaue..
>
> R1=100k, R2=12k, R3=0, R4=0,R5=24k, R6=100k..??

0,17V :-/

von Tom K. (ez81)


Lesenswert?

Mit angenommen R1=10k, R3=0, R4=0, R6=10k ergeben sich (mit E96-Werten) 
R2 = 6k19 und R5 = 10k2 als optimal.

Der kleinste Spannungsabstand ist 0.29470V.

Die Spannungen am ADC sind  [2.5, 1.6776315789473684, 
3.3223684210526319, 1.3829311885612152, 1.0879259483899426, 
2.1545200154389059, 3.6170688114387843, 2.8454799845610941, 
3.9120740516100572]
für die Schalterstellungen
SW_A SW_B
None None
None 0.0
None 5.0
0.0 None
0.0 0.0
0.0 5.0
5.0 None
5.0 0.0
5.0 5.0


Das war natürlich  Brute Force + Startwerte nach Gefühl. Einen Ansatz 
mit logischer Überlegung, der über Bauchgefühl hinausgeht, fände ich 
auch interessant.

: Bearbeitet durch User
von Michael S. (schiko)


Lesenswert?

Tom K. schrieb:
> Mit angenommen R1=10k, R3=0, R4=0, R6=10k ergeben sich (mit E96-Werten)
> R2 = 6k19 und R5 = 10k2 als optimal.
>
> Der kleinste Spannungsabstand ist 0.29470V.

Großes WHOW!
Mit welchem Programm hast Du das berechnet?

> Das war natürlich  Brute Force + Startwerte nach Gefühl. Einen Ansatz
> mit logischer Überlegung, der über Bauchgefühl hinausgeht, fände ich
> auch interessant.

Mein Bauchgefühl sagt mir, ich liege mit der Anordnung der Widerstände 
prinzipiell falsch.

Logische Überlegung in Leitwert statt Widerstand:
Ist nur eine Achse angeschlossen, Teile ich mir
den Spannungsbereich in 3 Teile mit

6/6U--------------------
5/6U-- A 5V gedrückt----
4/6U--------------------
3/6U---A offen   -------
2/6U--------------------
1/6U-- A GND gedrückt---
0/6U--------------------

Für die Mitte des obersten Bereichs (+5V gedrückt) muss das
Leitwertverhältnis 5:1 betragen (G1 + G2 / G6 = 5/1)
Bei G1=G6 ist G1=4*G1
Da wären dann bei R1=R6=100k und R2=25K gegeben.
Um die zweite Achse auszuwerten sollten die Drittel
wieder gedrittelt werden:

18/18U-------------------------------
17/18U-- A 5V gedrückt, B 5V gedrückt
16/18U--------------------------------
15/18U---A 5V gedrückt, B offen-------
14/18U--------------------------------
13/18U-- A 5V gedrückt, B GND gedrückt
12/18U--------------------------------

Hier muss das Leitwertverhältnis für die Spannung bei
(A 5V gedrückt, B 5V gedrückt) 17:1 betragen.
Oder anders ausgedrückt
(G1 + G2   + G5) / G6 = 17/1
(G1 + 4*G1 + G5) / G1 = 17/1
G5 = 12G1

Für (A 5V gedrückt, B GND gedrückt) wäre das ideale
Leitverhältnis 13:5
(G1 + G2) / (G5 + G6) = 5/13
Es ist aber genau der Kehrwert!
Was sagt mir das?
Eigentlich nur, dass ich prinzipiell auf dem Holzweg bin...

von Tom K. (ez81)


Angehängte Dateien:

Lesenswert?

Michael Schikora schrieb:
> Mit welchem Programm hast Du das berechnet?
Mit resistorswitchzeug.py im Anhang. Ich hatte irgendwann schon mal mit 
der Brute-Force-Berechnung von optimalen Widerständen für mehrere Taster 
an einem ADC gespielt und konnte das für dieses Problem anpassen.

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.