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
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?
Die Int-Routine macht nur die RC5 Dekodierung. Warscheinlich irgrndwelche defines. Ich bin nicht der Profi.
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
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.
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
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.
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.
@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
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?
Sorry, hier noch mal im ZIP Format. Ich das Layout und die Schaltung mal mit reingepackt. Grüsse Lothar
>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
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.
@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.
>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
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
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/Konstantstromquelle#Konstantstromquelle_mit_Komparatoren)? 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.
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
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.
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?
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.
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.
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?
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.
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
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((
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
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
Viel Erfolg!! Und wenns eng wird, da gibts auch noch zwei größere Brüder.
Vielleicht geht ein USI als UART zu vergewaltigen, oder Du implementierst 'ne SoftUART. Da habe ich hier schon Beispiele gesehen.
ja aber ohne quarz? würde dann scon an dmx oder so denken. das sind aber 250kbaud
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.
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.
@ 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?
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
Schwingungen... Mist! Ich habe ein 24V System vor gehabt es damit zu ersetzen... grummel
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
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.