Forum: Mikrocontroller und Digitale Elektronik 10 RGB-LED Dimmer Ansteuerung für Raumbeleuchtung


von Paul K. (fluctuation)


Lesenswert?

hallo Leute,
ich plane schon seit langem eine Beleuchtung für mein Zimmer zu basteln.
Hab mir 10 RGB-LEDs bestellt (4-Pins) und benutze einen AtMega 8.
Möchte jede LED einzeln ansteuern und die Helligkeit jeder der 
30-Leitungen einstellen können (um zu dimmen oder um andere schöne 
Effekte zu machen).

Was diesen Beitrag von anderen unterscheidet ist, dass ich die LEDs an 
einer langen Leitung (20-30m) verteilen möchte (unregelmäßig).

Das heißt einfach, dass ich multiplexen vergessen kann, weil ich nicht 
2km lange Leitungen brauch (+ dicke Kabelbündel).
Geeignet wäre ein Bussystem zu nutzen. Da hab ich an SPI oder I2C/TWI 
gedacht.
Quasi nach dem Schema:

_____
|mega8 |     1te RGB-LED mit R  10te RGB-LED mit R
|      |       _____|__            _____|__
|  mosi|-------|in  out|--[...]----|in  out|--.
|  sck |----o--|sck    |        .--|sck    |  |
|  miso|-.  |  |_______|        |  |_______|  |
|______| |  |_____________[...]_|             |
         |____________________________________|

Ich bin mir nicht sicher ob ein Schieberegister oder eine direkte 
Ansteuerung der RGB-Dimmer-Bausteine besser geeignet ist und ob es an 
den letzten Baustein noch ankommen wird (max. 30 m).
Ich weiß auch nicht was für ein RGB-Dimmer Baustein ich verwenden soll 
(gibt es spezielle Bausteine, die 3/4 Out-Pins haben und die Helligkeit 
über PWM oder Analogstrom (direkten Strom) einstellen können?)

Ich hab schon daran gedacht 10 AtTinys (ein Tiny pro LED) zu kaskadieren 
und den Master-µC die PWM übernehmen zu lassen, aber ist es dann noch 
angenehm oder flimmert es dann jeden zu Tode?

So, wie es auf meiner Skizze dargestellt ist, brauch ich nur 5 Leitungen 
vom µC zur nächsten LED und von der LED zur nächsten LED und so weiter 
zu verlegen. (VCC, MOSI, SCK, MISO, GND) Das wäre ideal so (1-2 
Leitungen mehr wären verträglich).

Daten:
[RGB-LED]
Durchlassspannung rot........................2,05V
Durchlassspannung grün.......................3,6V
Durchlassspannung blau.......................3,6V
Durchlassstrom...................................20mA

[Netz]
5.2V, 2.5A

Hoffe, dass mir jemand eine oder andere Vorgehensweisen vorschlagen 
kann.

Danke in Voraus
Grüße, Paul

von Nixweiss (Gast)


Lesenswert?


von Gast (Gast)


Lesenswert?

Man könnte auch sehen, dass man 10 ganz billige 6beinige AVR nimmt und 
jeweils die Erzeugung der PWM in Software macht. Die können dann per 
RS232 verbunden werden (vielleicht sogar mit TTL Pegel). Da es die 
kleinen AVRs (glaube ich) mit internen Taktgebern gibt, könnte man das 
mit einem 3adrigen Kabel machen (2x Versogung, 1x Kommunikation)

von Gast (Gast)


Lesenswert?

ups - da hab ich den ersten Beitrag nicht richtig gelesen :-(, vergesst, 
was ich geschrieben habe.

von Paul K. (fluctuation)


Lesenswert?

so ein SDMX5124 Baustein scheint genau das Richtige zu sein... finde es 
aber etwas mager mit 16 Helligkeitsstufen, doch damit könnte ich leben 
:)

Das Problem bei diesem Baustein ist: Wo kriegt man es? Hab bei 
reichelt/conrad/csd-electronics geguckt..nöx und im google 
recherchiert... auch nöx in Germany... muss wohl iwo aus dem Ausland 
herschaffen dann...uhh... wollte max 20€ investieren.. ob es dann 
klappt...

von Jankey (Gast)


Lesenswert?

Catalyst Semicon:
CAT310W

Austriamicrosystems:
AS1110
AS1109

die CAT und AS Teile kriegst du normalerweise bei Future Electronics.

lg Jan

von Paul K. (fluctuation)


Lesenswert?

naja.. CAT310W, AS1110 oder AS1109 können zwar mehrere RGB-LEDs 
ansteuern, doch dann müsste ich wiederum mehrere Leitungen von einem 
RGB-Modul zum nächstem verlegen oder einfach die Pins unbenutzt lassen, 
was ziemlich ineffizient ist. Es sollte schon linear sein.
Dennoch, danke für die Vorschläge...könnte ich darauf zugreifen, falls 
keine bessere Alternative gefunden wird...^^

