Forum: Mikrocontroller und Digitale Elektronik PWM-Beschaltung mehrerer LEDs


von Sören (Gast)


Lesenswert?

Hallo zusammen,

Für eine Steuerung benötige ich folgende Funktion:

7 LEDs sollen einzeln in drei Helligkeitsstufen geschaltet werden 
können(AUS, MITTELHELL, HELL). Die nötigen Anweisungen erledigt ein 
AT90can128. Dieser hat leider nicht genug PWM-Ausgänge für den Anschluss 
von je einem LED-Treiber TLE4241 für jede LED.

Bevor ich einen zweiten µC zur Aufbereitung der Signale verwende (z.B. 
aus der AT90PWM-Reihe) wüsste ich gerne, ob jemand einen einfacheren und 
besseren Vorschlag hat, die 7 (praktisch wohl 8 - 12) PWM-Signale zu 
erzeugen.

Schönen Dank für viele Antworten,

Sören

von Kai F. (kai-) Benutzerseite


Lesenswert?

schau dazu mal bei TI vorbei, die haben jede Menge LED Treiber (PWM oder 
Konstantstrom), die du über SPI ansteuern kannst. Dafür brauchst du dann 
nur 3 Pins

von Heino (Gast)


Lesenswert?

was ist TI?

von Moritz (Gast)


Lesenswert?

Mit den Helligkeitsstufen sollte es kein Problem sein, die PWM 
softwaremäßig zu emulieren.
Nimm als PWM-Frequenz z.B. ein Kilohertz, dann langweilt sich deine MCU 
zu Tode. Am besten - wenn's die MCU - hergibt, einen Timerinterrupt 
verwenden, und einen port entweder eingeschaltet, ausgeschaltet oder im 
Wechsel ein- und ausschalten. Keine Hexerei. Wenn Du den Duty-Cycle für 
halb hell auf 25% einstellst wird das Ergebnis rein visuell besser 
werden.

von Sören (Gast)


Lesenswert?

Also ein Software-PWM kommt meiner Meinung nach nicht in der Frage, weil 
der µC auch noch weitere Berechungen durchführt, unter anderem soll er 
über CAN kommunizieren.

von Michael Wilhelm (Gast)


Lesenswert?

Wenn es nur um die Helligkeit geht und nch ein paar Portpins zur 
Verfügung stehen, dann mit 2 Pins an die Led mit verschiedenen 
Widerstandswerten.

MW

von Falk B. (falk)


Lesenswert?

@  Michael Wilhelm (Gast)

>Wenn es nur um die Helligkeit geht und nch ein paar Portpins zur
>Verfügung stehen, dann mit 2 Pins an die Led mit verschiedenen
>Widerstandswerten.

Genau. Das noch mit Schieberegistern kombiniert und alles ist paletti.

AVR-Tutorial: Schieberegister

MFG
Falk

von Sören (Gast)


Lesenswert?

Die PWM-Funktionalität zum Dimmen der LEDs muss leider erhalten bleiben, 
da ich später die Helligkeit softwareseitig verändern können muss. Die 
Lösung nur über Vorwiderstände funktioniert also nicht...

von Sören (Gast)


Lesenswert?

Achja: Der Kunde erwartet hohe Qualität, also benötige ich unbedingt 
eine Konstantstromregelung, damit die LEDss nicht unterschiedlich hell 
sind.

von Raoul D. (Gast)


Lesenswert?

@Heino:

TI ist die Abkürzung für Texas Instruments

von Matthias L. (Gast)


Lesenswert?

>Der Kunde erwartet hohe Qualität, also benötige ich unbedingt
>eine Konstantstromregelung, damit die LEDss nicht unterschiedlich hell
>sind.

Der Kunde??

Dann gehört das in das FOrum Markt

Qualität != Konstantstromquelle

von Falk B. (falk)


Lesenswert?

@  Sören (Gast)

>Achja: Der Kunde erwartet hohe Qualität, also benötige ich unbedingt
>eine Konstantstromregelung, damit die LEDss nicht unterschiedlich hell
>sind.

TLC5922.

von Sören (Gast)


Lesenswert?

Mit Konstantstromregelung meinte ich im Prinzip nur, dass LEDs, die 
gleich hell sein sollen auch wirklich gleich hell sind. Aufgrund der 
Proportionalität von Strom und Helligkeit lässt sich das meiner Meinung 
nach nur z.B. über einen LED-Treiber erreichen, der einen konstanten 
Strom "treibt", oder?

von Karl H. (kbuchegg)


Lesenswert?

Sören wrote:
> Also ein Software-PWM kommt meiner Meinung nach nicht in der Frage, weil
> der µC auch noch weitere Berechungen durchführt, unter anderem soll er
> über CAN kommunizieren.

Und?
Bei 7 bis 12 Led und 16 Stufen braucht eine Soft-PWM über den Daumen
noch nicht mal 5% Rechenleistung. Ich wage mal die Behauptung, dass
dein restliches Programm die Soft-PWM noch nicht mal bemerken wird.

von hans (Gast)


Lesenswert?

Hallo Sören,

einfach eine "Additive PWM" verwenden. Pro LED ein Zähler (8 Bit).
Timer Interrupt für Zeitfenster (z.B. 1 ms).
Im Interrupt Zähler + PWM-Wert. Den Überlauf (Carry-Bit) auf den port
ausgeben. Besonderst im mittleren Bereich gut zu glätten.
Für beliebig viele Ausgänge möglich.

Gruß hans

von K. B. (kbf)


Lesenswert?

Im angehängten Link ist ein Programmbeispiel, das zu deinem Fall gut 
passen würde und sehr wenig Rechenleistung braucht.

http://www.mikrocontroller.net/articles/Soft-PWM


MfG
Karsten

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.