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
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)
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...
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...^^
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
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ß...
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
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
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
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
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
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.
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
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 )
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.
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.
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