Moin, ich suche nach einer Möglichkeit, eine LED so zu beschalten, daß sie an zwei Pins des Atmega angeschlossen wird. Ist der eine High soll sie Hell leuchten (kleinerer Vorwiderstand) ist der andere High soll sie gedimmt leuchten (größerer Vorwiderstand). PWM kommt in dem Fall nicht in Frage, da ich 128 LEDs per Pultiplexer und D-Flipflop anspreche. Spannungsteiler habe ich schon überlegt, das scheint aber nur zu gehen, wenn der LOW-Pin in der Luft hängt, sobald ich den auf Masse ziehe geht natürlich das Licht aus. Und "in der Luft hängen" kann natürlich der Ausgang vom D-Flipflop nicht...
Eine Möglichkeit mit 4 Helligkeitsstufen: Anode der Led auf Vcc, Kathode über R1 auf Pin1 des µC und über R2 auf Pin2 des µC. R1 > R2 Pin 1 und 2 auf 1 -> Led aus Pin 1 auf 0, 2 auf 1 -> dunkel Pin 1 auf 1, 2 auf 0 -> heller Pin 1 und 2 auf 0 -> ganz hell
Wenns notwendig ist, kann auch noch eine Diode bei den Port Pins sein (damit nicht sinnlos zwischen den Pins Strom fließt).
@ Christof Voelkle (yoda) >Dateianhang: led.png (10 KB, 8 Downloads) >z.B. so wie im Anhang? Ein wenig aufwändig für so ein triviales "Problem". Einfach zwei Widerstände an die Portpins und damit an die LED. Bei richtiger Dimensionierung passt das. Denn der AVR kann ja seine IOs hochohmig schalten. Die Dioden sind dann überflüssig. Aber der OP sprach von 128 LEDs per Multiplexer. Da sollte man wohl erstmal über eine LED-Matrix nachdenken. Wenn man das aber doch nicht will, dann muss man halt Schieberegister verwenden. Dann kann man deine Schaltung fast verwenden, man kann eine Diode einsparen. MFG Falk
Falk schrub:
>Denn der AVR kann ja seine IOs hochohmig schalten.
Ja richtig. Da hab ich nicht dran gedacht.
Man kann u.U. auch nur einen Portpin benutzen. Pin---###--->|---- GND ###: Vorwiderstand ->|-: LED low current, möglichst leuchtstark Die stark leuchtende LED bekommt man, wenn der Pin als OUTPUT HIGH geschaltet ist. Die LED ->|- erhält z.B. +5 V aus dem Portpin über einen normalen Vorwiderstand ### zur Strombegrenzung (z.B. 2 kOhm). Die schwach leuchtende LED bekommt man, wenn der Pin als INPUT geschaltet ist und der zugehörige interne Pull-Up Widerstand mittels PORT aktiviert ist. Bei einem typ. Pullup von min. 20 bis max. 50 kOhm (Bsp. bei Atmega32 I/O Pin Pull-Up Resistor im Datenblatt) gibt das einen Strom von ca. 0,15 bis 0,06 mA. Es ist auszuprobieren, ob dir das noch hell henug ist. Die dunkle LED ist klar - OUTPUT LOW oder INPUT und Pull-Up inaktiv.
So wie in der Zeichnung vom ersten Beistrag dachte ich mir das. Ich hatte bei meinen Versuchen keine Dioden dazwischengeschaltet, darum hats natürlich nicht funktioniert. Vielen Dank. Nochmal genau was ich baue: Ich habe einen Port komplett für 8 Ausgänge konfiguriert. Diese hängen an den Eingängen von 16Stück 8er-D-Flipflops. PIN0 am jeweils 1.FF der 8er-Reihe, PIN1 am 2. usw. Einen weiteren Port habe ich als 7-Bit Zähler konfiguriert (4 Davon benutze ich für meine LED-Schaltung, die vollen 7 Bit brauche ich für was anderes, ich mache nämlich was ähnliches noch mit 128 Eingängen für Schalter). Die 4 Bit schalten jetzt per 16er Mux einen Kurzen Puls durch, damit die 8Bit dann je an nur einem 8er FF anliegen. Damit kann ich dann 128 bit Zwischenspeichern. An den Ausgängen dieser FFs hängen jetzt die LEDs, und MANCHE davon sollen eben zwei Helligkeiten haben, andere wieder nicht, und dafür kann ich dann ohne Probleme mal ein Bit mehr opfern.
@ Phillip Hommel (Firma hs-bremen) (philharmony) >Ich habe einen Port komplett für 8 Ausgänge konfiguriert. >Diese hängen an den Eingängen von 16Stück 8er-D-Flipflops. Warum keine Schiebegregister? Wesentliche weniger Verdrahtung. Dito für die Eingänge. AVR-Tutorial: Schieberegister Mfg Falk
Weil die LEDs möglichst wenig Flackern sollen, und bei den Eingängen auch mal ein Schalter gezielt abgefragt wird. Mag sein daß es andere Möglichkeiten gibt, aber meine hier funktioniert und ist schon fix und fertig zum Ätzen. Durch die Hilfestellung mit den LEDs hab ich jetzt alles zusammen. Grüße Phillip Hommel
@ Phillip Hommel (Gast) >Weil die LEDs möglichst wenig Flackern sollen, und bei den Eingängen >auch mal ein Schalter gezielt abgefragt wird. ??? Weder flackern LEDs, die per Schieberegister angesteuert werden, noch gibt es Probleme, Schalter gezielt per Schieberegister abzufragen. MFG Falk
Ich steuere auch 128 (16x8) LEDs über Schieberegister an. Bei mir flackert nix! (zumindest ist mein Auge-Gehirn zu träge es zu sehen)
Ok, beim nächsten Projekt werde ich das ausprobieren, jetzt werf ich das nicht mehr alles übern Haufen. Aber vielen Dank für die Tips! ;)
Ähm ja...ich glaub ich bin einfach ´n bisschen doof ;) Ich hatte die Lösung mit dem Schieberegister schlichtweg nicht richtig verstanden beim Lesen: Das Ding hat ja nen Speicher!!! Genial! Damit spar ich wirklich etliches an Leitungen und Stress. Danke Leute!!!! Geht das in beide Richtungen, also für LEDs und auch für Schalter? Dann werf ich das doch nochmal um, supergeil!
Soweit so gut, jetzt habe ich nur noch das Problem: Wie lese ich schalter ins Schieberegister ein? Also Quasi die LED-Lösung rückwärts? Oder brauche ich dazu ein anderes Schieberegister?
@ Phillip Hommel (Firma hs-bremen) (philharmony) >Oder brauche ich dazu ein anderes Schieberegister? Ja LOGISCH! Porterweiterung mit SPI MFG Falk
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.