Forum: Analoge Elektronik und Schaltungstechnik Viele Drehschalter auslesen


von W. R. (wrodewald)


Angehängte Dateien:

Lesenswert?

Hi,

mir ist ein Problem für ein kleines Projekt aufgefallen. Ich würde gern 
nen 16-Step Sequenzer mit nem Arduino bauen und für die Tonhöhe 
innerhalb einer Oktave gerne nen 12 stufigen Drehschalter verwenden. 
Dabei ist mir aufgefallen, dass es spaßig wird, die 12 stufen 
auszulesen. Jetzt hätte ich nen Ansatz und wollte mal jemanden rüber 
gucken lassen, damit ihr mir sagen könnt, ob das hin haut.

Die Drehschalter wollte ich ursprünglich eh an einen Multiplexer hängen. 
Wenn ein neuer Step aktiv wird, wird die Adresse geändert und 
ausgelesen. Durch einen Multiplexer bekommt auch immer nur ein Set von 
Potis und Schaltern überhaupt eine Spannung (5V), die anderen gehen leer 
aus.

Mein neuer Ansatz wäre nun, einen weitern 16-Kanal Multiplexer zu 
nehmen, der mit allen Stufen aller Drehschalter verbunden ist. Auf 
Eingang 1 ist also Stufe 1 aller Drehschalter, auf Eingang 2 ist Stufe 2 
und so weiter. Hinter diesem Multiplexer befindet sich Ground hinter nem 
Widerstand und der Input am Arduino.

Auslesen kann man di Position dann indem man einen der Drehschalter mit 
einem Multiplexer mit einer Spannung versorgt und dann durch die 
Eingänge des zweiten Multiplexers läuft und somit herausfindet, auf 
welcher Position sich der Schalter befindet. Anbei ist die Schaltung 
vereinfacht vier mit 4-stufigen Schaltern. Funktioniert das wie geplant 
oder habe ich was übersehen?

Beste Grüße und vielen Dank im Voraus.

von MaWin (Gast)


Lesenswert?

Das geht so schon, obwohl ich mir den unteren Multiplexer sparen würde 
und 12 Eingänge (mit aktiviertem internen pull up) nutzen würde und den 
oberen Multiplexer demnach mit Masse verbinden lasse.

von SF6 (Gast)


Lesenswert?

Wozu der Aufwand mit dem Multiplexern? Wenn du IOs sparen willst, kannst 
du mit Charlieplexing alle 4 Schalter (und auch noch einen 5.) über 5 
IOs auslesen, als zusätzliche Hardware wären nur ein paar Dioden nötig.

von W. R. (wrodewald)


Lesenswert?

Wie gesagt, es sind in der Praxis dann 16 Schalter. ;) Habe noch nei was 
von Charlieplexing gehört, müsste mich da einlesen und ich habe halt 
noch nen 16 Channel Mux rum zu liegen, ...
12 Eingänge hat der Arduino dann meines Wissen nicht mehr. Ich brauche 4 
für die Adressierung, ist ein Uno.

von Peter D. (peda)


Lesenswert?

W. R. schrieb:
> Funktioniert das wie geplant
> oder habe ich was übersehen?

Ja, das funktioniert genau so.
2 * 74HC4051 an die Schleifer und 2 * 74HC4051 an die Segmente.

Zum MC brauchst Du 9 Leitungen (1 Eingang + 8 Adressen).

Die 8 Adressen kannst Du auch mit einem 74HC393 erzeugen, dann sinds 2 
Ausgänge und ein Eingang.

von W. R. (wrodewald)


Lesenswert?

Najut, hab jetzt 16 Kanal Multiplexer (4067) rum zu leigen, sollte ja 
keine unterschied machen, richtig? :)

Danke für die Hilfe!

von asdfasd (Gast)


Lesenswert?

Du könntest auch analog arbeiten.  Mit 11 Widerständen in Serie einen 
Spannungsteiler aufbauen und die 12 Spannungen dann jewels auf die 12 
Außenkontakte der 4 Drehschalter.  Die 4 Mittelkontakte dann auf je 
einen Analogeingang.

von chris (Gast)


Lesenswert?

4067
Mit dem 4067 brauchst du 8 pins, oder minimal 5.
Bei 8 pins wir pin 1 des 4067 mit Masse verbunden,
und die Eingaenge verwenden den internen pull-up.
Man kann auch einen Angstwiderstand zwischen masse und pin1 des
4067 mit >=1k einplanen, damit Softwarefehler keine Beschaedigung der
Ausgangstreiber verursachen.

