Angekettet Stimmungslicht mit high-Power RGB LEDs (9 / 11 schritt)

Schritt 9: Anschließen der Meister Lampe


Die Slave-Lampen funktionieren nicht ohne master-Karte. Kann es sein, eine gute Idee, zuerst die Meister Lampe vor dem Zusammenbau alle Sklaven arbeiten, aber ich sollte habe dir gesagt, dass frühere should't I. na gut, ich bin sicher, dass Sie dachte, dass Sie sich selbst.

Das einzige Unterschied von der Meister Lampe zu den Slave-Lampen ist, dass in ihm gibt es ein anderer Mikrocontroller (oder Sie können auch Arduinos in alle Slave-Lampen und hochladen (angepasst) Slave Code zu den Slave-Lampen). Es ist auch die einzige Lampe, die einen USB-Anschluss und einen IR-Empfänger hat.
Ich die original Mini-USB-Buchse vom Brett entfernt und Wrap Kabel (alle anderen kleinen Kabel werden in Ordnung sein), verbinden es mit 5cm Kabel dazwischen. Ich habe die Dremel-Tool machen ein Loch in die Lampe um die USB-Buchse zu passen, damit ich die master-Software aktualisieren können, ohne die Leuchte zu öffnen. Auf der gegenüberliegenden Seite habe ich ein Loch groß genug für den IR-Empfänger aber klein genug, so dass von außen es einfach wie einen kleinen schwarzen Knopf sieht. Es ist eine gute Idee, den IR-Empfänger über in der Mitte zwischen der Naht der beiden Hälften und der Unterseite der Lampe platzieren.
Schließen Sie den IR-Empfänger an GND, 5V und den Signalausgang auf Pin mit dem Arduino digital Pin 8 (verbunden mit den timer1 input Capture Interrupt).

Haken der NFET Transistor auf dem Arduino: verbinden Sie das Tor mit digital Pin 13 und die Quelle zu GND Der Bach verbindet an den negativen Eingang des Ventilators. Verbinden Sie den positiven Eingang des Ventilators auf dem Arduino 5V Pin. Ja, es ist ein 12V Fan aber bei 5 v es schafft genügend Luftstrom um die LED gekühlt zu halten und es schafft fast keinen Lärm. Wenn dein Fan auf 5V nicht funktioniert, schließen sie die 12V-Leitung (was übrigens auch für alle Slave-Lampen richtig ist).

Verwendung zwei 1,5 k Ohm Widerstände und als Pullups verbinden: eine von SDA (analoge Pin 4) von SCL (analoge Pin 5) auf 5V 5V zu. Dies sind die Pullups für den I2C-Kommunikationsbus. Wenn Sie diese einmal vergessen, wird die serielle Kommunikation nicht funktionieren. Verwenden Sie nicht den Arduino internen Pullups, sie sind zu schwach (diesen Satz zu ignorieren, wenn Sie nicht über die internen Pullups des Arduino, kennen sie durch Software aktiviert und es spielt keine Rolle, wenn sie aktiviert sind oder nicht, wenn Sie externe Pullups Löten).

Die PWM-Signale werden mit timer1 (rot und grün) und timer2 (blau) generiert. Die Pins gesteuert werden digital Pin 9 (rot), digitale Pin 10 (grün) und digital Pin 11 (blau).
TIMER1 ist ein 16-Bit-Timer, geben Ihnen 65'536 Farbe Schritte, was mehr als genug ist (über 12 Bit sehe Sie keinen "Farbe springt" Beim Dimmen) aber timer1 ist nur ein 8-Bit-Timer. Am Anfang hatte ich beide laufen in 8-Bit-Modus, aber das sah ein bisschen beschissen, weil unsere Augen logarithmisch sind und die LED linear ist, was bedeutet, dass Sie eine Änderung von 2 bis 4 als eine größere Änderung in der Helligkeit als ein Wechsel von 200 bis 255 wahrnehmen. In der Realität die 256 Stufen von Helligkeit, wenn in einer logarithmischen Weise geschehen Ihnen nur über 12-13-Farbwerte (in der Theorie, in Wirklichkeit ist es ein paar mehr) pro Kanal, wodurch insgesamt 13 ^ 3 = 2197 unterscheidbaren Farben. Klingt nach viel, aber es ist nicht.