von Fabian B. (fabs)


Lesenswert?

Warum nimmst du nicht SPI mit z.B. hc595 oder wenn mehr power gebraucht 
wird tpic6c595 von TI. das sind einfache SIPO Schieberegister.
Ob die 30m funktionieren sollte sich ja mit 30m Kabel und einem SR gut 
testen lassen, bevor du alles aufbaust.
Die Helligkeitsregelung machst du dann einfach per Software PWM. 90 
Kanäle lassen sich schon noch Flimmerfrei machen. Ich mache mit einem 
Mega32 bei 16MHz knapp 120 Kanäle mit je 96 Stufen und da flimmert auch 
nix.

/edit: Wenn du ein Ossi zu Verfügung hast, kannste beim Testaufbau dir 
mal die CLK Flanken anschauen, wenn die nicht zu verschlust ausschauen, 
sollte es gehn.

Gruß
Fabian

von Paul K. (fluctuation)


Lesenswert?

ich hab leider kein osszi.. aber notfalls könnte ich ja zwei SPI 
Leitungen verlegen.. das Zimmer ist ja eckig...^^ und dann eben von der 
Schaltzentrale in zwei Richtungen verlegen (links / rechts).. ist kein 
Problem...

ich hab gleich die Porterweiterung abgeschoben, weil ich dachte, dass es 
mit PWM flimmern wird bzw. unkoordiniert verläuft.

ich werde mir einfach 25 hct595 bei csd-electronics bestellen für 
12.25€...
damit wäre ich voll zufrieden ^^

gut...

Vielen Dank

PS: ich warte mit der Bestellung ein paar tage... wer weiß...

von Fabian B. (fabs)


Lesenswert?

für 30 LEDs brauchst du ja nur 4x 595er... und die kosten bei Segor z.b. 
ab 10stk nur 24c, also 6€ für 25stk.
wenn du nur 10 oder so brauchst kann ich dir auch welche schicken...
Aber denk dran, die können nur insgesamt 75mA pro Baustein. Kann bei 
normalen Leds knapp werden, du hängst nur 4 oder so an einen Baustein.

Darum hab ich die TPIC Serie von TI genommen... die können 100mA pro 
Port (ja, is schon wieder etwas oversized, aber besser so als 
andersherum) ;-)

Gruß
Fabian

von Paul K. (fluctuation)


Lesenswert?

75mA wunderbar.... ich brauch nur 60mA (3x20mA) und notfalls kann man ja 
Transistoren benutzen... werden die den heiß, wenn man 75mA übersteigt?
ich mach mir da keine Sorgen...
ich werd mir so 20-25 Stücke bei Segor bestellen.. find ich super... 
Porterweiterungs-ICs kann man immer irgendwo verwenden...

thx,
Grüße Paul

von Stefan K. (_sk_)


Lesenswert?

Ich bezweifle, dass die Idee mit dem SPI-Bus eine gute Idee ist. Dieser 
SDMX-Chip ist vom Prinzip her wesentlich sinnvoller. Du musst ja nicht 
DIESEN Chip nehmen, nimm einen Tiny und programmiere ihn so ähnlich.

3 LED-Kanäle per PWM ansteuern dürfte nicht sonderlich schwierig sein. 
Der große Vorteil davon: über den Bus musst Du nur die Änderungen 
schreiben, und nicht ALLE PWM-Signale.

Ein RS485-Single-Master-Bus (wie DMX) ist sehr einfach, zur Not kannst 
Du den RS485-Transceiver (0,50€) auch weglassen und die reinen 5V 
verwenden.

Wenn Du es darauf anlegst, kannst Du sogar die Treiber-Transistoren 
weglassen (jede LED mit 2 Pins + Vorwiderstand ansteuern).

Und wenn Du ganz mutig bist, lässt Du auch noch den Quarz weg ...


Eine andere Lösung ist die Verwendung von "fertigen" >LED-Chips, z.B. 
TLC5922 von TI. Damit hast Du fast keine Arbeit, ausser die Teile 
herzubekommen.

Wenn Du unbendingt Wert legst auf PWM-über-SPI:
nimm statt den 74HC595 die TPIC6B595, die haben bereits 
Treibertransistoren eingebaut und sind auch bei Segor erhältlich.


Gruß, Stefan

von Paul K. (fluctuation)


Lesenswert?

btw. danke fürs Angebot.. aber ich muss mir sowieso noch 2 endliche 
Drehencoder und ein unendlichen bestellen und vllt auch einen 
LCD-Display für die Schaltzentralle...^^
So erspare ich dir Transportkosten  :D

Grüße, Paul

von Paul K. (fluctuation)


Lesenswert?

