Forum: Mikrocontroller und Digitale Elektronik LED in Zwei Helligkeiten


von Phillip H. (philharmony)


Lesenswert?

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...

von Christof V. (yoda)


Angehängte Dateien:

Lesenswert?

Hallo Phillip,

z.B. so wie im Anhang?

von Kanzler Gorkon (Gast)


Lesenswert?

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

von Kanzler Gorkon (Gast)


Lesenswert?

Wenns notwendig ist, kann auch noch eine Diode bei den Port Pins sein 
(damit nicht sinnlos zwischen den Pins Strom fließt).

von Falk B. (falk)


Lesenswert?

@ 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

von Christof V. (yoda)


Lesenswert?

Falk schrub:
>Denn der AVR kann ja seine IOs hochohmig schalten.

Ja richtig. Da hab ich nicht dran gedacht.

von Stefan B. (stefan) Benutzerseite


Lesenswert?

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.

von Phillip H. (philharmony)


Lesenswert?

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.

von Falk B. (falk)


Lesenswert?

@ 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

von Phillip Hommel (Gast)


Lesenswert?

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

von Falk B. (falk)


Lesenswert?

@ 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

von Bastler (Gast)


Lesenswert?

Ich steuere auch 128 (16x8) LEDs über Schieberegister an.
Bei mir flackert nix!

(zumindest ist mein Auge-Gehirn zu träge es zu sehen)

von Phillip H. (philharmony)


Lesenswert?

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! ;)

von Phillip H. (philharmony)


Lesenswert?

Ä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!

von Phillip H. (philharmony)


Lesenswert?

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?

von Falk B. (falk)


Lesenswert?

@ Phillip Hommel (Firma hs-bremen) (philharmony)

>Oder brauche ich dazu ein anderes Schieberegister?

Ja LOGISCH!

Porterweiterung mit SPI

MFG
Falk

von Phillip H. (philharmony)


Lesenswert?

Gefunden, dankeschön!

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
Noch kein Account? Hier anmelden.