Ich möchte eine Power LED Beleuchtung für mein Zimmer bauen.
Die Beleuchtung soll dimmbar sein von praktisch aus bis max. Helligkeit.
Aufgebaut wird dies aus mehreren einzelnen Leuchten (ca. 6). Auf jeder
Platine sitzt dann ein ATtiny13, MOSFET und eine 3W Power LED (I =
350mA)gesteuert über einen Bus (welcher weiß ich noch nicht). Gedimmt
werden soll mit dem 8Bit Timer im PWM Modus am OC0A Pin. Zur Umsetzung
habe ich hier noch ein paar Fragen.
Mit welcher Frequenz sollte der PWM betrieben werden sodass die LED auch
im dunkel gedimmten Bereich nicht sichtbar blinkt?
Um einen flüssigen Helligkeitsübergang zu bekommen muss man die LED
Logarithmisch dimmen. Wie rechne ich das dann genau aus welcher Wert ich
ins OC0A Register einsetzten muss?#
Was für einen Bus wäre zur Kommunikation zu empfehlen?
mfg
PS: Die anderen Fragen fallen mir gerade nicht mehr ein.
> Mit welcher Frequenz sollte der PWM betrieben werden sodass die LED auch> im dunkel gedimmten Bereich nicht sichtbar blinkt?
normal sieht man ab 100 Hz nichts mehr, aber dank HW-PWM kann man auch
ein paar Herz höher gehen!
> Um einen flüssigen Helligkeitsübergang zu bekommen muss man die LED> Logarithmisch dimmen. Wie rechne ich das dann genau aus welcher Wert ich> ins OC0A Register einsetzten muss?#LED-Fading> Was für einen Bus wäre zur Kommunikation zu empfehlen?
z.B. RS485 (geht über UART) + z.B. MAX485> mfg
MFG Mixer
Hallo,
baue mir gerade fast das gleiche nur ein bischen komplizierter :D
Mein Projekt:
USB zu DMX Sender = Bus Master
Meine Slaves sind ebenfalls Attinys2313 an deneen jeweils ein 3 Kanal
(Rot Grün Blau) Schalttreiber sitzt Bis zu 1A pro Kanal.
Auf dem Tinny läuft jeweils DMX Client Software mit einem eigenen Kanal
-> getrennt Steuerbar.
Da mein PC nicht immer läuft bin ich gerade dabei mein Projekt um ein
Standalone DMX Sender (Basis Atmega32) zu erweitern der fest
abgespeicherte Programme zu den Clients sendet oder halt einfach nur ein
Fading ;).
Als Verkabelung (bitte steinigt mich nicht) nutze ich nich XLR wie DMX
typisch sondern Netzwerkkabel da super praktisch und günstig.
Habe mir einen 8fach Verteriler gebaut.
Hier wird das DMX Signal und Spannung eingespeist und an die Clients
verteilt.
Adern 1+2+3: VCC
Ader 4: D+
Ader 5: D-
Ader 6+7+8: GND
Bei den stärkeren Clients nutze ich getrennte Spannungsversorgungen.
Bei fragen einfach melden. ;-)
Danach einfach die drei Kanäle mit
OCR0A=0-255;
OCR1A=0-255;
OCR1B=0-255;
benutzen. Allerdings wird dir Code Kopieren nicht viel bringen.
Würde dir lesen lesen und Datenblatt büffeln und oben genannten Link
empfehlen ;)
Greetz
Hallo Mixer,
>normal sieht man ab 100 Hz nichts mehr, aber dank HW-PWM kann man auch>ein paar Herz höher gehen!
Bei Glühlampen, die nachleuchten, magst du recht haben, aber bei LEDs
ist das anders. Das Flackern ist besonders störend und ermüdend, wenn
man den Kopf bewegt. Dann fällt das Licht der flackernden LED im Auge
auf unterschiedliche Sehstäbchen und das Flackern wird sichtbar.
Ich würde die Frequenz möglichst hoch wählen.
Kai Klaas
Hardware-PWM kann man auch im kHz-Bereich betreiben, da sieht man nix
mehr Flackern.
Im Zweifelsfalle ne Glättung mit Diode und Kondensator reinbauen,
Gleichstrom flackert garnicht.
Ja würde problemlos funktionieren.
Allerdings ein hinweis zum Tiny 2313 der hat im Fast PWM einen kleinen
Fehler. Bei absolutem 0 Punkt hat der immernoch kleine High Spikes drin.
Gestern leider erst selbst am Oszi festgestellt.
Kannst also nicht absolut auf 0 dimmen.
Lösung 1:
PhaseCorrect PWM (So habe ich es gemacht da shcon 10 Attinys gekauft)
Lösung 2:
Atmega8 verwenden ;-) Hast auch gleich mehr Speicher zur Verfügung und
Mehrpreis ist fast nicht nennenswert.
Andreas Klepmeir schrieb:
> Hardware-PWM kann man auch im kHz-Bereich betreiben, da sieht man nix> mehr Flackern.> Im Zweifelsfalle ne Glättung mit Diode und Kondensator reinbauen,> Gleichstrom flackert garnicht.
Thema verfehlt...
wenn ich dich recht verstehe willst du das Rechteck PWM Signal in ein
Gleichstromsignal mit variabler Spannung 50% High und 50% Low bei 5V =
ca 2,5 Volt wandeln?
Schonma ne LED über Spannung gedimmt?
Dann werde ich mich morgen einmal daran setzten und werde wenn ich
"fertig" bin dann meine ersten Versuche einstellen.
Danke euch allen fürs erste einmal.
Hab ich doch schonma gesagt....
...aber nochma
Der tiny2313 hat anscheinen ein Fehler im Fast PWM Mode
Wenn man eine 0 setzt sollte eine Flatline bzw ein dauerhaftes Low aus
dem Port kommen. Aber wenn man sich das Signal auf dem Oszi anschaut hat
man minimale Spikes im Signal. -> Led glimmt ganz leicht und geht nie
ganz aus!
Dieser Fehler besteht im PhaseCorrect PWM nicht.
Bei einem anderen AVR z.B. dem Mega 8 würde ich aber natürlich Fast PWM
Mode vorziehen aber bei genanntem Tiny entweder Glimmende LED oder auf
den Phase Correct.
@Rafa
Das hat Matthias Kuny oben schon erklärt ;(
@alle
Eine PWM-Frequenz von mehreren kHz ist zwar möglich
erhöht aber nur die Schaltverluste. Einige 100 Hz reichen
aus, dann geht auch phase-correct.
avr
Matthias Kuny schrieb:
> Lösung 1:> PhaseCorrect PWM (So habe ich es gemacht da shcon 10 Attinys gekauft)>> Lösung 2:> Atmega8 verwenden ;-) Hast auch gleich mehr Speicher zur Verfügung und> Mehrpreis ist fast nicht nennenswert.
Lösung 3:
Ausgang invertieren. Dann bekommst 0, dafür nicht mehr 100%. Das sieht
aber kein Mensch.
100Hz sind im Übrigen nicht sooo problematisch, wenn man nicht direkt in
die LEDs schaut. Osram verwendet bei seinen Treibern beispielsweise 150
- 500Hz, je nach Typ. Je höher die Frequenz, desto grösser sind halt die
EMV-Probleme und allenfalls die Schaltverluste. Ersteres ist aber recht
unkritisch, wenn du die LED eh gleich beim Treiber hast (= Keine
Antennen dazwischen).
Philipp Burch schrieb:
> Lösung 3:> Ausgang invertieren. Dann bekommst 0, dafür nicht mehr 100%. Das sieht> aber kein Mensch.
Gute Idee warum bin ich da nicht drauf gekommen :D
Werde ich ma versuchen setze bei mir sowieso Negierte ULNs ein :D
Danke :)
@Matthias Kuny
Das mit dem "Spike" ist kein Fehler sondern Systembedingt bei
allen AVR im Fast-PWM-Mode.
Steht auch so in den Datenblättern!
Hier von Atmel:
Datenblatt Mega8 Timer2 Fast PWM
avr schrieb:
> @Matthias Kuny>> Das mit dem "Spike" ist kein Fehler sondern Systembedingt bei> allen AVR im Fast-PWM-Mode.> avr
Man lernt nie aus...
THX :)
Matthias Kuny schrieb:
> wenn ich dich recht verstehe willst du das Rechteck PWM Signal in ein> Gleichstromsignal mit variabler Spannung 50% High und 50% Low bei 5V => ca 2,5 Volt wandeln?
Fast.
Die Spannung fällt ja nie unter die Durchbruchspannung der LED, die
Spannung lässt sich also nicht per PWM Steuern.
Dafür aber der (Effektiv-)Wert des Stroms, und die Flanken desselben
würde ich gerne per Kondensator die Flanken verschleifen. Das vermindert
bei kleinem Duty-Cycle das harte ein-ausschalten und bei größeren geht
die LED in den Pausen nicht mehr aus.
> Schonma ne LED über Spannung gedimmt?
Mit Vorwiderstand kein Problem, oder?
Hallo,
auch ich bin grade an einem ähnlichen Projekt. Bei mir sinds RGB-Power
LED's + weiße Power LED's. Aufgebaut ists auch nach dem Master-Slave
Prinzip. Der Master beseht momentan aus einem Mega 168 soll aber bald
auf einen Mega32 erweitert werden. Der Master wird über ein 4 zeiliges
LCD und 4 Tasten bedient. Außerdem ist an ihn ein externes
Schaltnetzteil mit 24V angeschlossen, dass die Versorgungsspannung
bereitstellt. Außerdem ist ein Schaltregler im Master, der die 5V
versorgungsspannung für seine eigene Logik und die der Slaves
bereitstellt. Über ein 5 poliges Kabel mit DIN Stecker gehts dann zu den
Slaves (momentan hab ich nur einen dran hängen, ist aber mit meheren
getest). Die Datenübertragung erfolgt auf 2 Adern per RS485. Als
protokoll verwende ich SNAP http://www.hth.com/snap/. Das ist sehr
ausführlich dokumentiert und für meine Zwecke ausreichend. Der Slave der
momentan in betrieb ist besteht aus einem mega48 und einem tiny2313. Die
unschöne Lösung mit 2 µC habe ich deswegen gewählt weil ich keinen AVR
mit den benötigten 4 16bit PWM Kanälen dahatte. Das haben nur 1 oder 2
recht exotische typen. Eine 16 bit PWM hab ich widerum gebraucht weil
mir bei Versuchen mit 8 bit PWM aufgefallen ist, dass man bei
logarithischer Verteilung der Dimmwerte und langsamen Übergängen eine
Sichtbare Abstufung hat. Das Dimmen wirkt "ruckelig". Mit 16 bit kann
man dagegen bei 255 dimstufen fast beliebig lange Übergänge machen. Aber
wie gesagt hatte ich das problem nur weil ich pro Slave 4 Kanäle wollte.
Wenn du nur einen Kanal je Slave willst reicht auch ein recht kleiner
Controller. Bei mir dient der Mega48 im Slave als Empfänger der die
Steuerbefehle entgegennimmt und verwurschtet und dem Tiny per TWI nur
noch sagt wechen seiner beiden 16 bit PWMs er auf welchen wert stellen
soll. Die andren beiden Kanäle übernimmt der Mega48. Außerdem sind im
Slave noch 4 Konstantstromquellen auf basis des LM317. Das ist sicher
auch noch eine Optimierungsbedürftige Lösung da die Konstantstromquellen
fast 30 % der Gesammtleistung "verheizen". Aber IC's die speziell zur
Stromregelung von Power-LED's entwickelt worden sind und zB im
Automobilbau eingesetzt werden sind nur in winzigen SMD-Bauformen
erhältlich und das übersteigt meine (derzeitigen) Bastelfähigkeiten.
Geplante erweiterungen sind übrigends:
- Künstlicher Sonnenaufgang zu bestimmter Zeit als Weckfunktion
- Dimmabfolgen verschiedener Farben aus Speicher automatisch abarbeiten
- USB - Anschluss zur Konfiguration über PC Software (momentan in
Arbeit)
- Helligkeitssensor der bei unterschreiten eines Schwellwertes
automatisch die Beleuchtung anschaltet
Ich hoffe ich konnte damit ein paar anregungen zu deinem Projekt geben.
Marc
@Matthias Kuny
Ok, ich hätte die Frage anderst stellen müssen. Aber egal.
@Marc Riedlinger
Damit konntest du sehr viele Anregungen geben, soweit hatte ich noch
garnicht gedacht. Danke dir. Dann werde ich meinem Projekt wenn die
Dimmung und Kommunikation mit dem Master klappt noch ein paar Dinge
hinzufügen.