Forum: Mikrocontroller und Digitale Elektronik Dimmbares LED-"Array"


von David G. (blackray)


Lesenswert?

Hallo Leute,

ich beschäftige mich seit kurzem mit uCs und möchte über einen solchen 
ein paar Schieberegister ansprechen, an denen LEDs hängen. Dieser Teil 
meines Plans funktioniert bisher wunderbar. Allerdings soll das ganze am 
Ende auch mit Hilfe eines Potis bzw LDR dimmbar gemacht werden, sodass 
die LEDs - wenn zu nervig grell - auch mal heruntergeregelt werden 
können.

Ich habe schon diverse Sachen probiert, wie z.b. das Herunterregeln der 
SChieberegister Spannung über den Poti, allerdings werden die LEDs 
irgendwann nicht mehr dunkler, da alle ganz schwach leuchten, auch die, 
die eigentlich aus sein sollten. Ich denke das liegt an dem 
Mikrocontroller, der noch etwas an das Schieberegister rausgibt, wenn 
VCC fehlt oder zu schwach ist.(?!)

Jedenfalls hatte ich nun daran gedacht, eine kleine Treiberstufe über 
einen Transistor zwischen jeder LED und dem Schieberegister zu schalten, 
sodass das Register mit den Transistoren an jedem Ausgang als Schalter 
für eine Referenzspannung (mit Poti) dient, die die LEDs versorgt.
Ich bin mir aber nicht sicher, ob das funktioniert, da nicht alle LEDs 
gleichzeitig leuchten und sich der Strom nicht vernünftig einstellen 
lässt, da bei 9 LEDs mehr Strom gebraucht wird als bei 3, die - wenn die 
allein leuchten - zu viel Strom bekämen.
Lieg ich da richtig?

Kann leider keine Schaltung oder sowas beifügen, da ich nicht am Rechner 
sitz, auf dem die Daten liegen.
Hoffe, ich konnte mein Problem trotzdem veranschaulichen.

PS: an PWM geschichten mit 555 traue ich mich nich wirklich ran. Dazu 
fehlt mir noch zu sehr das verständnis für das Teil.

von Leo (Gast)


Lesenswert?

Poti an den ADC des uC und mit dem uC eas PWM signal zum dimmen erzeuge.

von David G. (blackray)


Lesenswert?

Leo schrieb:
> Poti an den ADC des uC und mit dem uC eas PWM signal zum dimmen erzeuge.

Klingt schon mal ganz gut, doch wie erzeue ich das Signal in 
Abhängigkeit der anliegenden Spannung (software?) und wie gebe ich das 
PWM Signal an die LEDs weiter, sodass sie auch tatsächlich dunkler 
werden?

/edit
wie gesagt, hab mit PWM noch nix gemacht bisher ...
Ich <- Noob

von Karl H. (kbuchegg)


Lesenswert?

Welches Schieberegister benutzt du?
Das 595 zb hat einen G_Eingang, den man wunderbar benutzen kann, um da 
eine PWM drauf zu legen, mit der alle LED gemeinsam gedimmt werden 
können. Die eigentliche Ausgabeoperation beeinflusst das nicht weiter. 
Das Schieberegister wird nach wie vor ganz normal angesprochen, in dem 
0-en und 1-en eingetaktet werden, die bestimmen welche LED leuchtet und 
welche nicht.

von Karl H. (kbuchegg)


Lesenswert?

David G. schrieb:

> /edit
> wie gesagt, hab mit PWM noch nix gemacht bisher ...


Dann wirds Zeit.
Einzelne LED an einen der PWM Ausgänge anhängen, Timer entsprechend 
konfigurieren und sich an einer dimmbaren LED erfreuen, die ja nach 
Zuweisung in das entsprechende OCR Register unterschiedlich hell 
leuchtet.

FAQ: Timer

