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)
ups - da hab ich den ersten Beitrag nicht richtig gelesen :-(, vergesst, was ich geschrieben habe.
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...
Catalyst Semicon: CAT310W Austriamicrosystems: AS1110 AS1109 die CAT und AS Teile kriegst du normalerweise bei Future Electronics. lg Jan
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.
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.