mikrocontroller.net

Forum: Projekte & Code PowerLED PWM mit RC5 Fernbedienung


Autor: Lothar Lehmann (lole)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo World,

hier mal mein letztes Bastelprojekt. Die Steuerung eines LED Clusters 
mit einem ATTiny25, PWM mit Stromregelung mit 8Bit und 125Khz. Über eine 
RC5 Fernbedienung können 10 (log) Leuchtstärken und Off ausgewählt 
werden. Mit Vol+/- geht auch ein Finetuning. Insgesamt billiger als ein 
fertiges Modul und passt locker in eine Streichholzschachtel. Die RC5 
Routinen sind von Peter Dannegger, vielen Dank dafür, wenn auch sehr 
tricky. Ich musste die Compileroptimierung abschalten, um ein RC5 Signal 
zu erhalten. Vielleicht wissen die Profis einen Rat.

Grüsse Lothar

Autor: Di Pi (drpepper) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mit Peters RC5 Teil keine Probleme, auch mit Optimierung. 
Vielleicht fummelst du sonst zuviel per Interrupt rum, sodass die 
RC5-Routine von Peter aus dem Takt gerät?

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Int-Routine macht nur die RC5 Dekodierung. Warscheinlich 
irgrndwelche defines. Ich bin nicht der Profi.

Autor: Di Pi (drpepper) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peters RC5-Routine macht mehr als nur defines. d.h falls du noch ISRs 
mit höherer priorität hast, funken die der RC5-dekodierung dazwischen

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du hast die die Sourcen nicht angeschaut, es gibt keine weiteren INTs. 
Die external in RC5.h wird nicht richtig interpretiert. Macht aber auch 
nix, der AVR ist auch ohne Optimierung nicht voll.

Autor: Lothar Lehmann (lole)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Wenns interessiert, hier noch die Schaltung.

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab den Code jetzt nur überflogen, aber du benutzt einen I-Regler um 
dem LED Strom zu regeln?

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, ein I-Regler reicht hier vollkommen aus und ist so schnell, dass ich 
für Änderungen der Helligkeit eine Rampe eingebaut habe. Der Strom wird 
sehr gut gehalten, das PWM Signal flattert schon ein bisschen. Ich habe 
auf einen guten Wirkungsgrad Wert gelegt. Bei 1A fallen nur 200mV am 
Shunt ab. Normale Stromquellen (Step down Regler) brauchen da schon mal 
1,2V wegen der internen Referenz. Der Tiny kann 20fach verstärken und 
hat einen high-speed Timer mit 64MHz. Die 125kHz PWM lässt auch die 
Speicherdrossel schön klein ausfallen. Bei 1A ist keine nennenswerte 
Erwärmung von FET, Drossel und Shotkydiode feststellbar.
Grüsse
Lothar

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gut zu wissen, ich habe nämlich ähnliches vor, für eine Fahrrad Lampe
Ich war mir nur nicht sicher, ob die Auflösung der PWM reicht um der LED 
kennlinie gerecht zu werden, aber offensichtlich geht es ;)
Bei mir wirds ne Luxeon K2 in Weiß ;) maximum 1,5A.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
dafür würde ich aber lieber ein LED Treiber nehmen, habe ich auch 
gemacht. Diesen führe ich dann das PWM signal vom Tiny zu.

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Hauke
Der eingesetzte FET schafft 5,8A bei 50mOhm. Eine dickere L und D, dann 
ist auch mehr Leistung drin. Atmel lädt sogar Akkus damit, AN450. Da 
sieht man auch, wo die Vorteile vom Tiny 25(15) sind, die PLL für den 
Timer. Beim Radeln brauchst Du doch sowiso immer full Power. Die log. 
Helligkeitsanpassung fällt weg und Du regelst Deine 1,5A. Ich stehe z.Z. 
auf Cree, in weiß bis zu 120 Lumen/Watt und fertig auf Star. Die 
Wärmeableitug würde ich so nie hinkriegen, ohne Lötofen.

@Peter
Klar, geht auch. Ich nehme oft das, was ich noch rumzuliegen habe. 
Deswegen auch verschiedene Bauformen der Rs und Cs, von 0603 bis 1206. 
Und da sammelt sich im Laufe eines Bastlerlebens so Einiges an.

Grüsse
Lothar

Autor: Herbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist mir etwas peinlich: das auf meinem Windows-System installierte 
Flizip kann die 7z-Datei nicht öffnen. Kann jemand das 7z-Format in das 
ZIP-Format konvertieren und posten?

Autor: Lothar Lehmann (lole)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Sorry,

hier noch mal im ZIP Format. Ich das Layout und die Schaltung mal mit 
reingepackt.

Grüsse
Lothar

Autor: Herbert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank Lothar!

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Die RC5
>Routinen sind von Peter Dannegger, vielen Dank dafür, wenn auch sehr
>tricky. Ich musste die Compileroptimierung abschalten, um ein RC5 Signal
>zu erhalten.

Da fehlt ein volatile bei rc5_data. Mit (ganz) früheren gcc-Versionen 
funktionierte das auch so mit eingeschalteter Optimierung, die neueren 
optimieren gnadenlos alles weg.

