LED-Beleuchtung (mit gutem Wirkungsgrad) mittels Arduino via I²C steuern.

  • Hi.


    Nachdem ich schon die ein oder andere Beleuchtung auf LED umgestellt habe möchte ich mich nun an eine Steuerung der Beleuchtung wagen.


    Da ich sowas noch nicht gemacht habe und auch keinen Überblick über die Vielzahl der verschiedenen Möglichkeiten und Bauelemente habe wollte ich meinen Wunschzettel hier kurz vor- und zur Diskussion stellen.


    Rahmenbedingungen:

    • Versorgungsspannung 12V DC
    • Möglichst hoher Wirkungsgrad.
    • Steuerbare Kanäle (>30), Lichtquellen verteilt
    • Einfache Verkabelung (Bus System)
    • Dimmbar
    • Monochrom
    • Unterschiedliche LEDs und damit Ströme. (80-150mA)

    Basierend auf diesem Rahmen habe ich folgende Überlegungen angestellt:
    Steuerung: Adruino.
    + geringe Stromaufnahme
    + I²C (zu erwartende Leitungslänge < 10m
    + Verfügbarkeit


    I²C -Bus
    + einfache Verkabelung
    ggf. plus Bus-Treiber zwecks Erhöhung der möglichen Leitungslänge.


    Steuerung der LEDs über I²C-LED-Treiber.
    Z.B.: PCA9532
    + reichlich Kanäle
    - keine 12V
    - nur 25 mA


    Die Kombination Adruino mit einigen PCA9532 scheint auf den ersten Blick vielversprechend. Die Ziele Bus-System, einfache Verkabelung etc. sind erfüllt.
    Was der PCA9532 allerdings nicht her gibt ist Betrieb an 12V und Ströme > 25mA.
    Daher war mein Gedanke mit den PWM-Ausgängen des PCA9532 keine LEDs direkt zu betreiben sondern eine PWM-dimmbare KSQ zu steuern, wie z.B. den PT4115.


    Könnte sowas funktionieren? Macht es Sinn?
    Welche Probleme sind zu erwarten?
    Was gibt es an Alternativen? Andere Teiber, anderer Bus/Protkoll?
    Den WS2811 hatte ich mir schon angeschaut, aber soweit ich das gute Stück verstehe arbeitet es zum Dimmen als Linearregler was dem Punkt guter Wirkungsgrad entgegen spricht.


    Nun freue ich mich über jede Meinungen, Hinweis, Idee.


    Danke im voraus.
    Peter

  • Wenn du die Spannung auf 24V erhöhst, kannst du selbst mit einem Linearregler noch relativ gute Ergebnisse bekommen (Grund: an 12V sind es 3 LEDs + Widerstand/KSQ, an 24V bekommst du 7 LEDs + KSQ/Widerstand - und wenn du ein regelbares Netzteil hast und das auf 26V erhöhst, schaffst du vermutlich sogar 8 LEDs + KSQ/Widerstand)


    Gegen die Spannungsproblematik kann man noch etwas ankommen, wenn man einen Treiber benutzt, der GND-durchschaltet und nicht VCC - der sieht dann nämlich nur die Differenz zwischen Vcc und V_led und das ist häufig <5V.

  • Hi,
    arbeite gerade an etwas ähnlichem...
    je 8 HP LEDs in Reihe an ca 27v bei ca 350-400mA.
    COntroller ist ein ArduinoNano, Schnittstelle ist I2C, angesteuert wird ein PCA9685 LED Treiber, hinter diesem stecken die TLE4242 Konstantstromquellen.
    Mit einem PCA kannst 16 Kanäle steuern, dank I2C 64 PCAs in Reihe.


    Einziges PRoblem könnte die Kabellänge werden: I2C funktinioniert über längere DIstanzen nicht mehr zuverlässig oder gar nicht, es sei denn man baut Verstärker dazwischen.


    BG
    THorsten

  • Hi.


    Erstmal danke für die Antworten.


    Fakrae:
    Guter Gedanke das mit GND zu schalten. Weist Du zufällig welcher Treiber das kann?
    Spannung 12V ist fix, da KFZ-Bordnetz.


    Currymuetze:
    Das klingt ja bis auf die Versorgungsspannung nach dem was ich vorhabe.
    Der 9685 ist wohl ungefähr das gleiche wie der 9532 nur mit 12 Bit = 4096 Helligkeitsstufen.


    Ob der Leitungslänge mache ich mir wenig sorgen. Zum einen brauche ich keine hohe Busfrequenz und ein Problem dass es mir den Massepegel hoch zieht habe ich bei der vorhandenen Masseleitung auch nicht. Und mehr als 3 Stränge a max 4-5m kommen bei mir auch nicht zusammen.
    Mit welcher Kabellänge rechnst Du?
    Hast Du zufällig mal gemessen was Treiber und KSQ im Leerlauf verbrauchen, also wenn LED auf 0 gedimmt?


    Gruß,Peter

  • Guter Gedanke das mit GND zu schalten. Weist Du zufällig welcher Treiber das kann?


    GND durchzuschalten heißt aber auch, dass auf jeder Leitung Plus-Potential liegt. Daher wäre es aus Sicherheitsgründen sinnvoller, Plus durchzuschalten damit auf jeder Leitung nicht Dauerplus liegt.



    Ob der Leitungslänge mache ich mir wenig sorgen. Zum einen brauche ich keine hohe Busfrequenz und ein Problem dass es mir den Massepegel hoch zieht habe ich bei der vorhandenen Masseleitung auch nicht. Und mehr als 3 Stränge a max 4-5m kommen bei mir auch nicht zusammen.


    Aber du hast gerade im Auto massig Störungen im Boardnetz. Die 12V sind nur Nennspannung, im Betrieb liegt sie gewöhnlich zw. 13V und 14V und kann kurzzeitig auch über 15V steigen. Durch die Störungen im Boardnetz kann auch die Polarität kurzzeitig sich umdrehen und es könnte Störspannungsspitzen bis an -100V geben. Daher die Versorgungsspannung des <was auch immer es sein wird> entsprechend filtern und den Bus symmetrisch aufbauen, also 2 Leitungen mit einer Spannungsdifferenz (s. RS485, CAN). Das hieße, das I2C-Protokoll physikalisch auf z. B. RS485 zu bringen und am anderen Ende wieder zurück. Das macht die Sache störunempfindlich und entsprechend weit kommt man damit bzw. deswegen wird im Fahrzeug der CAN-Bus verwendet. Auch ein paar Meter I2C und parallelliegenden anderen Leitungen und deren Magnetfeld induzieren dir Spannungen auf dem Bus .... das war sooo nicht geplant^^