Und wenn du mit diesem Vortest die PWM unter Kontrolle hast, kannst du 
ja wieder dein Schieberegister ansprechen. Zb über diesen Eingang (bei 
unterschiedlichen Herstellern heißt der anders. zb OE für 'Output 
Enable')

von Jürgen K. (Gast)


Lesenswert?

>> das Herunterregeln der SChieberegister Spannung über den Poti

A) Welchen Poti?
B) Spannung herunterregeln? Die Versorgungsspannung der Register? Was 
ist den das für ein Blödsinn?

Fragen:

A)Welche Register verwendest du
B)Welche LED verwendest du (Strom/Spannung)
C)Wie sind die LED an die Register angeschlossen? Vorwiderstand? 
Transistor?
D)Wie sind die Register an den uc angeschlossen?
E)Wie ist die Versorgungsspannung der Schaltung?
F)Welchen Controller verwendest du?
G)Sollen die LED einzeln in der Helligkeit ansprechbar gemacht werden?

...ich könnte noch mal so viele Fragen stellen, habe aber keine Lust 
mehr dir alles aus der Nase zu ziehen.

JK.

von Thomas E. (thomase)


Lesenswert?

David G. schrieb:
> Lieg ich da richtig?
Nein.

David G. schrieb:
> Dieser Teil
> meines Plans funktioniert bisher wunderbar.
Das ist ja schon nicht schlecht.
Aber wahrscheinlich machst du das falsch. Jedenfalls im Sinne von 
Erweiterbarkeit.

1. Du hast ein Bitmuster
2. Du gibst das Bitmuster auf die Schieberegister
3. Du wartest, bis sich was ändert und gehst zu 1.
Wahrscheinlich machst du das so.

Besser:
Bitmuster wird in ein Array geschrieben.
Array wird per SPI-ISR fortlaufend ausgegeben.

Da fühlen sich die 595er dann so richtig wohl. Endlich mal was los.

In die SPI-ISR, die sehr gut als Timer fungiert, kommt dann die Pwm:

volatile unsigned char pwm;
volatile unsigned char ledvalue;

ISR(SPI_STC_vect)
{
 //...
  pwm++
  if(ledvalue>pwm) SPDR = Ledmuster; else SPDR = 0;
 //...
}

ISR(ADC_vect)
{
  //...
  ledvalue = ADCH;
  //...
}

mfg.

von David G. (blackray)


Lesenswert?

Jürgen K. schrieb:
> ...ich könnte noch mal so viele Fragen stellen, habe aber keine Lust
> mehr dir alles aus der Nase zu ziehen.

Entschuldige, dass ich keinen 3-Seitigen Bericht für Dich habe, 
eventuelle Schaltungen, die ich posten könnte, habe ich grad nicht hier, 
wie gesagt ... dachte, dass mal als semi-Ahnungsloser ein paar Infos 
bekommen könnte, wie z.B. diese:

Karl Heinz Buchegger schrieb:
> Das 595 zb hat einen G_Eingang, den man wunderbar benutzen kann, um da
> eine PWM drauf zu legen, ...

oder diese:

Karl Heinz Buchegger schrieb:
> Und wenn du mit diesem Vortest die PWM unter Kontrolle hast, kannst du
> ja wieder dein Schieberegister ansprechen. Zb über diesen Eingang (bei
> unterschiedlichen Herstellern heißt der anders. zb OE für 'Output
> Enable')

der Poti (linear) soll nur die Spannung ALLER Leds regulieren.

> A)Welche Register verwendest du
stinknormales 4094 (wenn die Reihenfolge der Zahlen stimmt)

> B)Welche LED verwendest du (Strom/Spannung)
Verschiedenfarbige, überwiegend blau und weiß

> C)Wie sind die LED an die Register angeschlossen? Vorwiderstand?
> Transistor?
stinknormal mit Vorwiderstand richtung Ground

> D)Wie sind die Register an den uc angeschlossen?
stinknormale Beschaltung über DATA, CLOCK und STROBE

> E)Wie ist die Versorgungsspannung der Schaltung?
VCC der gesamten Schaltung über 7805 auf 5V stabilisert

> F)Welchen Controller verwendest du?
ATmega16 L8

