Forum: Mikrocontroller und Digitale Elektronik Auslesen Kodierschalter BCD mit z.B. atMega88


von Uwe (de0508)


Lesenswert?

Hallo,

ich habe 10x von BCD Kodierschalter,
diese sind denen von Conrad ähnlich:

http://www.conrad.de/ce/de/product/704699/

Elektrisch wird der Tastencode als BCD Zahl kodiert.

Hier ein Beispiel:
Zahl 8 4 2 1 C
---------------
 0   o o o o -
 1   o o o c c
 2   o o c o c
 3   o o c c c
 :
 7   o c c c c
 8   c o o o c
 9   c o o c c

Legende: o := Offen und c := Close

Wie kann man effizient 10x BCD Kodierschalter per Atmel (atMega88) 
abfragen?

Einfach alle 8er Stellen, alle 4er Stellen, usw. parallel und die C 
Ein-/Ausgänge an je einen µP Port geht nicht.

Warum ? Steht ein Kodierschalter auf 7, so sind 4-2-1-C verbunden und 
somit alle anderen Stellen auch.

Anm.: Die 10 Bits für die C Signale lassen auch durch einen 4 auf 16 
binär Dekoder ersetzen.
Aber das ist nicht die Idee die gesucht wird..

Wer hat eine gute Idee mit wenigen Bits aus zu kommen ?

von Floh (Gast)


Lesenswert?

5 8-bit-Schieberegister?

von Michael H. (michael_h45)


Lesenswert?

Falsches Forum.

Die 10 C-Leitungen kannst du mit 2 74xx138 auswählen.
Du brauchst pro Schalter je 4 Dioden, die du den Ausgängen in Reihe 
schaltest und dazu noch für alle 10 Schalter zusammen 4 
Pull-Widerstände.
Dann kannst du das machen, was du hier ausschließt.
Uwe S. schrieb im Beitrag #2331678:
> Einfach alle 8er Stellen, alle 4er Stellen, usw. parallel und die C
> Ein-/Ausgänge an je einen µP Port geht nicht.

"Effizient" wäre ansonsten auch noch, eine synchrone serielle 
Schnittstelle und daran 5 Schieberegister 74xx165 als Eingänge und zwei 
74xx595 als Ausgänge zum Multiplexen zu nehmen. Spart Pins.

von Uwe (de0508)


Lesenswert?

Hallo Michael,

Die Lösung mit 2x 74HC138 und den vier passiven UND Gattern mit je 10 
Dioden hatte ich mir auch überlegt.

Die Schieberegister liegen auch in der Schublade, damit könnte ich es 
auch machen.

Danke das wars.

von Oliver J. (skriptkiddy)


Lesenswert?

Es gibt laut Datenblatt 2 verschiedene Varianten:

- invertiert
- nicht invertiert

Welchen Variante hast du?

von Uwe (de0508)


Lesenswert?

Wie im ersten Beitrag zur Kodierung beschrieben. Der Link soll nur als 
Bild für diese Schalter dienen.

Zahl 8 4 2 1 C
---------------
 0   o o o o -
 1   o o o c c
 2   o o c o c
 3   o o c c c
 :
 7   o c c c c
 8   c o o o c
 9   c o o c c

Legende: o := Offen und c := Close

von Seltener Gast (Gast)


Lesenswert?

Für 10 Schalter kannst du anstatt zwei 74HC138 auch einen 74HC42 nehmen.

von Peter D. (peda)


Lesenswert?

Wer nimmt denn heutzutage noch BCD Kodierschalter und dann noch 10 
Stück.

Nimm einfach ne 3*4 Tastenmatrix, ein LCD und nen MC mit EEPROM zur 
Eingabe beliebig vieler Ziffern.


Peter

von Klaus D. (kolisson)


Lesenswert?

... mit dem BCD Schalter ein Widerstandsnetzwerk (z.B. R2R) steuern und
die Stellung über ADC einlesen. das benötigt dann einen Pin.
Ist dann sozusagen ein manueller DAC.
Mit einem Analogmultiplexer kannst du dann auch die verfügbaren
Pins vervielfachen.

Klaus

von Uwe (de0508)


Lesenswert?

Lbr Peter,

ja das würde ich auch so machen, wenn ich von diesen BCD Dingern nicht 
noch 14 Stück hätte und so auch alte Funkgeräte restaurieren wollte.

old Style halt; klar ist auch, es lohnt sich nur für dieses Einzelstück.

Sonst würde man es so machen, wie Du es beschreibst.

Danke.

von Uwe (de0508)


Lesenswert?

@Klaus De lisson,

danke diese Idee hatte ich noch nicht, aber das Einlesen einiger 
Schalter per ADC habe ich schon gesehen.

Super Idee, danach hatte ich gefragt !

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Uwe S. schrieb:
> Einfach alle 8er Stellen, alle 4er Stellen, usw. parallel und die C
> Ein-/Ausgänge an je einen µP Port geht nicht.

Nur ein Wort: Dioden.

von Uwe (de0508)


Lesenswert?

Hallo Hannes,

danke hatten wir schon als Vorschlag.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Uwe S. schrieb:
> Hallo Hannes,
>
> danke hatten wir schon als Vorschlag.#

Und warum nimmst du ihn nicht ernst, und popelst statt dessen weiter 
stundenlang rum?

von Uwe (de0508)


Lesenswert?

Hannes Jaeger schrieb:
> Und warum nimmst du ihn nicht ernst, und popelst statt dessen weiter
> stundenlang rum?

Hmm verstehe ich nicht .

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.