www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Drehschalter codieren


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi zusammen
Würde dringen eure Hilfe benötigen.
Ich habe einen Drehschalter mit 16 Stellungen.
Je nachdem in welcher Stellung er sich befindet, benötige ich den Wert
als 4Bit Gray Code. Kann von mir aus auch ein anderer Code sein aber 
eben
auf 4Bit.

zb. der 8. Schließer ist geschlossen --> Ausgabewert 0100 (gray code), 
oder 1000 oder was auch immer.

Gibts da vielleicht eine vorgefertigte IC Lösung oder sowas?

Danke im voraus!!

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Normaler Weise benutzt mann die Dioden-Logik dazu.

http://de.wikipedia.org/wiki/Wired-AND

Volker

Autor: Ralf N. (runni) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias schrieb:
> Ich habe einen Drehschalter mit 16 Stellungen.
> Je nachdem in welcher Stellung er sich befindet, benötige ich den Wert
> als 4Bit Gray Code. Kann von mir aus auch ein anderer Code sein aber
> eben
> auf 4Bit.

Hallo,

wenn der Schalter 1 aus 16 kodiert ist, müsstest du ja erstmal 16 
Leitungen abfragen - das ist äusserst unpraktisch, viel besser wäre ein 
Schalter, der von vornherein an 4 Pins dezimal- oder Gray-Code schaltet.

Wenn's garnicht anders geht, eben 16 Inputs abfragen und in einer 
Tabelle nachschauen. Vernünftige ICs gibt es dafür nicht, die Funktion 
wäre Priority Encoder, aber die gibt's wenn überhaupt nur für 4 Bit 
(74xx278), also müsstest du 4 Stück kaskadieren. Aber 16 
Schaltereingänge sind immer blöd, egal ob Hard- oder Software.

Gruss Reinhard

Autor: Matthias Eder (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnellen Antworten

Hab jetzt bei meiner weiteren Suche den kaskadierbaren SN54HC148 
gefunden, der für meine Zwecke relativ gut passen würde.

Jetzt wäre nur noch die Frage, ob es eine platz- und kostengünstige 
Möglichkeit gibt aus dem Binärcode einen Gray-Code zu machen.

Wisst ihr da irgendwas brauchbares?

Grüße Matthias

Autor: Helmut -dc3yc (dc3yc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Logikfamilie sitzt denn dahinter? Ist es ein µP, dann würden es 
auch 32 Dioden und 4 Widerstände tun. Allerdings hast du als 
Low-Spannung nur 0.7Volt.

Autor: Thorsten S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
...schau dir das mal an:

http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=C27...

für die codierung muss du nur die Fälle des Binärcodes tauschen, sprich 
deine Anchlussreihenfolge ändern:

0 0
1 1
2 3
3 2
4 6
5 7
6 5
7 4
8 C
9 D
A F
B E
C A
D B
E 9
F 8

sprich du musst die Pins deines Schalter nicht nacheinander anchließen 
ondern vertauscht, siehe oben,

gruß,
Thorsten

Autor: Thorsten S. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
hier sieht man ganz schön wie man sie kaskadiert, und dann nur noch wie 
schon beschrieben die Fälle tauschen...

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, er hat den Schalter ja bereits, da ist Diodenmatrix das 
Einfachste. Suchte er einen Schalter, dann würde ich den empfehlen:
Ebay-Artikel Nr. 290505268282

...

Autor: RainerK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
15 x 1kOhm in Serie zwischen GND und +
GND und + sowie alle 14 dazwischen liegenden Knoten
an den 16 Schalterkontakte anschließen.
Den Common-Anschluß des Schalters auf den AD-Eingang des kleinsten
passenden µC schalten und ein paar Programmzeilen schreiben:

FERTIG

Das Thema hatten wir hier vor ein paar Wochen schon mal mit einem Poti 
als Schalter mit unüblicher Anzahl an Stellungen.

Es grüßt RainerK

Autor: Reinhard Kern (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

noch einfacher:

Schalter als 4 x 4 Matrix an 8 I/Os, die übrigen 4 I/Os eines PIC16 
geben den Graycode aus. Zum Pic (1 x DIP18) braucht man noch 4 
Pullup-Widerstände. Aber einen Prozessor will der Fragesteller wohl 
nicht.

Gruss Reinhard

Autor: RainerK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Reinhard Kern schrieb:
> Schalter als 4 x 4 Matrix an 8 I/Os, die übrigen 4 I/Os eines PIC16
> geben den Graycode aus. Zum Pic (1 x DIP18) braucht man noch 4
> Pullup-Widerstände. Aber einen Prozessor will der Fragesteller wohl
> nicht.

Ob der Fragesteller einen PIC o.a. will oder nicht hat er nicht 
geschrieben.
Aber was soll er mit einer 4x4-Matrix?
Der 16er-Schalter, den er verwenden will - bzw. evtl. sogar schon hat - 
gibts wohl kaum mit den für eine solche Matrix notwendigen isolierten 
Einzelschaltern, sondern nur als 16 x 1 oder in seltenen Fällen auch mit 
2 oder 3 Ebenen.

Es grüßt RainerK

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Leute

Danke für die super Antworten!
Das mit dem Anschlusspins vertauschen funktioniert super für mich!
Nochmal danke!

Grüße Matthias

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.