Forum: Mikrocontroller und Digitale Elektronik Dip Schalter pinsparend einlesen?


von Zombiemaster (Gast)


Lesenswert?

Hi!

gibt es eine Möglichkeit Dip-Schalter (in meinem Fall 12 an der Zahl) 
irgendwie sparsamer als parallel an 12 Pins vom Atmega8 einzulesen? 
Irgendwie seriell vielleicht? Mir gehen leider langsam die Pins aus...

Danke und Gruß
  Zombiemaster

von Benedikt K. (benedikt)


Lesenswert?

Wenn du die Pins nur einmal einlesen willst: Häng die über Widerstände 
an irgendwelche Leitungen, die normalerweise Ausgänge sind und lese 
diese beim Einschalten schnell ein.

von Marc S. (eurofighter) Benutzerseite


Lesenswert?

du könntest den dip in ne matrix schalten, aber das wäre eine recht 
komplizierte verkablung, und du würdest 7 Portpins dafür benötigen

ansonsten kannst auch einen PCF9554/9555 nehmen, das ist ein I²C 
portexpander, sehr einfach anzusteuern, sogar  mit interrupt bei 
pinveränderung.

oder, noch günstiger, einfach einen MEga8 als portexpander nehmen 
(insofern du mit megas arbeitest). Der bekommt dann ne einfachs SW 
drauf, die die angeschlossenen pins einliest und für die kommunikation 
mit dem master-µC sorgt

von Msp 4. (msp430_crew)


Lesenswert?

Es gibt doch auch diese Kodier-Drehschalter, wo man z.B. 16 Stellungen 
hat die dann binär-kodiert, also nur 4 Leitungen, ausgegeben werden.

von Severino R. (severino)


Lesenswert?

Msp 430_crew wrote:
> Es gibt doch auch diese Kodier-Drehschalter, wo man z.B. 16 Stellungen
> hat die dann binär-kodiert, also nur 4 Leitungen, ausgegeben werden.

Das sind dann aber 4 Bit, nicht 12 Bit.

Was auch noch ginge, wenn noch ein paar A/D-Wandler verfügbar sind: über 
die Dip-Schalter verschiedene Widerstände schalten und dann an den 
A/D-Eingang.

von Falk B. (falk)


Lesenswert?


von Matthias L. (Gast)


Lesenswert?

Schieberegister an SPI: 74HC165, macht drei Pins. SCK/SS/MISO

Pin10 im Anhang kannst du auf GND/Vcc legen

von Gast (Gast)


Lesenswert?

Ein Multiplexer wäre auch eine Überlegung wert, benötigt für 16 Eingänge 
4 Steuerleitungen + einen Ausgang, also 5 Ports des AVR.

von Matthias L. (Gast)


Angehängte Dateien:

Lesenswert?

Hier der Anhang.

Braucht drei Pins.

von Falk B. (falk)


Lesenswert?

@ Matthias Lipinsky (lippy)

>Hier der Anhang.
>Braucht drei Pins.

Ein Blick in den Wikiartikel hätte genügt.

MFG
Falk

von Matthias L. (Gast)


Lesenswert?

@ Falk Brunner (falk):

Das stimmt schon, aber da muss ja noch gescrollt werden, auf das 
richtige Kapitel ;-)

von Zombiemaster (Gast)


Lesenswert?

Aaah, okay, alles klar, danke!

Das es ein Schieberegister für Eingänge gibt wusste ich...
Runterscrollen hilft tatsächlich...

Merci!

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Mit einem R/2R-Netzwerk müßte das Auslesen der DIP-Schalter mit einem 
einzigen A/D-Pin möglich sein. Die Programmierung ist allerdings etwas 
aufwändiger.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Ein R/2R-Netzwerk für einen 12poligen DIP-Schalter? Da brauchts aber mal 
ganz präzise Widerstände, vom (mindestens) 12-Bit-ADC mal ganz zu 
schweigen.

von David M. (md2k7)


Lesenswert?

zwei AD Pins, jeweils 6bit? ;-)

von Obelix (Gast)


Lesenswert?

@Travel
Ich bezweifle, dass du damit 12 Bit schaffst.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

War ja nur so ´ne Idee ;-)

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.