Hallo! Bin grade auf Tristate DIP Schalter gestoßen und frag mich, wie man die mit AVR verwenden würde. Hat jemand einen Tip, wie Tristate DIP Schalter mit nem AVR abgragt werden. Die Dinger haben 3 Schaltzustände gegen + oder - geschaltet und offen. gruß, Bjoern
Vielleicht kann man die Portpins mit einem sehr großen Pull-Down Widerstand belasten, so dimensioniert, daß bei eingeschaltetem Pull-Up immer noch dieser überwiegt, aber sich dennoch in offenem Zustand ein Low-Pegel einstellt. Damit kann man dann den Schalter folgendermaßen abfragen: 1. Messung bei ausgeschaltetem int. Pull-Up: Wenn Pin High, dann Schalter=1. Wenn Pin Low, weiter zu Schritt 2: Int. Pull-Up einschalten. Wenn Pin High, dann Schalter=offen, wenn Pin Low, dann Schalter=0. Habe das aber nicht ausprobiert.
Tishima wrote: > Hallo! > > Bin grade auf Tristate DIP Schalter gestoßen und frag mich, wie man die > mit AVR verwenden würde. > Hat jemand einen Tip, wie Tristate DIP Schalter mit nem AVR abgragt > werden. > Die Dinger haben 3 Schaltzustände gegen + oder - geschaltet und offen. Mit einem ADC wäre es kein Problem. Spannungsteiler mit 2 Stück 47k Widerständen. Den Schalter so dazwischen klemmen das jeweils einer der Widerstände überbrückt wird. Schalter nach VCC = AD-Eingang 5V Schalter nach GND = AD-Eingang 0V Schalter offen = AD-Eingang 2.5V Grüße Björn
Hallo! Die Idee mit dem ADC hatte ich mittlerweile, auch schon. Die Sache die Sebastian vorgeschlagen hat, werd ich mal bei Gelegenheit ausprobieren, wenn mit nem AVR mal wieder spielen muss. Oder, hat jemand eine bereits erprobte Variante ? gruß, Bjoern
Tishima wrote: > Die Sache die Sebastian vorgeschlagen hat, werd ich mal bei Gelegenheit > ausprobieren, wenn mit nem AVR mal wieder spielen muss. Das könnte in der Theorie gehen, ist aber meiner Meinung nach grenzwertig. Die Impedanz ist extrem hoch und fängt sich Störungen von aussen ein. Der Pulldown muss auf den Porteingang angepasst sein. Die internen Pullups sind nicht alle exakt gleich... Sobald Du einen anderen baugleichen AVR nimmst, kannst Du wieder abgleichen. Aber probieren kannst Du ja Mal Grüße Björn
Ich habe sowas schon mal mit einem MSP430F20xx implementiert - funktioniert prächtig. Der MSP430F20xx hat aber steuerbare Pullup- und Pulldownwiderstände. Den Portpin habe ich an die Schaltwippe angeschlossen und die beiden anderen Kontakte an Ucc und GND. Zur Messung wird in einer Timer-ISR zunächst der Pullup aktiviert. Im nächsten Timerinterrupt wird der Pinzustand ausgelesen und anschließend der Pulldown aktiviert. Im übernächsten Timerinterrupt wird das Spiel mit dem Pullup wiederholt... Wenn der Portpin während des gesamten Zyklus auf einem festen Zustand steht, ist der Schalter im betreffenden Zustand. Wenn er der Vorgabe durch die Pull-Widerstände folgt, war der Schalter in Mittelstellung. Die Timerperiode ist notwendig, damit sich die Pegel stabilisieren können.
Du schaltest alle + des Schalters an einen Ausgang und alle Pullups ein. Dann fragst Du 2-mal ab, den Ausgang mal auf 0 und mal auf 1: 0 - 0: - 1 - 1: Tristate 0 - 1: + Peter
Danke, Peter ! Das klingt plausibel. Werd ich bei gelegenheit mal so testen. gruß, Bjoern
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.