Hallo Gemeinde, wie würdet Ihr die drei Rechtecksignal im Mikrocontroller Attiny (mit zwei Timer 1x8Bit und 1x16Bit) erzeugen? Ich benötige eine hohe Einstelldynamik in den 10% Ontime und eine Frequenz um die 120 Hz, die möglichst stabil sein soll. Das ganze soll zur Helligkeitsansteuerung einer RGB-LED verwendet werden. Die OnTime darf dabei nur maximal 10 Prozent sein und darf auf keinen Fall überschritten werden. Die Helligkeit (Ontime) kann ich via RS232 übergeben. Irgendwie stehe gerade auf dem Schlauch. Wenn ich beim 16 Bit-Timer in Fast PWM Mode als OCR1A einen maximal Wert definiere (um sicher die max. 10% Ontime einzuhalten), dann verliere ich viele Bits an Dynamik bei der Helligkeitsansteuerung. Der CTC-Modus ist auch mit sehr viel Rechnerei verbunden. Speziell dann, wenn ich mit einem Timer 2 Rechtecksignale erzeugen will. Welchen Timer Modus würdet Ihr wählen? Oder gibt es da einen Trick, wie man die Dynamik in den 10% erhöht? Würd' mich über Tipps sehr freuen, Sebastian
Hi, warum soll die ontime max 10% werden? Ich befürchte, Du verrennst Dich da in irgend etwas. Definiere mal das eigentliche Problem. Gruß Andreas
120hz und 3 Kanäle kan der auch mit SoftwarePWM -> Artikelübersicht
Sebastian schrieb: > Die OnTime ... darf auf keinen Fall überschritten werden. Dann brauchst du eine hardwaremäßige Einschaltzeitbegrenzung in Form eines Monoflops, die per Und-Funktion mit deinem µC-Ausgang verknüpft ist.
Danke für die schnellen Antworten: aus der RGB-LED kann man eine höhrere Lumenzahl herauslocken, wenn man Sie mit gepulstem Konstantstrom betreibt. Bei 100Hz wäre eine zulässig maximale Ontime 1ms. Somit bräuchte ich einen ersten Timer der alle 10ms einen Overflow generiert, um die Grundfrequenz von 120 Hz einzustellen. So jetzt brauche ich eine Möglichkeit die Ontime sehr granular einzustellen. Wohl über einen zweiten Timer. Der vom ersten gestartet wird. Jetzt habe ich meinen Denkfehler erkannt! Ich kann den Timer 2 ja dreimal starten! Jeweils neu für eine Farbe. Dann werden die Farben halt nacheinander eingeschalten! Das ist mit dem Auge nicht zu erkennen! Dann kann ich den Timer2 sehr granular einstellen. Und dreimal max. 1ms ist deutlich kleiner als 10ms. Sollte klappen. Hier wäre evtl. der CTC Mode mal gut?! Was haltet Ihr von der Idee? Oder habt Ihr weitere Vorschläge? VG, Sebastian
Hi, so etwa würde ich es angehen: Ein Timerinterrupt, der 10x so langsam ist wie die PWM, die Du mit CTC erzeugen willst. Dann in diesem Interupt die CTC Register für jeden Zyklus neu laden. Du solltest aber darauf achten, daß Du den Spitzenstrom Deiner LED nicht überschreitest (und nein, das ist in diesem Fall nicht 10 * Imax., sondern steht im Datenblatt). Deshalb meine Bedenken... Gruß Andreas
Hallo, hab' mir gerade noch den oben vorgeschlagenen Artikel durchgelesen. http://www.mikrocontroller.net/articles/AVR-Tutorial:_PWM Hier wird auch die Methode vom Andreas B. vorgeschlagen (siehe Software PWM). Ich wünsche mir aber eine Auflösung 1000 Schritten innerhalb von 1 ms. Somit würde ich jede Mikrosekunde einen Interrupt erzeugen. Da würde ich meinen Mikrocontroller ganz schön zu nageln. Selbst bei 100 Schritten würde ich noch alle 10us einen Interrupt erzeugen. Bei meiner oben vorgeschlagenen Variante gehe ich recht verschwenderisch mit den Timern um... :-( Aber es erscheint mir als absolut sicher. @Andreas B.: Danke für Deinen Tip, laut LED-Datenblatt kann der gepulste Vorwärtsstrom 4mal so groß sein wie der Dauerstrom. Wrüde mich über weitere Vorschläge und Diskussion freuen. Sebastian
Sebastian schrieb: > @Andreas B.: Danke für Deinen Tip, laut LED-Datenblatt kann der gepulste > Vorwärtsstrom 4mal so groß sein wie der Dauerstrom. > > Wrüde mich über weitere Vorschläge und Diskussion freuen. Was versprichst du dir von deinem Vorhaben? Du willst für ein Zehntel der Zeit den vierfachen Strom durch die LED schicken um sie heller leuchten zu lassen? Unterm Strich wirds dunkler!
Bei den meisten LEDs ist der ggf. mögliche Helligkeitsgewinn durch einen gepulsten Betrieb gering, sofern man es überhaupt einen gibt. Einen Nennenswert besseren Wirkungsgrad bekommt man ggf. bei sehr kleinem mittleren Strom (z.B. 0,1 mA), aber nicht in der Nähe des Nennstromes. Für mehr Helligkeit sollte man bessere LEDs nehmen oder ggf. die Kühlung verbessern, dann kann man ggf. auch mal 25 mA statt 20 mA nehmen.
Hallo Magnus, größere Helligkeit bei gepulster LED?! Also ich selber habe ich es noch nicht ausprobiert. Und das Thema wird immer wieder heiß diskutiert z.B. Beitrag "LED Kennlinie: gepulster Betrieb/mehr Strom = mehr Helligk.?" Erfahrungswerte von Euch?! Ich werde meine Posten sobald verfügbar. Sebastian
Sebastian schrieb: > größere Helligkeit bei gepulster LED?! Also ich selber habe ich es noch > nicht ausprobiert. Aber genau DAS willst du ja scheinbar erreichen, oder? Sebastian schrieb: > aus der RGB-LED kann man eine höhrere Lumenzahl herauslocken, wenn man > Sie mit gepulstem Konstantstrom betreibt.
Also es ist zum verrückt werden. Hab' jetzt mal gegoogelt zwecks Helligkeitsgewinn durch Pulsen, ohne ein echtes Ergebnis gefunden zu haben.
Sebastian schrieb: > Also es ist zum verrückt werden. Hab' jetzt mal gegoogelt zwecks > Helligkeitsgewinn durch Pulsen, ohne ein echtes Ergebnis gefunden zu > haben. Selbst wenn du mit dem vierfachen Strom die vierfache Helligkeit erzielen würdest (was in der Realität nicht möglich ist), so erhieltest du durch eine PWM mit maximal 10% On-Time nur 40% der Helligkeit im Vergleich zur Ansteuerung mit Nennstrom und 100% On-Time.
Naja, in manchen Foren wird dann mit der Trägheit des Auges argumentiert, welches die "Lichtblitze zwischenspeichert"... Irgendwie nachvollziehbar, aber ich kann aktuell dazu nichts weiter sagen.
Magnus M. schrieb: > Selbst wenn du mit dem vierfachen Strom die vierfache Helligkeit > erzielen würdest (was in der Realität nicht möglich ist), so erhieltest > du durch eine PWM mit maximal 10% On-Time nur 40% der Helligkeit im > Vergleich zur Ansteuerung mit Nennstrom und 100% On-Time. Du meinst "mittlere Helligkeit". In Anwendungen, wo es auf die Maximalhelligkeit ankommt (z.B. bei Fernbedienungen), hat der gepulste Betrieb mit kleinem Tastverhältnis deutliche Vorteile.
@Wolfgang: In seinem Fall gehts wohl um eine Beleuchtungsgeschichte: Sebastian schrieb: > Das ist mit dem Auge nicht zu erkennen!
Bei technischen Anwendungen wie Fernbedienung, Lichtschranken etc. ist es offensichtlich, dass eine gepulste LED sehr viel bringt. In meiner Anwendungen geht es tatsächlich um eine einfache Raumbeleuchtung...
@Sebastian: Was hindert dich denn daran, deine LEDs mit Nennstrom und einer 0-100% PWM zu betreiben?
Er glaubt, eine höhere Lichtausbeute damit zu erreichen.
Andreas B. schrieb: > Er glaubt, eine höhere Lichtausbeute damit zu erreichen. Dass er diesem Irrglauben verfallen ist, hat sich ja mittlerweile längst herausgestellt.
- Man nehme einen 10-bit-Timer mit 1 MHz - Man nehme den Overflow- UND den Compare-Interrupt. - Im Compare-Register steht Dein 10-Bit-Wert. - Jeder Compare Match deaktiviert nach der Ausführung den Copamre Interrupt. Das Ding schaltet sich also selbst ab. - Der Overflow hat nur die Aufgabe bis 10 zu Zählen und dann auf 0 zurück zu gehen und gleichzeitig den Overflow wieder scharf zu schalten. fertig Schwächen: 10 Bit sind 1024 und nicht 1000. Wenn es stört muß man ein bissl anpassen. Eventuell ist hier und da noch ein bisschen Feinschliff notwendig. Aber dies soll ja auch nur ein Konzept und keine Fertiglösung sein.
> Dass er diesem Irrglauben verfallen ist, hat sich ja mittlerweile längst herausgestellt. Naja, prinzipiell ist das schon denkbar. Aber eben nicht so in diesm Maße, wie der TO sich das vorstellt. Wenn man die LEDs z.B. statt mit 1A 100% PWM mit 2A und mehr als 50% PWM (sagen wir mal 60%) betreibt, wäre es vorstellbar, dass die LED das bei vergleichbarer Lebensdauer mitmacht. Das würde ich aber auch nur dann machen, wenn das Datenblatt das hergibt. Gruß Andreas
Andreas B. schrieb: > Wenn man die LEDs z.B. statt mit 1A 100% PWM mit 2A und mehr als 50% PWM > (sagen wir mal 60%) betreibt, wäre es vorstellbar, dass die LED das bei > vergleichbarer Lebensdauer mitmacht. Dabei kämpft man immer noch gegen die Verringerung des Wirkungsgrads bei Erhöhung des Stromes. Die Helligkeit einer typischen 11Cd-LED, bei 20mA normiert auf 1, liefert bei 50mA das Doppelte und bei 100mA das Dreifache, i.e. der Wirkungsgrad sinkt auf 60% des bei 20mA gemessenen Wertes.
Der Wirkungsgrads sinkt dabei natürlich. Das gilt aber immer, wenn man LEDs an der Grenze (und weit vorher) betreibt. Aber so ist das eben, wenn man kein Geld für ordentlich dimensionierte LEDs ausgeben möchte. Das zahlt man dann halt später dem EV. Gruß Andreas
@Carsten R. vielen Dank für den Tipp. Das Konzept super und spart einen Timer ein. Um die drei Farben anzusteuern (Pulsbetrieb) müsste ich dann nur drei Comparewerte nacheinander abarbeiten. In etwa so: TimerOverflow 0: Lade Compare-Wert für Rot TimerOverflow 1: Lade Compare-Wert für Grün TimerOverflow 2: Lade Compare-Wert für Blau TimerOverflow 3: Inkrement TimerOverflow 4: Inkrement TimerOverflow 5: Inkrement TimerOverflow 6: Inkrement TimerOverflow 7: Inkrement TimerOverflow 8: Inkrement TimerOverflow 9: Inkrement TimerOverflow 10: Setze Zähler zurück und starte bei TimerOverflow 0 Das sollte so klappen. Jetzt ist bloss noch die Frage offen, ob sich der Aufwand lohnt noch mal die SW umzuschreiben. Irgendwie habe ich das Gefühl, dass die meiste hier meinen es bringt nichts die LEDs zu pulsen um eine höhere Helligkeit zu erreichen. Zumindest in meiner Anwendung nicht. Warum werden dann die LED-Rücklichter bei Autos gepulst betrieben? VG, Sebastian
Das ist ein Overflow zuviel. 0 bis 10 sind in der Summe 11. Beachte wann der neue Compare-Wert geladen wird. Wenn der Overflow kommt und die ISR startet, ist der Timer je nach Teiler/Prescaler im nächste Zyklus. Dann wird der neue Compare Wert erst für den Folgezyklus übernommen, wenn er durch den Overflow geladen wird. Dadurch wird alles um einen Zyklus zeitversetzt. Das sollte Dir eigentlich egal sein. Aber man sollte es im Hhinterkopf behalten, sollten Merkwürdigkeiten auftreten wenn die Software noch andere Sachen macht. Daher wäre es in dem Falle dann besser, wenn der neue Compare-Wert schon durch die Compare-ISR geladen wird. Sebastian schrieb: > Irgendwie habe ich das Gefühl, dass die meiste > hier meinen es bringt nichts die LEDs zu pulsen um eine höhere > Helligkeit zu erreichen. Zumindest in meiner Anwendung nicht. > > Warum werden dann die LED-Rücklichter bei Autos gepulst betrieben? Das macht man auch nicht um die Dinger heller zu bekommen, sondern um die Leistung zu drosseln und um sie dunkler zu bekommen, ohne die Spannung runterregeln zu müssen.
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.