Ich gehe jetzt ein wenig ins Detail über den Code, wenn Sie nicht vertraut mit Hardware-Timing und Timer-Sachen sind, zu überspringen.
Ich habe das Internet für ein paar Stunden versucht, eine Software-Methode um den 8-Bit-Timer zu erhöhen finden, aber alle von ihnen vorstellen Jitter-Fehler aufgrund von Softwareverzögerung, die führt zu häufigen Flackern einer LED, die nicht akzeptabel ist. Ich setzte mich dann und schrieb meinen eigenen Code um eine höhere Auflösung zu erhalten. Ich fand, dass für die niedrigeren Werte Software Verzögerungen sind zu langsam, auch Interrupts sind nicht schnell genug (wir sprechen einzelne cpu Clock Präzision hier). Es könnte vielleicht in Assembler getan haben, aber ich wollte nicht gehen diesen Weg, Nein, Sir.
Ich habe stattdessen einen Trick (die ich durch Zufall entdeckt, und jetzt schon ein bisschen stolz bin), die der Timer nicht sofort aktualisieren die vergleichen mit Register aber haben einen Puffer, nur auf den nächsten Timer-Überlauf zu aktualisieren. Mit diesem im Verstand ich timer2 Overflow zu synchronisieren, Timer zu überprüfen und machen eine 16-Bit Timer aus einer 8-Bit-Timer, aber kann auch sein 12bits oder 13Bit. Dies fügt eine Menge CPU-Last, aber der Meister Lampe braucht nur zu hören in der IR, Befehle aussenden und generieren PWM, die alle meist in der Hardware erfolgt, so gibt es genug Zeit tun Farbe Berechnungen und Sachen in der Zwischenzeit. Mit einem Arduino CPU-Taktfrequenz von 16Mhz und einem Timer Prescaler 8 (mit einem Vorteiler von 1 die CPU-Auslastung zu hoch, weil Interrupts jeder 256 Zeitgeberticks bekommt) ist die PWM-Frequenz 2MHz/(2^13) = 244 Hz (für die Slave-Lampen, es nur 122 Hz, da sie auf 8 Mhz laufen ist) was in Ordnung ist (100 Hz ist das Minimum, um kostenlose Lichter flackern zu bekommen).

Gut, so wir eine Software / Hardware-Kombination PWM-Ausgang mit einer 13-Bit-Auflösung haben, was uns 8191 lineare Farbe Schritte für jede einzelne Leuchte dadurch 254 logarithmische Stufen (die Auflösung ist eigentlich zu hoch und die unteren Werte verwenden die gleiche Anzahl von Zeitgeberticks) in verschiedenen Farben 16 387 064 resultierende! Dadurch ändert sich schön und glatt.

OK, genug über den Code und Farbe Theorie. Schließen Sie das 12V Netzteil mit dem Arduino. Nehmen Sie das Stromkabel und durch eines der zwei kleinere Löcher in den Boden der Lampe legen. An den AC-Eingang der 12V Stromversorgung schließen Sie an, achten Sie darauf, Schrumpfschlauch über Lötstellen des Kabels. Ordnen Sie die Elektronik gut in zwei Holzschalen und fixieren Sie es mit Kleber, wie beschrieben, für die Slave-Lampen. Überprüfen Sie bitte, dass die 230V Leitungen sind gesichert und gut isoliert. Jetzt können Sie es einstecken (Ich benutze ein Verlängerungskabel mit einem Schalter auch von IKEA). Jetzt besonders vorsichtig sein, die Lampe hat noch einige Plätze (am Netzteil) mit exponierten 230V teilen.

