Glättung für PWM-Dimmer mit Arduino und Buck an CREE

  • ich versuche mit geringem wissensstand betreffend LED, mikrocontroller und elektrotechnik einen dimmer für highpower-LEDs zu bauen.
    eigentlich soweit alles fertig und funktionsfähig: arduino gibt über einen PCA9685 ein PWM an eine KSQ, an welcher CREE-LEDs hängen.


    ABER: das dimmen der LEDs ist mir zu stufig bzw ruckelig oder "eckig".


    das liegt vielleicht daran, dass meine steuereinheit (ein auf ArtNet basiertes system) nur 8bit sendet (256 stufen).
    da ich das aber nicht ändern kann, habe ich damit experimentiert, den ausgang der KSQ zu "glätten".


    ich hab einfach mal einen kondensator mit 10000µF/16V hinter die KSQ gesteckt (siehe bild) und es scheint zu funktionieren.
    zumindest leuchten die LEDs beim faden brav und sanft hinauf und hinunter (sie glimmen allerdings etwas länger ganz schwach nach, was aber nicht stört).


    allerdings bin ich mir aufgrund meines wissensstandes über keinerlei möglicherweise auftretende nebenwirkungen bewußt.


    kann mir jemand sagen, ob sich aus dieser schaltung langfristig probleme bei einem der bauteile ergeben könnten, oder ist das so einigermaßen brauchbar?


    ich verwende diese KSQ: BUCK Konstantstromquelle (350mA, 30V)


    danke & lg


  • Ist jedenfalls das einfachste was du machen kannst... Sieht ganz brauchbar aus... Der Kondensator sollte halt nicht zu warm werden... Manche Bucks haben noch einen sehr großen Ripplestrom. Wenn ein Kondensator mit großem Innenwiderstand abfängt, kann das schon recht auf die Lebensdauer deines Kondensators gehen... einfach mal im Betrieb probefühlen...


    Grüße


    Basti


    P.S. 0-255 Stufen ist eigentlich gar nicht so wenig... vielleicht liegts eher am Art-Net Signal...

  • Die KSQ gibt den LED Strom eigentlich nicht analog zur PWM aus.
    Wenn die PWM an der LED zu sehen ist, ist wohl eher die PWM-Frequenz zu niedrig. Da würde ich zuerst ansetzen.
    Auch bei 8-Bit PWM sieht man nicht jede Stufe. Die unteren Stufen sind da eher zu sehen als die oberen.


    Der Kondensator ist ein bisschen groß. Wenn ich das Datenblatt noch richtig im Kopf habe sollte 1µF den Ripple schon um den Faktor 2 bis 4 reduzieren. Ich würde auch eher eine Keramikkondensator einsetzen als einen Elektrolytkondensator.


    Der Regler auf der Buck ist ein Zetex Diodes ZXLD 13XX glaube ich.


    Hier schon mal das Datenblatt des 1360. Die anderen sollten vom System her gleich sein.

  • ich würde erstmal an der pwm ansetzen, damit die mit mindestens 200Hz arbeitet. die 8bit auflösung heisst ja nur dass du in 255 stufen dimmen kannst.
    ich habe die ksq nicht vor mir, aber hat die nicht eh schon einen shunt-C drauf? ansonsten wäre dieser Kondensator geeignet.


    Edit: oh, jetzt würfel ich die sachen auch noch durcheinander.. also nochmal langsam. Die leds flackern nicht, wenn du sie auch ziemlich weit runter gedimmt hast? dann wäre deine pwm frequenz in ordnung. der richtige ansatz wäre hier, einen Kondensator zwischen ADJ und GND zu setzen auf der KSQ.

  • vielen dank für die vielen rückmeldungen. gut zu wissen, dass ich mit dem kondensator nichts grillen kann. ;)
    das teil wird bei mehreren stunden testbetrieb nicht spürbar wärmer.

    Zitat

    "Die KSQ gibt den LED Strom eigentlich nicht analog zur PWM aus."

    was bedeutet das im detail? ist das eine nennenswerte abweichung?

    Zitat

    "Wenn die PWM an der LED zu sehen ist, ist wohl eher die PWM-Frequenz zu niedrig. Da würde ich zuerst ansetzen.
    Auch bei 8-Bit PWM sieht man nicht jede Stufe. Die unteren Stufen sind da eher zu sehen als die oberen."

    nun ja, daran bastle ich noch.
    wie auch Stoffel geschrieben hat: ich muss mir das mit der PWM-freuquenz nochmal genauer anschauen.
    diese ist momentan softwareseitig (arduino-library für PCA9685 von adafruit) sehr niedrig eingestellt, da ich es bei höheren freuquenzen nicht geschafft habe mit PWM-werten unter 30 die LEDs überhaupt zum leuchten zu bringen.
    als ich die PWM-frequenz jedoch gesenkt habe, leuchtete das ganze schon ab dem wert 2.
    auch ist mir noch nicht ganz klar, wie ich das überhaupt genau berechnen muss.
    das arduino-ethernet-board das ich verwende, ist angeblich mit 16MHz getaktet, nicht mit 25MHz wie das arduino-UNO.
    das board mit dem PCA9685 hat auch eine einstellbare PWM-frequenz (PRE_SCALE register, kapitel 7.3.5 auf seite 24 des datenblattes ).
    was ich nicht weiß ist, welchen takt die von mir verwendete KSQ überhaupt sinnvoll verwerten kann und wie ich das genau berechnen soll.


    das eigentlich problem bleibt aber bestehen, denn egal mit welcher frequenz ich das ganze betreibe, ist ein fade kein fade, sondern immer ein stufiges schalten des helligkeitswertes (vor allem im niedrigen bereich).
    ich hab auch schon versucht das dimmen mittels exponentieller kurve zu bewerkstelligen, aber das hilft nur bedingt und bringt andere nachteile mit sich.


    deswegen bin ich eben bei der variante mit dem kondensator gelandet, um eben diese stufen zu glätten.


    im moment betreibe ich das ganze mit 350mA KSQ, aber letzlich will ich das volle lichtpotenzial der LED ausschöpfen und die mit 700mA betreiben, wodurch man den stufen noch deutlicher sehen dürfte.


    ich werde das nochmal genauer mit der PWM-frequenz testen, aber im moment werd ich aus noch nicht ganz schlau aus den datenblättern und formeln um die PWM-freuquenz zu berechnen mit der ich die KSQ ansteuern sollte.

  • Moin.
    Du solltest dir mal von Diodes das Datenblatt von dem verbauten Steuer-IC anscheuen. Da ist recht genau beschrieben, wie du die Helligkeit mittels PWM einstellst. Je nach verbautem Treiber-IC gibt es hier Unterschiede.
    Ich vermute, dass hier ein ZXLD1360 verbaut wurde. In dem dazugehörigen Datenblatt ist recht gut beschrieben, wie dieser an einem µC angeklemmt wird und wie er mittels PWM angesteuert wird.


    Gruß

  • HI,
    Ich hab das Datenblatt mal überfolgen und ab Seite 113 wird der 16-BitTimer Counter beschrieben, der auch 16-Bit PWM zulässt, also 65536 Zwischenwerte.
    lg SOl

  • Abseits von dem Thema mit den Stufen beim Dimmen würde mich brennend interessieren, wie du den ArtNet Teil der Ansteuerung gelöst hast.
    Bekommt das Arduino direkt ein ArtNet Signal, das es in PWM umwandelt?
    Und hast du die Software dafür selbst geschrieben?
    Wäre super nett, wenn du dazu noch kurz was schreiben könntest :)
    Bin auf jeden Fall an einem Nachbau interessiert, wenn das Problem mit dem Dimmen noch gelöst werden kann :thumbup:
    Gruß
    Tim