Hallo liebe Forengemeinde, weil es noch nicht genug Moodlight-Projekte gibt wollte ich das Meinige hier auch mal vorstellen. Ich halte es für nichts spektakuläres, es könnte aber als nette Übung für Anfänger dienen. Das Programm ist schon ein paar Jährchen alt und stellt nicht den Anspruch perfekt zu sein. Gedacht ist das ganze, um es anstatt einer normalen Glühbirne in eine „FADO“-Lampe von Ikea einzubauen (http://www.ikea.com/de/de/catalog/products/80096372). Ich habe (hoffentlich) alles angehängt, was man für den Nachbau braucht (Sourcecode, AVR Studio Projekt, Schaltplan, Layout). SOFTWARE: Die Software ist für einen Atmega8 @ 8MHz geschrieben. Davon hatte ich noch welche und die mußten weg. Die Software ist aber problemlos auf einen tolleren Atmega88 umzuschreiben. Folgende Features sind in der Software implementiert: - Sinusförmiger Blendverlauf (bringt nicht viel, war nur zum Ausprobieren) - Bedienung mit nur einem Poti und einem Taster - 8 verschiedene Modi - Automatische Auswahl des zuletzt gewählten Modus beim Wiedereinschalten - LED-Test-Funktion Beschreibung der einzelnen Modi: 1. Sanftes Überblenden rund ums Farbdreieck (rot, gelb, grün, cyan, blau, pink, weiß, rot…) 2. Sanftes Überblenden, konstanter Phasenversatz zwischen den Grundfarben von 120° 3. Hartes Umschalte bzw. Mischen der Farben wie bei Modus 1 4. Stroboskop 5. Rot einzeln auf- und abblenden 6. Grün einzeln auf- und abblenden 7. Blau einzeln auf- und abblenden 8. Direkte Farbwahl, kein Blendvorgang Bei Modus 1-7 ist die Geschwindigkeit über das Poti einstellbar, bei Modus 8 kann über das Poti eine Farbe, des unter Modus 1 beschriebenen Verlaufs, direkt ausgewählt werden. HARDWARE: - Ich bin KEIN begnadeter Layouter. Es kommt aber ja hauptsächlich dadrauf an, daß es funktioniert. Das Layout hab ich komplett bedrahtet gemacht und versucht möglichst viel auf eine Platinenseite zu kriegen. Das macht es einfacher, um es zu Hause mit Bastlermitteln zu fertigen. Ich habe die Platine mit der Toner-Transfer-Methode hergestellt. Gebohrt habe ich von Hand mit einem Dremel und 0,6 – 1,2 mm Bohrern. Vorher mit einer Spax-Schraube „angekörnt“. Zu Beachten: meine verwendeten Transistoren waren so gammelige Uralt-Dinger von Pollin (JC501). Die haben eine andere Pinbelegung, als „normale“ BC547 oder so. Man muß also entweder das Layout für andere Transistoren anpassen, oder man biegt einfach die Beinchen der Transistoren so, daß es zum Layout passt ;) . Das funktioniert sehr gut! - Als LEDs hab ich 3 sechsbeinige RGB-SUPERFLUX-LEDs genommen. Sowas wie diese eBay-Artikelnummer hier: 160473585868. Wer andere LEDs benutzen will muß das Layout ggf. anpassen… - Die Platine hat vier Pins für die Versorgungsspannung. Zwei davon haben eine Diode zum Verpolungsschutz drin. Die anderen beiden waren eigentlich dafür gedacht, um die Spannungsversorgung von einer Lampe zu einer weiteren durchzuschleifen. Das funktioniert auch, aber ich hab Abstand davon genommen, weil man dann immer mehr Dioden in Reihe hätte. Man kann natürlich die Dioden gegen Drahtbrücken ersetzen ;) . - Alle Vorwiderstände für die LEDs sind gleich. Warum? Rot hätte eigentlich (rein rechnerisch) einen größeren R bekommen, als Grün und Blau. Weil mir das Rot aber im Verhältnis zu dunkel war hab ich einfach alle Widerstände gleich „klein“ gemacht. An die Messwerte erinnere ich mich nicht mehr so genau, ich glaube Rot zog 22mA, Grün und Blau 18mA oder so… - Ach ja, die Spannungsversorgung: 5V, ca. 200mA So, wenn noch irgendwas fehlt einfach Bescheid sagen oder Fragen fragen. Vielleicht hat ja jemand Freude am Nachbau oder an der Weiterentwicklung =) Gruß, Joachim
Sehr schön gemacht, das Projekt werde ich bestimmt mal in Angriff nehmen, wenn die Tage kälter und länger werden. Besten Dank für das Bereitstellen der Dateien.
Moin, ich hatte am WE ein wenig Zeit und hab mir diese Projekt mal vorgenommen. Habe lediglich die Transistoren durch ULN2803 ersetzt und benutze 4 SUPERFLUX-RGB Leds. Es läuft hervorragend und sieht einfach klasse aus!! Besten Dank Joachim !! mfg Cecky
@Daniel: freut mich, wunderbar :) . Mach doch mal ein paar Fotos von deinem Aufbau, würde mich interessieren :) . Gruß
Ein kleiner Verbessungsvorschlag zu Modi 8, wäre denkbar über poti den gesamten Farbspektrum "durchzufahren" ? also nicht nur die Farben die im Modi 1 hinterlegt sind ? Wäre klasse !!
@Joachim: Auch auf die Gefahr hin mich hier zum Honk zu machen, hab ich mal ein Bild vom Endprodukt gemacht. Die Funktion sollte dir ja bekannt sein :-) Da ich das ganze zuerst in eine Lampe aus dem Baumarkt setzen wollte, musste alles auf ne Platine mit ne Kantenlänge von 55mm passen. Da ich leider keine Erfahrung im Platinenätzen habe, und dies in der Mietwohnung auch nicht anfangen möchte, blieb nur Lochraster. Ich würde den Aufbau aber als kreatives Chaos bezeichnen wollen :-) mfg Cecky
Hallo, schönes Projekt, klappt wunderbar - danke. Ich musste aber feststellen das die Fusebits nicht automatisch mitgeflasht werden. Für den fortgeschrittenen User oder bei "frischen" AVR kein Problem. Sollte aber der total unbedarfte Anfänger (mit einen einfachst Programmer) einen AVR nutzen der vorher auf externen Quarz "gefuset" wurde wird er ein Problem bekommen da der AVR nicht arbeiten wird (externer Quarz nicht vorhanden). Ein Hinweis wie die Fuses eingestellt werden müssen (nachkontrolliert werden) wäre sicherlich hilfreich da es sicherlich einige (wenige) hier gibt die die Schaltung einfach nur nachbauen wollen und keine tiefergehende Kenntnisse bezüglich des AVRs haben. Sind eigentlich die absoluten Grundlagen aber für den "nur Nachbauer" der froh ist den ATMega mit Ponyprog und einfachst Programmer irgendwie programmiert zu bekommen nicht unbedingt selbstverständlich. mfg "AVR Fan"
@Daniel: hey, das sieht doch wunderbar aus :) . Meine Projekte sahen bis vor einem Jahr auch noch so aus. Das mit dem Ätzen der Platinen ist aber nur halb so schlimm, selbst in Mietwohnungen. Meine Küche sieht noch Tiptop aus ;) . Aber warum hast du zwei Transistor-Arrays verbraten?! Hätten nicht eigentlich drei Transistoren gereicht? Oder treibst du jede LED einzelnd (12 Stk)? @Bastler: Hmm, ich weiß nicht so genau, was du meinst. Ich weiß, daß es da diese verscheidenen Farb... ähm... na also z.B. "RGB", "HSV" und "YUV". Meinst du das? Da hab ich leider kaum Ahnung von. Außerdem wird das Programm für Anfänger dann evtl. noch schwieriger, wenn Farbwerte erst noch durch verschiedene Systeme transformiert werden müssen, oder? Wie auch immer, wenn du dich da auskennst kannst du es ja mal versuchen einzubauen. Sourcecode ist ja oben :) . @AVR Fan: da hast du natürlich recht, auf die Fuses geh ich eher "sparsam" ein ;) ... Kann ich bei Gelegenheit mal nachpflegen. Aber andererseits: selbst ein Anfänger sollte sich erstmal mit den Fuses, als mit der PWM und dem ADC befassen. Und spätestens bei dem Verweis auf die "8 MHz" sollte man sich ja fragen, ob man das so eingestellt hat ;) . Sind ja schließlich, wie du schon sagst, die absoluten Grundlagen. Bei Gelegenheit kann ich dann ja noch eine Version für den Atmega88 hochladen. Da wird das dann mit den Fuses noch wichtiger, weil die meisten Anfänger das "DIV8"-Fusebit gekonnt ignorieren ;) ... Danke für die Anregungen und das Foto! Gruß, Joachim
@Joachim Ich hab die ULN's nur benutzt, weil ich keine Transistoren mehr in meinem Bestand hatte. Und da ich einfach Bock hatte den Lötkolben zu schwingen, hab ich genommen was da war, und das waren in diesem Fall die ULN2803 :-)
Guten Abend zusammen, Ich habe dieses tolle Projekt entdeckt, das mir soweit meine Wünsche erfüllt, allerdings bekomme ich das Programm nicht auf den ATmega32 umgeschrieben. Die "free running" variable und die Ports habe ich entsprechend angepasst aber es läuft nichts. Der ATmega32 läuft mit 8Mhz intern. Im AVR Studio bekam ich jede menge Fehler "redefinition error" im AVR Studio 5 gab es keine Fehler dies bezüglich. Hätte da jemand etwas für mich? Edit: Hat sich erledigt. War mein Fehler beim Build mit AVR Studio 5 habe ich nur "Build Solution" angeklickt und nicht "Build Projekt1". Da kann ich dann so oft Flashen mit AVR Brenner wie ich will... Ja ist schon spät ...:) Grüße, Daniel J.
Ich bin es nochmal, das Programm läuft soweit aber noch nicht ganz so wie es soll z.B. funktioniert der LED-Test nicht sowie die Stroboskop Funktion. Im Modus 8 kann ich nur zwischen rot-orange und grün mit dem Poti regeln. Hat jemand ein paar Ideen wo dran es liegt Gruß, Daniel J.
Noch eine Modifikation einer IKEA-Leuchte (in diesem Falle einer mit RGB-LED) wird hier beschrieben: http://www.heise.de/newsticker/meldung/LED-Lampe-von-Ikea-aufgemotzt-1418509.html
Moin, da freu ich mich ja, daß meine Version bisher so gut angenommen wurde :) . @ Daniel: also vorweg frag ich mich erstmal ganz akut, warum du das Programm unbedingt auf einen Mega32 bannen willst. Der ist doch viel zu... naja, wie mit Kanonen auf Spatzen zu schießen :) ! Zu deinem Problem: das klingt merkwurdig. Funktionieren denn alle anderen Modes wie gewünscht? Was genau machen der Stroboskop und der Test Modus denn (nicht)? Mal davon abgesehen, daß ich oben vergessen habe, den Testmodus zu beschreiben... Du mußt doch nur beim Strom anmachen den Taster gedrückt halten... Zeig doch einfach mal dein Programm, dann kann ich mir das mal angucken ob da vielleicht was falsch umgeschrieben wurde. @Rufus: nicht schlecht, sieht hübsch aus :) @all: ich lade demnächst (vielleicht heute) eine neue Version des Programms hoch. In der Version ist die Software weitreichend umstrukturiert und es wurde ein neuer Modus, der "Slave-Modus" hinzugefügt... näheres dazu später, man darf gespannt sein ;) ... Gruß, Joachim
Hallo nochmal, wie versprochen hier nochmal die überarbeitete Version des Moodlights. Die grundlegende Neuerung ist, daß jetzt mehrer Lampen "in einer Reihe" zusammengeschaltet werden können, so daß alle Lampen die (fast) exakt gleichen Leuchtmuster erzeugen, wie die "Master"-Lampe. Dafür hat jede Lampe einen fest definierten Ein- und Ausgang, der jeweils zum Weiterreichen der Versorgungsspannung und zum Senden/Empfangen der Farbcodes dient. Wie angekündigt ist die Software etwas neu strukturiert. Die wesentlichen Änderungen in der Software sind: - neuer Modus eingebaut (9, Slave Mode)(s.u.) - alle Farben werden als PWM ausgegeben und nicht mehr durch das direkte Schalten der Portpins (ehemals z.B. bei Mode 3, harte Farbumschaltung) - In Mode 1-8 werden die Werte für die Farben per UART rausgeschickt - ADC für Poti läuft im free-running-mode - Das Abfragen und entprellen des Tasters passiert im Timer-Interrupt Die Änderungen ander Hardware: - an die UART-Pins (RX, TX) wurden jeweil Widerstände eingebaut, um den Controller zu schützen - ein Quarz wurde eingebaut - ein 5V-Spannungsregler wurde eingebaut Zum Slave-Modus: Im Slave-Modus wartet die jeweilige Lampe darauf, das ein neuer Farbcode empfangen wird (UART-RX-Interrupt). Das der "Datenstream" aus drei Farbcodes besteht (RGB) muß ermittelt werden können, wo der Stream losgeht. Dafür dient das 9. Datenbit, was nur beim Übertragen des Rot-Codes gesetzt ist. Der empfangen Farbcode wird daraufhin an eine eventuelle weitere Lampe rausgesendet. Ist eine Lampe nicht im Slave-Modus, ist sie automatisch "Master". Das heißt sie sendet ihre Codes nur raus, ohne sich um Empfangenes zu kümmern. Zur Hardware: für die Nutzung des UART ist der externe Quarz eigentlich fast Pflicht. Ich hatte erst keine Quarz dran, aber das hat nicht zufriedenstellend funktioniert. Zumal ja jeder Controller seine eigenen Toleranzen hat. Und mit etwas Pech können zwischen des RC-Frequenzen von zwei Controllern 20% liegen...! Wichtig also: FUSES RICHTIG SETZEN! Als Verbindung zwischen den Lampen hatte ich ein 3,5mm-Klinkenkabel vorgesehen. Dabei war die Spitze mit "+" belegt, die Mitte mit Daten, und das untere Dings (Schaft?) mit "-". Damit hab ich mich an die Belegungs-"Regel" gehalten, die bei Spannungsversorgung über Klinkenstecker meist eingehalten wird (außer der Mittelteil für Daten...). Durch die Reihenwiderstände in der RX- und der TX-Leitung kann auch ein Mono-Klinkenstecker, den manche Netzteile haben, zur Spannungsversorgung benutzt werden. Auch ein Vertauschen der Sende- und Empfangsbuchsen an den Lampen ist ungeführlich. Der 5V-Spannungsregler wurde eingebaut, weil folgendwas Problem auftrat: bei minderwertigen Klinkekabeln geht eine Menge Spannung auf der Strecke bis zur letzten Lampe verloren, wenn man versucht, die 5V direkt durchzuschleifen. Ich hatte bei zwei Slave-Lampen mit je 3m Zuleitung am 1. Slave nurnoch 3,8V, und am 2. sogar nurnoch 3,2V. Das führt dann dazu, daß diese Lampen durchschnittlich "roter" erscheinen, weil die grüne und die blaue LED eine höhere Durchlassspannung haben, als rot. Das ist auch in dem Video zu erkennen... Da hatte ich den Umbau mit dem 5V-Spannungsregler an jeder Lampe noch nicht vorgenommen. So, das wars erstmal. Viel Spaß damit! Gruß, Joachim
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.