Oliver

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja ich hab schon ne Plateine für die geschichte entwickelt und alles, 
aber dann nicht weiter gemacht weil ich dachte mit der PWM auflösung von 
8 bit könnte man den Strom nicht genau genug regeln.

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Oliver
Mit den defines habe ich so meine Schwierigkeiten, was wo wie 
definieren, damit der Compiler nicht meckert. Peter hat rc5_data als 
external in der RC5.h definiert. Das müsste dann wohl raus und die 
volatile def in der RC5.c definiert werden.

@Hauke
Wie ich oben schon mal gesagt habe, der Strom wird sehr gut geregelt. 
Die PWM schwimmt wahrscheinlich um den Sollwert rum und der ADC macht 
10Bit. die 10µ glätten bei 125kHz auch ganz gut. Probiere es einfach 
mal, rein optisch sieht es sehr gut aus. Die Grenzen mußt Du austesten, 
zu wenig oder zu viel, dann spinnt die PWM. Für die PWM ist auch die 
Eingangsspannung wichtig. Ein paar Volt mehr können nicht schaden. Bei 
1A habe ich 9,1V an den LEDs, knappe 3V für den StepDown Wandler. 15V 
wären bestimmt besser. Das 12V Netzteil war aber grade da und hat in das 
Lampengehäuse gepasst.

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Mit den defines habe ich so meine Schwierigkeiten, was wo wie
>definieren, damit der Compiler nicht meckert.

rc5.c:
[c]volatile uint rc5_data;[c]

rc5.h:
[c]extern volatile uint rc5_data;[c]

Oliver

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Oliver,

der Compiler hat das erst mal ohne zu meckern geschluckt. Da die Lampe 
schon montiert ist, kann ich es nicht mehr testen. Wird schon 
funktionieren.
Vielen Dank für Deine Hilfe.

Grüsse
Lothar

Autor: Strahlemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Lothar,

Hast du mal ein paar Fotos oder Videos von dem Treiber im Einsatz - 
würde mich mal brennend interessieren?

Könnte man zur not auch einen anderen Tiny nehmen? Einen ohne PLL für 
hohe Frequenzen?

Was hällst du/ihr von der Kamparator Konstantstromquelle aus dem 
Konstantstromquellenbeitrag im Wiki 
(http://www.mikrocontroller.net/articles/Konstantst...)? 
Gut, die ist erst einmal nicht regelbar, aber ich hätte den Fall, das 
ich LEDs nicht regeln möchte, sondern sie eben einfach nur an bzw ab zu 
schalten.

Autor: Lothar Lehmann (lole)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier ein Foto. Meine Knipse hat im Makrobereich nicht seine Stärken.
Ein Tiny ohne PLL schafft natürlich keine PWM mit 125kHz, dann muss die 
Induktivität deutlich größer ausfallen.
Eine Stromregelung mit StepDown-IC geht auch, Du verbrätst aber bei den 
meisten 1,25V am Shunt. Bei 1A sind das 1,25W. Meine Schaltung verbrät 
dafür 0,2W. Muss jeder für sich entscheiden. Die freie 
Programmierbarkeit für Softstart usw. ist auch ein Vorteil. Bei mir war 
es eben auch die RC5 Steuerung. Ein Bild folgt noch.

Grüsse
Lothar

Autor: Lothar Lehmann (lole)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Und das versprochene zweite.

Autor: Strahlemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Frage nach dem Tiny kamm, da ich min. 2 Kanäle und nene UART 
brauche..

und da sieht es beim Tiny 25 schon schlecht aus - leider

PS das sind aber keine CREEs, sieht eher nach Osrams aus. Hab in der 
letzten Zeit viel mit Edison Optos (die benutzen auch CREE Chips in 
manchen Modellen) gemacht.

Autor: Strahlemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Frage habe ich noch zu deinem Schaltplan. Was mach die Diode 
zwischen T4 und dem BSS138?
Willst du damit den Leistungstransi schneller zum sperren bringen?

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Neee, das sind keine Cree, auf die bin ich später gekommen. Super Teile 
aus China, auf Star und keine 5€..... nur der Zoll, Horror. Die, wie Du 
richtig erkannt hast, eingesetzten Osrams kann ich mangels Lötofens auch 
nicht so gut kühlen. Deshalb relativ viel Zinn und eine 0,5mm PCB.
Schau Dir mal den ATtiny261 an, 3 PWM Outputs mit 8/10Bit High Speed 
Timer. Ein Universal Serial Interface ist auch dabei. Bei 20 Beinchen 
ist recht viel möglich, steht schon auf meiner nächsten CSD Wunschliste.

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zur Diode. Das ist eine Standarttreiberschaltung, die durch eine 
negative Basisspannung den Transi sehr schnell sperrt. Hast Du richtig 
erkannt. Deswegen musste das auch ein BiPo Transi sein. Sonst nehme ich 
lieber FETs, da brauche ich keine Basiswiderstand. Auf dem Oszi sahen 
die Flanken recht gut aus, deswegen wird auch nichts warm.

Autor: Strahlemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kann man den FET nicht direkt treiben? Der hat doch nur eine sehr 
geringe Gate-Kapazität.

Hat der ATtiny261 auch solch eine PLL für schnelles PWM?

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar geht auch eine passive Ansteuerung, dann müsste der R, der dann 
zwischen Gate und Source des P-FETs liegen würde, wesentlich kleiner 
ausfallen, was den Wirkungsgrad drückt. Atmel macht das beim Akku-Lader 
so, AN450 glaube ich.
Der T261 macht High Speed PWM, ob die PLL auch mit 64MHz läuft... da 
müsste ich auch ins Datenblatt schauen. Der Shunt könnte noch kleiner 
ausfallen, da der ADC auch eine Gain von 32 kann. Alles im Interesse 
eines guten Wirkungsgrades ;o)) Ich weiß, mann kann es auch übertreiben.