Es funktioniert nicht wie erwartet? Gotcha. Sie müssen alle updatelamp(x); auskommentieren Befehle aus dem Arduino Code (auch von allen Funktionen!), mit X 1 bis 5 (nur Update Lampe 0, Master) werden. Die Updatelamp-Befehle für die richtige Antwort vom Slave warten und versuchen, Befehle zu senden, wenn es scheitert, so das Programm in eine Endlosschleife fällt. Sie können in ein Timeout in den Updatelamp-Befehl setzen, wenn Sie es wünschen, ich wollte nicht das tun, damit keine Lampe alle Farben überspringt.
Ach und während der Bearbeitung auf der Meister Lampe in drei Pulldown (auf GND) Widerstände von Lets sagen ca. 2k Ohm auf jeder der PWM Signal Pins. Ich habe vergessen, das zu tun und beim Booten des Arduino die Meister Lampe blinkt in helles, weißes Licht für etwa eine halbe Sekunde, welche It would ' t, wenn ich nicht diese Pulldowns vergessen hatte...

Wenn alles funktioniert, ist es jetzt Zeit zum Anschluß der Sklaven. Ich hoffe, dass Sie markiert, die Sie mit der Adresse des Slave Nummer eins programmiert.

Hinweis: Ich weiß, es gibt noch einige Fehler im Code, wenn Sie einen finden, bitte melden Sie es mir (und wenn Sie wissen, wie man es beheben, sagen Sie mir). Auch meine Programmierkenntnisse sind bestenfalls moderat und der Code ist ein Chaos, aber ich habe versucht, in den Kommentaren auf den meisten Linien hinzufügen (möglicherweise in Deutsch in einigen Teilen, sorry dafür). Es ist immer noch ein Work In Progress (welcher Code nicht?) und nicht vollständig bereinigt.
Ergänzungen oder Anregungen des Kodex sind willkommen.

In Verbindung stehende Artikel

High Power RGB LED genieße das synchronisiert mit Philips Hue

High Power RGB LED genieße das synchronisiert mit Philips Hue

In diesem instructable liegt das Hauptaugenmerk auf die Software, die ich erstellt habe - nicht so sehr auf der Hardware-Seite. Sie brauchen nicht, eine High-Power-led dafür zu verwenden, können Sie jede RGB - LED, die Sie mögen.Die "High Power RGB L
Billig und einfach Dial gesteuert High-Power RGB LED(s) Treiber

Billig und einfach Dial gesteuert High-Power RGB LED(s) Treiber

Möglicherweise gibt es eine Menge von RGB-LED-Treiber gibt, aber dieses ist ein bisschen anders, seine vielseitige, klein, billig, und ist einfach zu steuern.Ein Potentiometer mit eingebauten Schalter ist für die Steuerung verwendet. Eine schnelle Pr
High Power RGB-Berg

High Power RGB-Berg

für ein anstehendes Projekt musste ich 9 Hochleistungs-RGB-LEDs (3W) montieren. Ich war ein wenig besorgt über Wärmeentwicklung, aber ich wollte nicht zu berappen für jede ausgefallene Kühlkörper. Ich könnte einige auf eBay, gekauft haben aber ich be
SoGo Mini nur tragbare Multi-Lautsprecher mit APP kontrolliert RGB-LED-Licht

SoGo Mini nur tragbare Multi-Lautsprecher mit APP kontrolliert RGB-LED-Licht

SoGo Mini nur Portable Multi Speaker mit APP in KürzeRGB-LED-Licht und anpassbare Ring Farbe gesteuert. Breites Spektrum der Kompatibilität mit anderen Geräten wie Mac, PC, Android, IOS, 20 plus Stunde power Backup und große Reichweite macht dieses G
Mit einer einzigen RGB-LED (oder ein LED-Streifen), um Informationen anzuzeigen: Uhr, Thermometer und eine seltsame Kommunikator

Mit einer einzigen RGB-LED (oder ein LED-Streifen), um Informationen anzuzeigen: Uhr, Thermometer und eine seltsame Kommunikator

Eines der ersten Projekte habe ich mit einem Arduino war ein Lichter Kranz Weihnachten. In der Tat, der eine einfache RGB LED-Streifen schneiden Sie in zwei, wurde als Arduino nur 6 Hardware-PWM-Ausgänge hat. Ich wollte nicht, dass es zur Anzeige von
High Power 3-LED Fahrradlicht