wartet... der Tiny hat ja zwei PWM...und mir reicht ja einer um die drei 
Kanäle anzusteuern...liege ich da richtig?
Ich hab zuvor irgendwie gedacht, dass man drei PWM Kanäle braucht....
Wenn das mit 1 PWM Kanal stimmt, find ich diese Umsetzung auch gut.
Den könnte man auch per I2C ansteuern, doch dann ist die Anzahl der 
Bausteine in einem Bus auf 8 beschränkt denk ich. Aber Schieberegister 
tuts ja auch...

Kann ich das Verhalten eines AtTiny mit Mega8 simulieren?
Damit ich schon vor der Bestellung seh, ob es klappt.... (hab zusätzlich 
einen mega8 und mega16 im Lager^^ )

Ich schau dann ma weiter...

Danke
Paul

von Frank E. (erdi-soft)


Lesenswert?

Nur so als Anregung:

http://nw.com/nw/triklits/

Würde dafür auch nen tiny13 nehmen. Allerdings benötigst du schon 3 mal 
PWM, je eine für Rot, Grün und Blau. Sonst sind alle 3 Farben immer 
gleich lang an und du dimmst nur weiß in verschiedenen 
Helligkeitsstufen.

von Stefan K. (_sk_)


Lesenswert?

Du brauchst nicht unbedingt PWM-Ausgänge, um Deine LED-PWM zu erzeugen. 
Normale Timer reichen vollkommen. Dazu musst Du natürlich den 
Timer-Interrupt programmieren.
Aber da ausser 3 LED-Kanäle zu schalten kaum Arbeit für den Tiny 
anfallen, ist das kein Problem.

Bei der Ansteuerung per PWM noch beachten:
der visuelle Helligkeitseindruck ist nicht linear. Das heisst:
Halbierst Du die PWM-On-Zeit von 100% auf 50%, dann wird die LED Dir 
nicht halb so hell vorkommen, sondern nur einen Tick dunkler als bei 
Vollansteuerung. Um halb so hell zu wirken, musst Du die PWM auf ca. 25% 
runterfahren. Wenn Du bei niedrigen Werten die Helligkeit noch ohne 
sichtbare Abstufung ändern willst, solltest Du mindestens eine Auflösung 
von 1:1000 vorsehen.

Gruß, Stefan

von Jankey (Gast)


Lesenswert?

abgesehen desto länger die Kette beim 1Wire desto länger wird auch das 
durchschieben da du keine Strobe Leitung besitzt ... ( möglicher 
Sichtbarer fehler zb am 1mS )

von Florian K. (flo_k)


Angehängte Dateien:

Lesenswert?

Hallo Leute,
der Beitrag ist zwar schon ein bisschen älter, aber ich denke das passt 
hier gut rein. Hab dieses auch vor ein paar Wochen begonnen ohne von 
diesem Beitrag zu wissen. Mein Ansatz ist ähnlich. Jede LED bekommt 
einen Attiny25 als begleiter an die Hand. Die prof. gefertigte 
Leiterplatte von Q-PCB (P.S. mit KiCad entflochten -> Super gei... 
Programm) beherbergt den Controller, 3 Vorwiderstände und die LED. Der 
Controller erzeugt 3 unabhängige 8-bit PWM's per Software (derzeit 
300Hz). Als Schnittstelle dient SPI, mit der geringsten Geschwindigkeit 
die beim ATmega16 (Steuercontroller/RS232->SPI-Umsetzer) einstellbar ist 
(96kb/s in meinem Fall, da 8Mhz Quarz). Die Attiny's laufen übrigens mit 
dem eingebauten PLL auf 16Mhz. Das Protokoll ist ganz Simpel. Die 
Attiny's zählen jeden SPI-Überlauf mit und speicher jeden 10ten Wert als 
ihren. Es werden nacheinander R-G-B Werte übertragen. Gesteuert wird die 
"Videowall" am Schluss per USB und einem Windowsprogramm aus eigener 
Hand. Per USB/RS485 Converter wird das Signal auf die LED-HUB's 
verteilt. Jeder dieser HUB's kann schätzungsweise 10 LED-Stränge á 10 
RGB-LEDs ansteuern (Auch vom Strom her gesehen). Am Schluss sollten 
theoretisch 800 LED's / USB ansteuerbar sein (3Mbit - FTDI-Umsetzer).
Über Anregungen bzw. eure Meinungen würd ich mich freuen.

von flo_K (Gast)


Lesenswert?

update

von Florian K. (flo_k)


Angehängte Dateien:

Lesenswert?

Hallo,
anbei ein Video auf dem ich 7 LED-Module zusammengeschaltet habe und 
einen KnightRider-Effekt mit Rot erzeuge. Den RGB-Beweis hab ich schon 
zuvor "hochgeladen" ;-). Hier sieht man das jedes Modul für sich 
ansteuerbar ist.

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
Noch kein Account? Hier anmelden.