Minimal 5 pins,ist 4 pins fuer den Mux, und pin1 des 4067
 wird Analog mit einem ADC pin eingelesen.
Die Schalter wird mit dem gemeinsamen Kontakt am mux angeschlossen und
an den anderen Pins wird ein Spannungsteiler gemacht, bei 4 Kontakten 
sind
es 3 Widerstaende. Diese 3 Widerstande, bzw 2 Widerstaende und eine Led
braucht es nur einmal fuer alle Schalter.
Angenommen du macht es mit Led, einer led welche Power on anzeigt.
Dann sind es 5V + 330 ohm + 330 ohm + led + gnd
Abzweigungen bei + , wenn anstelle von led ein Widerstand genommen wird,
sollte dieser hoeher sein, 4.7k als Beispiel, kann aber auch nur 3x 1k
Widerstaende sein.

Fuer Bastelprojekt einfach die ADC Werte im EEprom ablegen, sowie ein
Wert fuer den diff. Beispiel diff=10.
Wenn GND Wert 0xff ist, dann wird kalibriert.
Kalibriert, warten bis Wert kleiner diff ist, dann 200ms Warten,
Wert neu einlesen und abspeichern, sofern er immer noch kleiner diff 
ist.
Dies wiederholt sich solange als abgespeicherter Wert groesser als
255-diff ist. Neuer ADC Wert muss groesser als alter Wert + diff sein.

von Axel S. (a-za-z0-9)


Lesenswert?

asdfasd schrieb:
> Du könntest auch analog arbeiten.  Mit 11 Widerständen in Serie einen
> Spannungsteiler aufbauen und die 12 Spannungen dann jewels auf die 12
> Außenkontakte der 4 Drehschalter.

Jep. Das ist die Pin-sparendste Methode, um einen Drehschalter 
abzufragen. Bei dem man ja im Gegensatz zu Einzelkontakten nicht frei 
ist, den nach Belieben in eine Matrix einzubetten.

>  Die 4 Mittelkontakte dann auf je einen Analogeingang.

Oder - wenn man nicht soviele Analogeingänge hat oder verwenden will - 
über einen Analogmultiplexer an einen Analogeingang.

von chris (Gast)


Lesenswert?

Habe gerade gesehen, 4 stufen war die Vereinfachung, dann braucht es 
halt 11 Widerstaende anstelle von 3.

von OT (Gast)


Lesenswert?

[OT] Gibt es Gebiete, in denen man Teile "rum zu liegen" hat oder heißt 
es einfach nur "ich habe Teile rumliegen"? Meinem Sprachgefühl nach (aus 
NRW) ist "rum zu liegen" komisch[/OT]

von Peter R. (pnu)


Lesenswert?

OT schrieb:
> [OT] Gibt es Gebiete, in denen man Teile "rum zu liegen" hat oder heißt
> es einfach nur "ich habe Teile rumliegen"? Meinem Sprachgefühl nach (aus
> NRW) ist "rum zu liegen" komisch[/OT]

"rum" ist eine Flüssigkeit. Hochdeutsch heißt es "herum"

"rumliegen" SAGT man, "herumliegen" SCHREIBT man. Im Forum kann man die 
Sachen  auch rumliegen lassen. Da tippt man ja nur.

von Axel S. (a-za-z0-9)


Lesenswert?

OT schrieb:
> [OT] Gibt es Gebiete, in denen man Teile "rum zu liegen" hat oder heißt
> es einfach nur "ich habe Teile rumliegen"? Meinem Sprachgefühl nach (aus
> NRW) ist "rum zu liegen" komisch[/OT]

Ich denk, daß das Ruhrpott-Slang ist. Oder sein soll.
Da haben ja manche "ein Ei am wandern" ;) und ähnliches

von W.R. (Gast)


Lesenswert?

Das Thema blieb anscheinend auch irgendwo liegen... ;)
Ich denke mal ich bleibe der Einfachheit halber bei zwei mal vier 
digitalen Out Pins, vier für die Addresse des aktuellen Steps und 4 für 
die Adressierung der Drehschalter.

Man merkt vielleicht das ich mit Elektrik noch nicht viel zutun hatte 
und entsprechend recht schnell an meine Grenzen komme...

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.