Hi, ich habe 8 Schalter, Ein/Aus/Ein, die ich mit nem Mega1284p auswerten möchte. Dafür wären 16 Pins nötig, die ich aber leider nicht frei habe, und Platz für ein Schieberegister habe ich auch nicht, deswegen möchte ich die Schalter Multiplexen. Dann brauche ich nur 10 Pins. 8 Ausgänge für jeden Schalter einen. Dann schließe ich jeweils einen Ausgang von allen Schaltern zusammen, und gehe dann an 2 Eingänge am Mega. Wie und wo setzte ich da am besten die Widerstände? Reichen 250Ohm an jedem Ausgang aus, um die Strom auf 20mA zu begrenzen? MfG Philipp
Philipp Maricek schrieb: > 8 Ausgänge für jeden Schalter einen. > Dann schließe ich jeweils einen Ausgang von allen Schaltern zusammen, > und gehe dann an 2 Eingänge am Mega. > > Wie und wo setzte ich da am besten die Widerstände? Wozu brauchst du hier Widerstände? > Reichen 250Ohm an jedem Ausgang aus, um die Strom auf 20mA zu begrenzen? Ja, aber auch ohne diese Widerstände wird bei deiner Anordnung kein nennenswerter Strom in die Eingänge des µC fließen (und daher auch keiner aus den Ausgängen) - es sei denn, dein Programm ist fehlerhaft und baut durch falsche Konfiguration der Ports einen "Kurzen".
Philipp Maricek schrieb: > Wie und wo setzte ich da am besten die Widerstände? Garnicht. Für die Eingänge nimmst Du die internen Pullups. Und die Ausgänge läßt Du immer auf low und schaltest nur das Direction-Bit um (also low oder tristate). Dann kann kein Ausgang gegen den anderen kämpfen. Peter
Ich habe da noch ein gewisses Vereinfachungspotenzial entdeckt ;-) 1.) Du könntest die ganze Sache umdrehen, also die beiden gemeinsamen Anschlüsse als Ausgänge und die 8 individuellen als Eingänge verwenden. Dann müsste sich die Abfrage vereinfachen (du musst dann nur zweimal ein ganzes Byte einlesen). 2.) Wenn du 1.) befolgst, kannst du sogar einen der beiden Ausgangspins einsparen. Du könntest nämlich einen der beiden gemeinsamen Anschlüsse der Schalter (sagen wir den linken) fix auf GND legen und nur den zweiten (den rechten) mit einem µC-Pin verbinden. Beim Einlesen lässt du dann zuerst den gemeinsamen Anschluss offen (tri-state) und liest den Eingabeport ein. Wenn sich für einen Schalter "0" ergibt, weißt du, dass der Schalter links steht. Dann setzt du den gemeinsamen Anschluss auf Low und liest nocheinmal den Eingangsport ein. Ist dieser nun "1", steht der Schalter in der Mitte; ist er "0", steht der Schalter rechts (falls du nicht schon beim ersten Lesevorgang erkannt hast, dass er links steht).
Ok, danke für den Tipp, ich werde es mal ausprobieren. MfG Philipp
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.