PWM-Beschaltung mehrerer LEDs

Gast #772155
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
Gast #772177
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.
Gast #772218
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...
Gast #772927
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?
#772952
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.
Gast #772966
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.