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
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
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.
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.
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
@ 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
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...
Achja: Der Kunde erwartet hohe Qualität, also benötige ich unbedingt eine Konstantstromregelung, damit die LEDss nicht unterschiedlich hell sind.
>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
@ 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.
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?
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.