High Power 3-LED Fahrradlicht

diese instructable erstellt und zur Verfügung gestellt von Edmonton-Fahrrad-Pendler Gesellschaft (EBC) (http://edmontonbikes.ca , http://www.facebook.com/edmontonbikes , http://twitter.com/edmontonbicycle ), einer Non-Profit-Organisation, alle Radfah
Scorpion Stinger - eine High Power UV-LED-Taschenlampe

Scorpion Stinger - eine High Power UV-LED-Taschenlampe

diese instructable ist über den Bau der ultimative Skorpion Jagd Taschenlampe "Scorpion Stinger" genannt. Es funktioniert extrem gut und klopft die Socken aus dem Wettbewerb.  Schauen Sie sich die Videos im Abschnitt "Feldversuche" Sch
Die high-Power USB led Lampe

Die high-Power USB led Lampe

/ * Stildefinitionen * / table. MsoNormalTable {Mso-Style-Name: "Normale Tabelle"; Mso-Tstyle-Rowband-Größe: 0; Mso-Tstyle-Colband-Größe: 0; Mso-Style-Noshow:yes; Mso-Stil-Priorität: 99; Mso-Style-Qformat:yes; Mso-Style-Parent: "";&quo
Aktualisieren Ihre Rampen mit High-Power-Komponenten

Aktualisieren Ihre Rampen mit High-Power-Komponenten

Eine Rampen-Board ist eines der am häufigsten verwendeten Boards RepRap und andere Bastler 3D Drucker gesteuert. Rampen ist im Wesentlichen ein Arduino Shield, die in der Lage, Steuerung Stepper motor Treiber, Einnahme von Temperaturmessungen, Stromv
Das modulare PC Netzteil High Power LED wachsen Licht

Das modulare PC Netzteil High Power LED wachsen Licht

Hallo an alle,Nach erfolgreich Entsendung mein Prototyp für eine LED-Algen-Wäscher, beschloss ich, einige meiner anderen Experimente mit High Power 3W LEDs zu schreiben. Hier habe ich beschlossen, eine wachsende Raumklima für einige leichte hungrig Z
High-Power LED unter Schrank Beleuchtung DIY - Great looking und BRIGHT @ nur 23w!

High-Power LED unter Schrank Beleuchtung DIY - Great looking und BRIGHT @ nur 23w!

Zunächst einmal, lassen Sie mich erklären, die "High Power LEDs" sollte wahrscheinlich lesen "Hohe Intensität LED".  Nach meinen Berechnungen verwendet diese ganze Setup über 23w Strom.wie auch immer, nach immer neuen Küchenschränke un
Android gesteuert RGB LED mit Arduino

Android gesteuert RGB LED mit Arduino

Hai an alle in der Post-Iam gehen, zeigen, wie man die RGB-LED mit Android mit Arduino und HC-05 Bluetooth-Modul steuern.Ich suchte im Web gibt es viele Techniken, die RGB-LED zu kontrollieren. Aber dies ist die Methode, die sehr einfach und leicht i
RGB LED Lampe mit IR-Fernbedienung ändern

RGB LED Lampe mit IR-Fernbedienung ändern

ich habe eine alte, aber schöne IKEA Lampe, jedoch die 12V 20W Halogen-Glühlampe verwendet, es ist nun gebrochen. Vor Tagen kam die Idee mit LEDs zu ersetzen, zum Glück habe ich einen LED Controller zusammen mit einer SMD RGB LED-Streifen, so dass ic
Nachrüstung einer antiken Miner Laterne mit RGB-LED

Nachrüstung einer antiken Miner Laterne mit RGB-LED

Hintergrund: ich habe wirklich benötigen ein kreativ-technischen Outlet seit dem College, und haben begonnen, auf lustige kleine Projekte, halten meine Fähigkeiten scharf und nur, weil ich das Gesetz genieße des Machens. Jedoch dauerte trotz einen kl