Autor: Strahlemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, steht gleich auf dem Deckblatt "3 High Frequency PWM Outputs with 
Separate Output Compare Registers"

Sind die Vorwiderstände an jedem LED-Strang unbeding notwendig? hab 
schon viele Parallelschaltungen ohne gesehen. z.B. in den neuen Crees 
(MCE glaube ich), da wo man die Cores in reihe oder parallel schalten 
kann

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmmmm, Reihenschaltung macht gar keine Probleme, es fliest ja überall 
der gleiche Strom. Bei Parallelschaltung scheiden sich die Geister. Die 
Kennlinien sind bei diesen Stromstärken schon recht steil. 50mV 
Spannungsdifferenz erzeugen eine recht große Stromdifferenz. Ich habe je 
Strang zwei 1 Ohm Rs, also 0,5 Ohm. Ich bin aber der Ansicht, dass das 
nicht nötig ist. Wen interessiert es, wenn in einem Strang 320mA fließen 
und im andern nur 280mA. Wenn ich sie einsetze, bin ich auf der sicheren 
Seite. Der Wirkungsgrad sinkt allerdings :o((

Autor: Strahlemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich glaube, ich versuche mal mein glück und baue mal was mit dem 
Tiny261 auf. Vielleicht sogar 3 kanalig. Die Idee ist einfach spitze. 
Hab vorher immer mit nem LM2xxx gemacht - aber so kann ich sogar noch 
eine Regelung und ggf auch einen Bus zur Steuerung unterbringen

Autor: Strahlemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach mist - der hat nur einen USI und keinen UART. da kann ich den ja 
maximal als SPI/I²C Slave benutzen. Dachte schon ich könnte dem nen 
RS485/232 spendieren. Schade

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Viel Erfolg!!
Und wenns eng wird, da gibts auch noch zwei größere Brüder.

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht geht ein USI als UART zu vergewaltigen, oder Du 
implementierst 'ne SoftUART. Da habe ich hier schon Beispiele gesehen.

Autor: Strahlemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja aber ohne quarz? würde dann scon an dmx oder so denken. das sind aber 
250kbaud

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Du an kein Protokoll gebunden bist, wäre SPI doch eine gute Wahl. 
Bei niedriger Bitrate und RS232 TreiberIC sind mit Sicherheit auch 
größere Entfernungen überbrückbar. Der interne RC Takt ist recht gut und 
kalibrierbar. Bei Bitsynchronisation sind +/- 10% kein Problem, das 
zeigt die RC5 Routine.

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei SPI hat man das problem ja erst garnicht weils eben ne Serielle 
Synchrone schnittstelle ist (eben mit Taktsignal) deswegen ists kein 
problem den internen Takt zu verwenden.

Autor: Strahlemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Lothar Lehmann
Sorry das ich diesen "Alten" Fred wieder anwärme, aber wie sieht es mit 
dem Projekt aus? Läuft alles noch? Hast du Änderungen (HW/SW) eingebaut 
oder Erfahrungen sammel können?

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Never touch the running system...

Deswegen habe ich nichts mehr daran gemacht, auch wenn die nächste 
Software anders aussehen würde. Was bei 12V Ub noch sauber lief, zeigt 
bei 15V in der höchsten Stufe Einschwingerscheinungen.
Aber das Teil ist an der Decke, da fallen Experimente aus.
Gruß Lothar

Autor: Strahlemann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schwingungen...
Mist! Ich habe ein 24V System vor gehabt es damit zu ersetzen... 
grummel

Autor: Lothar Lehmann (lole)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sicher machbar, dann krebst die PWM aber bei recht kleinen Werten rum. 
Ich würde erst mal die Induktivität vergrößern und die Stromregelung in 
feineren Schritten machen. Durch die exp. Kennlinie ist der Schritt von 
8 nach 9 am Größten. Ich habe Wert auf geringe Programmgröße gelegt, 
würde ich jetzt anders machen. Eine feiner abgestufte Tabelle und eine 
aufwendigere Berechnung. Z.B. acht Stützwerte pro Stufe. Je nach 
Helligkeitssprung dann alle, jeden zweiten, vierten o. achten Wert 
nehmen. In der Art etwa.
Try and error. 5-6 Leds in Reihe würden auch gehen.
Gruß Lothar

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.