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
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.
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
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.
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.
Schieberegister an SPI: 74HC165, macht drei Pins. SCK/SS/MISO Pin10 im Anhang kannst du auf GND/Vcc legen
Ein Multiplexer wäre auch eine Überlegung wert, benötigt für 16 Eingänge 4 Steuerleitungen + einen Ausgang, also 5 Ports des AVR.
@ Matthias Lipinsky (lippy) >Hier der Anhang. >Braucht drei Pins. Ein Blick in den Wikiartikel hätte genügt. MFG Falk
@ Falk Brunner (falk): Das stimmt schon, aber da muss ja noch gescrollt werden, auf das richtige Kapitel ;-)
Aaah, okay, alles klar, danke! Das es ein Schieberegister für Eingänge gibt wusste ich... Runterscrollen hilft tatsächlich... Merci!
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.