Hallo, ich möchte an einem 8-pinner AVR (Tiny13) zuviel anschliessen. Daher müssen sich ein Taster und eine LED einen Pin teilen. Alle Kombinationen die ich mir ausgedacht habe, haben irgendeinen Mangel. Mal leuchtet die LED wenn man den Taster drückt, mal ist was anderes nicht so gut. Daher die Frage, was ist die optimale Beschaltung um einen Taster und eine LED am Pin zu verheiraten? Besten Dank.
Einfach Taster + LED parallel nach Vorwiderstand vom Pin nach Masse. Beim LED-Anzeigen DDR Register auf Ausgang stellen, => Led kann angesteuert werden. Beim Taster einlesen: DDR auf Eingang, internen Pull-Up an und messen. Wenn die Spannung bei geöffnetem Taster am Port nicht reicht, um als High-Level erkannt zu werden, andere LED verwenden (z.B. weisse mit >3V) oder noch eine Diode in Serie dazu. Nachteil: LED ist immer aus, während Schalter gedrückt ist. /Ernst
Wenn Dir dafür zusätzlich zu der LED und ihrem Vorwiderstand noch ein Transistor und drei weitere Widerstände nicht zu teuer sind, kannst Du mal diese Schaltung studieren: VCC = 5 V -------o----------------o--- | | | | | 180 | | 10k | | -----o | | | | / | PIN ---o---15k---(T) LED | \ | | (npn)| | 3.3k | | | | | | | | o| | | +-T | | o| | | | | | | | | -------o-----------o----o--- GND Es gibt drei Fälle: Pin treibt L raus --> T sperrt -> LED ist an Pin treibt H raus --> T leitet -> LED ist aus Pin ist Eingang --> Es wird L [H] eingelesen wenn der Taster gedrückt [offen] ist Der Zustand des Tasters ist so zu erfassen, daß der Pin kurzzeitig über das DDRX-Register auf "Input" geschaltet wird, der Zustand eingelesen wird (PINX), und der Pin danach sofort wieder auf "Output" zurückgeschaltet wird. Während der Pin "Input" ist, ist die LED stets aus, was aber wegen der Kürze der Zeitspanne nicht zu sehen ist. Ein kleiner Nachteil dieser Schaltung ist, dass der LED-Betriebsstrom von ca. 20 mA auch fließt, wenn die LED aus ist. Für ein batteriebetriebenes Gerät ist sie deshalb nicht empfehlenswert.
Ohhh... Ascii-Schaltplan. Meiner Dagegen: ___ PIN --[_250_]---+--, | | | LED |o | Taster--+ | |o (evtl. Diode) | | GND ------------+--' Ob du die Zusatzdiode brauchst, hängt ganz von der verwendeten LED und dem uC ab, die Gesammt-Durchlasspannung muss halt noch vom uC als HIGH erkannt werden. Einlesen im Prinzip wie oben, nur dass man noch den internen Pull-Up einschalten muss. Am Pin liegen dann etwa 3V bei offenem Taster an (->HIGH Level), bei geschlossenem etwas über 0V (->LOW Level) Vorteil: Es fliesst kein Strom, wenn die LED aus ist Nachteil: Beim Tastendruck wird der uC Port stärker belastet, wenn die LED an war. (Mit 250 Ohm sinds dann genau 20mA, die LED hätte dann aber nur etwa 10mA zum Leuchten bei offenem Taster) /Ernst
Version in der der Taster die LED nicht stört. LED-Zweig wie von Ernst beschrieben. Muss so dimensioniert werden, dass bei Input mit internem Pullup der Pin auf High-Pegel bleibt. Wenn die Durchflussspannung der LED bei dem extrem niedrigen Strom des Pullups unterirdisch gering sein sollte, muss ggf. ein externer Pullup nachhelfen. o---------------o--------o- | | | | | | .-. .-. 10K| | | | | | | | '-' '-' | | | | \ o V \ - \. | o | | V -> | - | | | | === === GND GND (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Vielen Dank für die Anregungen. AVRFan: Ein ständiger Strom, auch wenn der µC aus ist, ist hier leider nicht tragbar. Ernst: Auf diese Kombination bin ich auch gekommen. Allerdings sehe ich das Problem, dass der gemeinsame Vorwiderstand hinreichend niederohmig ist, um den Port zu beschädigen. Sprich, wenn der Pin als Ausgang und High gesetzt ist und einer den Taster drückt. Man müsste also die Widerstände in beide Zweige trennen und den am Taster etwas höherohmiger machen. Der Nachteil LED aus, bei Taster wäre verkraftbar. Besser als LED an :-) Der High-Level beim Auslesen macht mir keine Sorgen, bei 20+ kOhm internem Pullup und 3 V Betriebsspannung dürfte die LED keine Sorgen machen. Viele Grüße
Also ich schlage vor, die LED gegen VCC zu haengen. Dir Pins koennen mehr gegen Masse ab, als sie Strom liefern.
@SiOS2: Die neueren AVrs sind symmetrisch. Im Fall vom Tiny13 allerdings nicht alle Pins. @Thomas: Es gibt 2mA LEDs.
Hallo nochmal, A.K. Ja, genau so meine ich auch. Aber 10 k am Taster sind schon relativ viel, bei 20..50 k interem Pull-Up. Ich tendiere derzeit zu 2k2, das macht ein gutes Milliampere, wenn der Port als Ausgang High ist und ist reichlich niederohmig , wenn der Port mit dem internen Pull-Up als Eingang geschaltet wird.
A.K. Man muss hier sowieso Low-current LED nehmen, da bei 3 V die Ports nur mit bestenfalls 5 mA belastet werden können. Allerdings ist bei gemeinsamem Widerstand der Strom bei gedrückten Taster trotzdem höher, da er ja nicht die Flussspannung wie die LED hat.
A.K. wrote:
> (created by AACircuit v1.28.6 beta 04/19/05 www.tech-chat.de)
Nettes Programm, hab ich mir gleich gezogen.
Geht mit wine sogar unter Linux problemlos.
/Ernst
Yep, ich war beim falschen Tiny, der Tiny11 hat intern min 35K, daher meine 10K. Aber Prinzip ist klar.
Danke noch mal an alle Ratschläge, ich werde jetzt die Option mit zwei Widerständen und LED und Taster gen GND verwenden.
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.