--> nur schade, dass die meisten deiner erfragten Dinge für mein Problem 
gar nicht relevant sind. Aber hauptsache meckern ...

vielen Dank an kbuchegg! Ich hoffe damit komm ich weiter. Wenn ich mich 
in PWM Signal-Erzeugung eingelesen habe, werd ich das mal ausprobieren.
Mir war halt bisher nicht so ganz klar, wofür dieser OE Eingang gut ist 
^^

von Karl H. (kbuchegg)


Lesenswert?

Thomas Eckmann schrieb:

> Besser:
> Bitmuster wird in ein Array geschrieben.
> Array wird per SPI-ISR fortlaufend ausgegeben.
>
> Da fühlen sich die 595er dann so richtig wohl. Endlich mal was los.
>
> In die SPI-ISR, die sehr gut als Timer fungiert, kommt dann die Pwm:

Machs nicht so kompliziert.
So lange er alle LED gemeinsam dimmen will, gehts mit einer zusätzlichen 
Leitung vom µC zu den SR für einen Anfänger einfacher, solange das SR 
einen Output Enable Eingang hat.

von Karl H. (kbuchegg)


Lesenswert?

David G. schrieb:

> Mir war halt bisher nicht so ganz klar, wofür dieser OE Eingang gut ist

Steht der Eingang auf 'Enable' dann treibt das SR aktiv. Sprich: die LED 
leuchten.
Steht er nicht auf 'Enable', dann treibt er nicht. Die LED leuchten dann 
auch nicht.

Und hier kann man das dann eben ausnutzen um da eine PWM drauf zu legen 
:_)

von David G. (blackray)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Und hier kann man das dann eben ausnutzen um da eine PWM drauf zu legen
>
> :_)

Klingt einfach! :)
Klingt außerdem nach einer recht einfachen Lösung meines Problems ...
Das muss ich ausprobieren :D

Danke!

von Jürgen K. (Gast)


Lesenswert?

>>Aber hauptsache meckern

sorry wenn das so rüber gekommen ist.

>>nur schade, dass die meisten deiner erfragten Dinge für mein Problem
gar nicht relevant sind.

hmm fangen wir mal an:

Wenn du eine PWM machst ist es sehr wichtig zu wissen was für LED du da 
dran hast, denn der Strom kann sich erhöhen und damit kommen wir auch 
gleich zum nächsten Punkt weshalb ich wissen wollte welche 
Treiber/Transistoren du verwendest.

Frage D war in Kombination mit Frage G welche du ja garnnicht 
beantwortet hast darauf abgeziehlt das man ggf einen gemeinsamen Strobe 
Pin nutzen kann um alle LED gleichzeitig zu dimmen, wie von KHB schon 
angemerkt.

Am besten hat mir aber noch diese Nummer gefallen:

> B)Welche LED verwendest du (Strom/Spannung)
Verschiedenfarbige, überwiegend blau und weiß

Deine Antwort ist allerdings für die Funktion der Schaltung wirklich 
nicht von bedeutung, denn ob eine LED blau oder weiß ist wirklich egal 
und hatte mit der Frage, die ja auch nicht beantwortet hast, nicht zu 
tun.
Stelle dir mal vor du fragst jemand was für ein Auto er fährt und er 
antwortet: "ein rotes". Wenn man dann noch bendenkt das du fragst um 
demjenigen bei einem Problem an seinem PKW zu helfen, könnte man die 
Antwort fast schon böswillig bewerten.
Aber nun gut, mir ging es darum zu zeigen das die Antworten nur so gut 
wie die Informationen in der Fragestellung werden können und das ein 
Problem was für dich klar vor ort vorhanden ist, nicht für jeden hier im 
Forum klar sein muss, davon muss man sich lösen. Einfach eine 
halbfertige Frage einstellen führt immer dazu das hier tausende Dinge 
empfohlen werden bis endlich klar ist was eigentlich gewollt ist.

Aber das Thema OE wird ja nun schon angebracht.

JK

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.