Inhaltsverzeichnis:

Entwerfen einer Multi-Node-LED-PWM-Lampe - Gunook
Entwerfen einer Multi-Node-LED-PWM-Lampe - Gunook

Video: Entwerfen einer Multi-Node-LED-PWM-Lampe - Gunook

Video: Entwerfen einer Multi-Node-LED-PWM-Lampe - Gunook
Video: ESP8266 Digital Outputs - Relais über Webseite steuern 2024, November
Anonim
Entwerfen einer Multi-Node-LED-PWM-Lampe
Entwerfen einer Multi-Node-LED-PWM-Lampe

Dieses anweisbare zeigt, wie ich einen LED-PWM-Lampencontroller entwarf. Mehrere Lampen können zu großen Lichterketten aneinandergereiht werden. Das Kreieren von blinkenden LED-Lichtern für Weihnachten stand schon immer auf meiner Wunschliste. In der letzten Weihnachtssaison habe ich wirklich angefangen, darüber nachzudenken, etwas zu bauen. Mein erster Gedanke war, jede LED-Lampe könnte einfach an ein Paar Drähte angeschlossen werden. Die Leistung zu den LED-Lampen könnte ein Wechselstromsignal sein, das von einer niedrigen Frequenz zu einer hohen Frequenz schwingt. Ein in jede Lampe eingebauter Bandpassfilter würde die LED einschalten, wenn die Frequenz mit der Mittenfrequenz des Bandpassfilters übereinstimmt. Wenn die Bandpassfilter richtig eingestellt wären, könnte eine LED-Chase-Sequenz erstellt werden. Wirklich, indem man zu verschiedenen Frequenzen springt, anstatt zu fegen, könnte jede der LEDs eingeschaltet werden. Mit einem H-Brücken-Treiberchip sollte es nicht zu schwer sein, die gewünschte Frequenz durch die Drähte zu fahren. Nun, ich stinke nur nach analogem Design - ich bin eher ein Software-Typ. Nach ein paar Labortests gab ich die Verwendung von Analog schnell auf. Was ich wirklich wollte, war eine LED-Lampe, die vollständig gesteuert werden konnte, um jede gewünschte Farbe anzuzeigen. Oh, und es sollte in der Lage sein, PWM (Pulsweitenmodulation) zu verwenden, damit die LEDs in wirklich coolen Mustern ein- oder ausgeschaltet werden können. Was in dieser Anleitung folgt, ist eine Beschreibung eines wirklich coolen Designs, das auf einem Microchip-Mikroprozessor basiert das fiel aus meinem Wunsch nach Weihnachtsbaumbeleuchtung. Schauen Sie sich das Video unten an, um schnell zu sehen, was der LED-PWM-Lampencontroller von Kemper anzeigen kann. Beachten Sie, dass es schwierig ist, ein gutes Video von LEDs in Aktion zu erhalten, die PWM zur Intensitätssteuerung verwenden. Es ist das gleiche Problem, wenn Sie versuchen, einen Computermonitor zu sehen. Die 60Hz der LEDs geraten in einen Schwebungskampf mit den 30Hz des Camcorders. Obwohl das Video der LEDs manchmal etwas "glitchig" ist, ist dies nicht wirklich der Fall. Die LEDs scheinen beim Betrachten mit dem menschlichen Auge keine Störungen zu haben. Weitere Informationen zum Video-Antippen von LEDs finden Sie im folgenden Softwareschritt.

Schritt 1: Designziele

Designziele
Designziele

Nachdem ich die Weihnachtsferien damit verbracht habe, über dieses Projekt nachzudenken, habe ich mir eine Wunschliste ausgedacht. Hier sind einige der Funktionen (in der Reihenfolge), die ich mit meinem LED-Controller wollte: 1) Jede LED-Lampe muss so billig wie möglich sein. Eine Kette von 100 Lampen kostet viel, wenn jede Lampe viel kostet. Die Kosten sind daher ein wichtiger Faktor.2) Jede Lampe hat ein winziges Mikro an Bord, das die LEDs antreibt. Das winzige Mikro erzeugt PWM-Signale, sodass die LEDs gedimmt oder ausgeblendet werden können. LEDs können rau aussehen, wenn sie einfach ein- und ausgeschaltet werden. Unter Verwendung von PWM-Signalen können die LEDs ohne die für LEDs üblichen harten Kanten auf- und abgeblendet werden.3) Um die Verdrahtung einfach zu halten, akzeptiert jede Lampe Befehle über eine Zweidrahtschnittstelle. Strom und Kommunikation teilen sich dieselben zwei Drähte. Die Befehle an die Lampen teilen dem Onboard-Mikro mit, welche der LEDs mit PWM angesteuert werden sollen.4) Muss cool aussehen! Ich denke, dies sollte wirklich neu nummeriert werden, damit es die Nummer eins ist. Hier sind einige der kleineren Designziele (keine bestimmte Reihenfolge): 1) Für die Entwicklung muss es einfach sein, in der Schaltung neu zu flashen / neu zu programmieren. 2) Ein PC sollte in der Lage sein Generieren Sie die Befehle an die Lampen. Dies macht die Entwicklung von Mustern viel einfacher als die Verwendung eines anderen eingebetteten Mikros.3) Jede Lampe sollte eine eindeutige Adresse haben. Jede LED innerhalb einer Lampe muss auch eindeutig adressierbar sein.4) Das Befehlsprotokoll sollte VIELE Lampen an einem Kabelstrang unterstützen. Das aktuelle Design unterstützt 128 Lampen an einem Strang. Mit 4 LEDs pro Lampe ergibt das 512 LEDs an einer Kette von zwei Drähten! Beachten Sie auch, dass jede dieser 512 LEDs über eine volle PWM-Ansteuerung verfügt.5) Das Protokoll sollte einen Befehl haben, der besagt, "Starten Sie die LED von dieser Ebene auf diese Ebene zu verblassen". Sobald das Fading beginnt, können auch andere LEDs auf derselben Lampe eingerichtet und auf Fading eingestellt werden. Mit anderen Worten, richten Sie eine LED in ein Fading-Muster ein und vergessen Sie es dann, da Sie wissen, dass die LED den Befehl ausführen wird. Dies impliziert Multitasking-Software auf dem Mikro!6) Es sollte globale Befehle geben, die alle Lampen gleichzeitig betreffen. Daher können alle LEDs mit nur einem Befehl gesteuert werden. Hier sind einige wirklich kleine Designziele (wieder keine bestimmte Reihenfolge): 1) Brauchen Sie eine Möglichkeit, eine Lampe zurückmelden zu lassen, wenn ein Kommunikationsfehler auftritt. Dadurch könnte der Befehl erneut gesendet werden. 2) Das Befehlsprotokoll benötigt eine Möglichkeit, ein schickes globales Übereinstimmungsmuster zu haben. Dies würde es ermöglichen, jede x Anzahl von Lampen mit einem Befehl auszuwählen. Dies würde es einfacher machen, mit einer großen Anzahl von Lampen Verfolgungsmuster zu erstellen. Dadurch könnte beispielsweise an jede dritte Lampe einer Lampenkette ein Befehl gesendet werden. Dann könnte der nächste Befehl an die nächste Dreiergruppe gesendet werden. 3) Ein Logiksystem zur Erkennung der Polarität der Auto-Kommunikation wäre auch großartig. Dann wird die Polarität der beiden Zuleitungsdrähte zu den LED-Lampen unwichtig. Weitere Informationen zu dieser Funktion finden Sie im Abschnitt Hardware.

Schritt 2: Prototyping:

Prototyp entwickeln
Prototyp entwickeln
Prototyp entwickeln
Prototyp entwickeln
Prototyp entwickeln
Prototyp entwickeln

Jetzt ist es Anfang Januar und los geht's. Ich habe das 10F206 bei Digikey gefunden und es ist wirklich günstig! Also drehe ich ein Proto-Board, um ein 10F206-Mikro von Microchip zu halten. Ich habe ein schnelles Board entworfen, weil das 10F2xx nicht in einem DIP-Paket erhältlich ist. Unterm Strich wollte ich mich nicht mit dem kleinen Chip herumärgern. (Ich war im Januar so zuversichtlich) Ich habe auch einen neuen CSS-C-Compiler gekauft, der auf die 10F2xx-Mikros ausgerichtet ist. Die Chipfamilie 10F2xx ist wirklich günstig! Mit großen Hoffnungen tauchte ich ein und fing an, viel Code zu schreiben. Der 10F206 hat satte 24 Byte RAM - der Chip verfügt auch über 512 Byte Flash und einen 8-Bit-Timer. Während die Ressourcen spärlich sind, liegt der Preis bei guten 41 Cent in großen Mengen. Meine Güte, eine Million Instruktionen pro Sekunde (1 MIPS) für 41 Cent! Ich liebe Moores Gesetz einfach. Evan zu einmaligen Preisen, der 10F206 von Digikey ist bei 66 Cent gelistet. Ich habe viel Zeit damit verbracht, mit dem 10F206 zu arbeiten. Bei der Arbeit mit dem 10F206 habe ich festgestellt, dass Multitasking unbedingt erforderlich ist. Die PWM-Ausgangssignale MÜSSEN aktualisiert werden, auch wenn neue Kommunikationsnachrichten empfangen werden. Jede Unterbrechung bei der Aktualisierung der PWM-Signale wird als Störimpulse auf den LEDs angezeigt. Das menschliche Auge ist wirklich gut darin, Störungen zu erkennen. Es gibt ein paar grundlegende Probleme mit dem 10F206-Chip. Zumindest grundsätzliche Probleme für meine Anwendung. Das erste Problem ist, dass es keine Unterbrechungen gibt! Das Abfangen des Beginns einer neuen Kommunikation mit einer Polling-Schleife führt zu Zeitfehlern. Ein zweites Problem besteht darin, dass es nur einen Timer gibt. Ich konnte einfach keine Möglichkeit finden, Befehle zu empfangen, während die PWM-Ausgänge beibehalten werden. Die LEDs würden jedes Mal ausfallen, wenn ein neuer Befehl empfangen wurde. Die gemeinsame Nutzung des Timers zwischen dem Empfangen von Befehlen und dem Ansteuern der PWM-Ausgänge war ebenfalls ein großer Software-Problem. Ich konnte den Timer beim Empfang eines neuen Zeichens nicht zurücksetzen, da der Timer auch zur Steuerung der PWM-Signale verwendet wurde. Während der Arbeit mit dem 10F206 sah ich einen Artikel in Circuit Cellar über das neue winzige Mikro MC9RS08KA1 von Freescale. Ich liebe Freescale-Chips - ich bin ein großer Fan ihres BDM-Debuggings. Ich habe die Star12-Chips in der Vergangenheit oft verwendet (ich habe die gesamte Software für das GM Cadillac & Lacern-Ultraschallsystem auf einem Star12 geschrieben - meine Ultraschallsoftware ist jetzt auf diesen beiden Autos in Produktion). Also hatte ich wirklich Hoffnung, dass ihre neuen kleinen Chips gut sein würden. Der Preis stimmt auch, Digikey hat diese Chips für 38 Cent in großer Menge gelistet. Freescale war gut und hat mir einige kostenlose Muster geschickt. Allerdings wirkte der Freescale 9RS08 Chip wirklich albern - ich konnte damit nicht viel weiterkommen. Der Chip leidet auch unter fehlenden Interrupts und nur einem Timer. Na ja, zumindest habe ich das alles herausgefunden, ohne Geld für das Drehen eines anderen Proto-Boards zu verschwenden. Siehe Bilder unten. Jetzt weiß ich es - für meine Anwendung muss ich Interrupts und mehr als einen Timer haben. Zurück zu Microchip fand ich den 12F609-Chip. Es hat Interrupts und zwei Timer. Es hat auch 1K Flash und 64 Byte RAM. Nachteil ist der Preis; Digikey listet diese Chips mit 76 Cent in großer Menge auf. Na ja, Moore's Law wird sich schon bald darum kümmern. Auf der positiven Seite kann der 12F609 auch in DIP-Paketen bestellt werden. Auf der negativen Seite musste ich den Compiler der nächsten Stufe kaufen - das hat mein @#$% irgendwie verbrannt&.Es ist jetzt April und ich habe viel darüber gelernt, was nicht funktionieren wird. Ich habe ein Board gesponnen und Geld für einen Compiler verschwendet, den ich nicht brauche. Dennoch sind die bisherigen Tests ermutigend. Mit dem neuen Compiler und den 12F209-Chips in DIP-Paketen verliefen die Tests auf Laborebene schnell. Der Test bestätigte, dass ich den richtigen Chip hatte. Zeit, ein weiteres Proto-Board zu drehen! An diesem Punkt bin ich entschlossen.

Schritt 3: 12F609 Entwicklungsboard

12F609 Entwicklungsboard
12F609 Entwicklungsboard
12F609 Entwicklungsboard
12F609 Entwicklungsboard
12F609 Entwicklungsboard
12F609 Entwicklungsboard
12F609 Entwicklungsboard
12F609 Entwicklungsboard

OK, frische Tests auf dem Prüfstand, ich bin bereit, einen weiteren Board-Spin auszuprobieren. Bei diesem Board-Design wollte ich wirklich die Idee ausprobieren, Strom und Kommunikation über die gleichen zwei Drähte zu senden. Wenn Kommunikationsfehler ignoriert würden, wären nur zwei Drähte erforderlich. Das ist einfach richtig cool! Das Senden von Nachrichten über die Stromkabel ist zwar cool, aber nicht erforderlich. Alle Lampen können auf Wunsch über ein einziges Kommunikationskabel miteinander verbunden werden. Dies würde bedeuten, dass jede Lampe drei Drähte mit einem vierten optionalen Feedback-Statusdraht benötigt. Siehe Diagramm unten. Stromversorgung und Kommunikation können mit einer einfachen H-Brücke kombiniert werden. Die H-Brücke kann problemlos große Ströme treiben. Viele Hochstrom-LEDs könnten an nur zwei Drähten aneinandergereiht werden. Mit der H-Brücke lässt sich die Polarität der Gleichstromversorgung der Lampen sehr schnell umschalten. Jede Lampe verwendet also eine Vollwellenbrücke, um den Schaltgleichstrom wieder in normalen Gleichstrom umzuwandeln. Einer der Mikropins wird mit dem rohen eingehenden Schaltgleichstrom verbunden, damit das Kommunikationssignal erkannt werden kann. Ein Strombegrenzungswiderstand schützt den digitalen Eingang des Mikros. Innerhalb des Mikroeingangsstifts wird die rohe Schaltgleichspannung mit den internen Lagerdioden des Mikros geklemmt - der Schaltgleichstrom wird durch diese Dioden geklemmt (null bis Vcc Volt). Die Vollwellenbrücke, die die eingehende Leistung gleichrichtet, erzeugt zwei Diodenabfälle. Die zwei Diodenabfälle von der Brücke werden einfach durch Anpassen der H-Brücken-Versorgungsspannung überwunden. Eine 6-Volt-H-Brückenspannung sorgt für eine schöne 5-Volt-Versorgung am Mikro. Individuelle Begrenzungswiderstände werden dann verwendet, um den Strom durch jede LED zu trimmen. Dieses Power/Comm-Schema scheint sehr gut zu funktionieren. Ich wollte auch versuchen, Transistorausgänge zwischen dem Mikro und den LEDs hinzuzufügen. Wenn der 12F609 während des Prüfstandtests zu stark belastet wird (zu viel Strom in seinem Ausgangspfad), flackert er an allen Ausgängen. Der maximale Strom für den gesamten Chip beträgt laut Datenblatt, den der 12F609 unterstützen kann, insgesamt 90 mA. Nun, das wird nicht funktionieren! Ich könnte nur viel mehr Strom brauchen. Das Hinzufügen von Transistoren gibt mir eine Kapazität von 100 mA pro LED. Die Diodenbrücke hat eine Nennleistung von 400 mA, sodass 100 mA pro LED-Fähigkeit gerade passen. Es gibt einen Nachteil; die Transistoren kosten jeweils 10 Cent. Zumindest die Transistoren, die ich ausgewählt habe, haben Widerstände eingebaut - die Digikey-Teilenummer ist MMUN2211LT1OSCT-ND. Mit den Transistoren gibt es kein Flackern der LEDs. Für Produktionslampen denke ich, dass die Transistoren nicht erforderlich sind, wenn "normale" 20-mA-LEDs verwendet werden. Das in diesem Schritt entworfene Entwicklungsboard dient nur zum Testen und Entwickeln. Die Platine könnte viel kleiner sein, wenn kleinere Widerstände verwendet würden. Das Eliminieren der Transistoren würde auch eine Menge Platz auf der Platine sparen. Der schaltungsinterne Programmieranschluss könnte für Produktionsplatinen auch entfernt werden. Der Hauptpunkt des Entwicklungsboards besteht darin, das Strom-/Kommunikationsschema zu beweisen. Tatsächlich habe ich nach Erhalt der Platinen festgestellt, dass es ein Problem mit dem Layout der Platine gibt. Der Vollwellenbrückenchip hat eine alberne Pinbelegung. Ich musste zwei Spuren schneiden und zwei Überbrückungsdrähte an der Unterseite jeder Platine hinzufügen. Außerdem sind die Leiterbahnen zu den LEDs und Stecker einfach zu dünn. Nun gut, lebe und lerne. Wird nicht das erste Mal sein, dass ich ein neues Board-Layout vermasselt habe. Ich habe acht Boards mit BatchPCB erstellen lassen. Sie haben die besten Preise, aber sie sind sooooo langsam. Es dauerte Wochen, bis die Platinen wieder da waren. Wenn Sie jedoch preisbewusst sind, ist BatchPCB der einzige Weg. Ich werde jedoch wieder zu AP Circuits wechseln - sie sind superschnell. Ich wünschte nur, sie hätten eine billigere Möglichkeit, die Boards aus Kanada heraus zu versenden. AP Circuits kostet mir 25 Dollar Versand für jede Bestellung. Das tut weh, wenn ich nur Platinen im Wert von 75 Dollar kaufe. Ich habe zwei Tage gebraucht, um die acht kleinen Platinen zu löten. Es dauerte einen weiteren Tag, um herauszufinden, dass der Pull-up-Widerstand R6 (siehe Schema) mich störte. Ich denke, der Widerstand R6 wird einfach nicht benötigt. Ich war besorgt, nachdem ich das Datenblatt gelesen hatte und es zeigte, dass an diesem Eingangspin keine internen Mikro-Pull-ups vorhanden sind. In meinem Design wird der Pin sowieso die ganze Zeit aktiv angesteuert, so dass ein Pull-Up eigentlich nicht nötig ist. Um Befehle an das Board zu senden, habe ich einfache 9600-Baud-Nachrichten aus einem Python-Programm verwendet. Das rohe RS232, das aus dem PC kommt, wird mit einem MAX232-Chip in TTL umgewandelt. Das RS232-TTL-Signal geht zum H-Brücken-Steuereingang. Die RS232-TTL geht auch durch ein Inverter-Gate in einem 74HC04-Chip. Die invertierte RS232 geht dann zum anderen H-Brücken-Steuereingang. Ohne RS232-Verkehr gibt die H-Brücke also 6 Volt aus. Für jedes Bit auf der RS232 schaltet die H-Brücke die Polarität auf -6 Volt um, solange das RS232-Bit andauert. Siehe die Blockschaltbilder unten. Das Python-Programm ist auch beigefügt. Für die LEDs habe ich ein Bündel von https://besthongkong.com gekauft. Sie hatten helle 120-Grad-LEDs in Rot/Grün/Blau/Weiß. Denken Sie daran, die LEDs, die ich verwendet habe, dienen nur zum Testen. Ich habe von jeder Farbe 100 Stück gekauft. Hier sind die Zahlen für die von mir verwendeten LEDs: Blau: 350mcd / 18 Cent / 3,32V @ 20mAGrün: 1500mcd / 22 Cent / 3,06V @ 20mAWeiß: 1500mcd / 25 Cent / 3,55V @ 20mARed: 350mcd / 17 Cent / 2,00V @ 20 mA Wenn diese vier LEDs zur Bestückung der Lampe verwendet werden, kosten sie zusammen so viel wie das Mikro mit 82 Cent! Autsch.

Schritt 4: Software

Software
Software
Software
Software
Software
Software

Die Software lässt dieses Projekt wirklich ticken! Der Quellcode im 12F609 ist wirklich kompliziert. Ich verwende immer den letzten Speicherplatz! Alle 64 Bytes wurden von meinem Code verbraucht. Ich habe satte 32 Byte Flash übrig als Reserve. Also verwende ich 100% des RAM und 97% des Flashs. Es ist jedoch erstaunlich, wie viel Funktionalität Sie bei all dieser Komplexität erhalten. Die Kommunikation zu jeder Lampe wird durch das Senden von 8-Byte-Datenpaketen archiviert. Jedes Datenpaket endet mit einer Prüfsumme - es gibt also wirklich sieben Datenbytes plus eine abschließende Prüfsumme. Bei 9600 Baud benötigt ein Datenpaket etwas mehr als 8 Millisekunden, um anzukommen. Der Trick besteht darin, Multitasking durchzuführen, während das Bytepaket ankommt. Wenn eine der LEDs mit einem PWM-Signal aktiv ist, muss die Ausgangs-PWM auch beim Empfang neuer Paketbytes aktualisiert werden. Das ist der Trick. Ich habe Wochen und Wochen gebraucht, um das zu klären. Ich habe viel Zeit damit verbracht, mit meinem Logiport LSA zu arbeiten, um jedem Bit zu folgen. Dies ist einer der kompliziertesten Codes, die ich je geschrieben habe. Es liegt daran, dass das Mikro einfach so begrenzt ist. Auf leistungsstärkeren Mikros ist es einfach, lockeren/einfachen Code zu schreiben und den schnellen Mikro durchzureißen, ohne sich zu beschweren. Beim 12F609 kostet dich jeder lose Code viel. Der gesamte Mikroquellcode ist in C geschrieben, mit Ausnahme der Interrupt-Service-Routine. Warum so große Datenpakete haben Sie vielleicht fragen. Nun, weil wir wollen, dass die LEDs von selbst hoch- und runterfahren. Sobald ein Rampenprofil geladen ist, kann die LED erlöschen und mit dem Rampen beginnen, auch wenn neue Befehle für eine andere LED empfangen werden. Jede Lampe muss den gesamten Datenpaketverkehr empfangen und dekodieren, auch wenn das Paket nicht dafür bestimmt ist. Siehe Diagramm im Anhang. Wow, das ist viel für eine LED. Jetzt multiplizieren Sie das mal mit der Anzahl der LEDs. Es wird zu viel - ich konnte nur drei LEDs mit vollen Rampenprofilen verfolgen. Die vierte (weiße LED auf der Entwicklungsplatine) hat nur die Fähigkeit zur Rampe von/zu. Es ist ein Kompromiss. Sehen Sie sich das angehängte Bild eines Rampenprofils an. Das PWM-Signal wird von einem Timer generiert, der mit 64uS pro Tick läuft. Der 8-Bit-Timer läuft alle 16,38 ms über. Dies bedeutet, dass das PWM-Signal mit 61,04 Hz läuft. Das ist nicht gut für Video-Tapping! Also habe ich einen Software-Trick verwendet und ein paar zusätzliche Zählungen in den Timer gesprungen, um ihn auf 60 Hz auszudehnen. Dadurch sieht das Video-Tapping viel besser aus. Bei jedem Roll-Over des PWM-Timers (16,67 ms) aktualisiere ich das/die Rampenprofil(e). Daher beträgt jeder Rampen-/Verweiltick 1/60 einer Sekunde oder 60 Hz. Das längste Profilsegment (bei einer Zählung von 255) dauert 4,25 Sekunden und das kürzeste (bei einer Zählung von 1) dauert 17 ms. Dies gibt einen schönen Bereich, in dem Sie arbeiten können. Sehen Sie sich das angehängte Bild vom Logikanalysator an. Um die Details im Bild wirklich zu sehen, öffnen Sie das Bild im hochauflösenden Modus. Dies dauert ein paar zusätzliche Klicks auf der anweisbaren Website. Unten ist auch eine Zeichnung eines Profils zu sehen. Die Dokumentation des Befehlsprotokolls steht auf meiner Todo-Liste. Ich habe vor, ein Dokument vom Typ Datenblatt zu schreiben, um das Protokoll vollständig zu beschreiben. Ich habe ein Datenblatt für den Chip erstellt - eine vorläufige Version ist jetzt auf meiner Website.

Schritt 5: Mögliche Anwendungen

Anwendungsmöglichkeiten
Anwendungsmöglichkeiten
Anwendungsmöglichkeiten
Anwendungsmöglichkeiten

Weihnachtsbaumlicht: Ich denke, ein mit diesen Babys gefüllter Baum wäre einfach großartig. Ich kann mir ein schönes warmes Leuchten grüner Lichter vorstellen, bei dem leichter Schnee durch den Baum fällt. Vielleicht eine langsame Überblendung von Grün zu Rot mit zufällig fallendem Schnee. Chaser-Lichter, die ein spiralförmiges Helixmuster den Baum hinauf und hinunter machen, wären auch ordentlich. Grob, ich werde diesen Baum draußen im Hof parken und die "Jones" nebenan verrückt machen. Versuchen Sie es und schlagen Sie das!Akzentbeleuchtung:Alles, was eine Akzentbeleuchtung benötigt, ist ein Ziel für diese Lampen. Mein Schwager möchte sie in den Boden seines Aquariums legen. Ein Freund möchte seinen Hot-Rod-Motor akzentuieren - das Treten auf das Gaspedal würde einen roten Lichtblitz auslösen. Ich habe auch überlegt, eine davon mit meinen Lampen zu bauen: https://www.instructables.com/id/LED_Paper_Craft_Lamps/ Würde für ein großartiges Cub Scouts-Projekt sorgen. Sieben Lampen konnten zu einem LED-Muster mit sieben Segmenten gefaltet werden. Ein riesiges Display könnte gemacht werden - wäre ein tolles Countdown-Display für Silvester! Oder vielleicht ein Display, um die Börse anzuzeigen - rote Ziffern an schlechten Tagen und grüne an guten Tagen. Vielleicht ein großes Display, das die Außentemperatur anzeigt.3D-Raster Durch Aufhängen und Anordnen einer LED-Reihe könnte leicht ein 3D-Raster aus LEDs erstellt werden. Auf YouTube gibt es einige coole 3D-LED-Array-Beispiele. Die vorhandenen Beispiele, die ich gesehen habe, sehen jedoch klein und schmerzhaft aus. Vielleicht auch zu Weihnachten ein großes 3D-Raster auf dem Hof. WinAmp Plug-In:Jeder, der in meinem Labor war und die Lichter gesehen hat, fragt, ob sie zu Musik tanzen. Ich habe ein wenig gegraben, es sieht so aus, als ob es ziemlich einfach wäre, WinAmp ein Plug-In hinzuzufügen. Das Plug-In sendet Nachrichten an eine angeschlossene Lampenkette, damit die Lichter mit der Musik synchronisiert werden, die WinAmp abspielt. Etwas Weihnachtsmusik mit meinem Weihnachtsbaum zu synchronisieren wäre einfach großartig. Eingebetteter Baby Orang-Utan B-328 Roboter-Controller mit H-Brücke: Der kleine Controller von Pololu wäre perfekt. Siehe: https://www.pololu.com/catalog/product/1220 Dieses Board hat bereits eine einsatzbereite H-Brücke. Lampenmuster können in das Mikro programmiert werden, damit der PC ausgeschaltet werden kann. 802.15.4: Durch Hinzufügen von 802.15.4 könnten die Lampen drahtlos werden. Für im Haus verteilte Weihnachtsbaumlichter wäre das toll. Oder es wäre möglich, jedes Fenster eines großen Gebäudekomplexes mit Lampen zu versehen. Cool. Rotating 'Lighthouse Beacon:Mein Sohn hatte ein Schulprojekt, um einen Leuchtturm zu bauen. Die Idee war, eine kitschige, batteriebetriebene Leuchte mit einem Büroklammerschalter zu bauen, damit der Leuchtturm tatsächlich aufleuchtet. Kein Sohn von mir wird damit zur Schule gehen, wenn er eine ausgewachsene Rundumleuchte haben kann! Schauen Sie sich die beigefügten Bilder und Videos an.

Schritt 6: Zusammenfassung

Es erstaunt mich wirklich, dass jede Lampe 2 MIPS PS in einem SOIC-8 für 80 Cent hat. Wenn eine Lampenkette durch Hinzufügen weiterer Lampen erweitert wird, steigt auch die Menge an MIPS auf der Kette. Mit anderen Worten, dies ist ein skalierbares Design. Eine Kette von 16 Lampen summt zusammen mit 32 MIPS Rechenleistung. Einfach unglaublich. Es gibt noch viel zu tun. Das Entwicklungsboard muss aktualisiert werden. Es gibt ein paar Layoutfehler, die korrigiert werden müssen. Die Verdrahtung des Kommunikationsfehlerausgangs scheint nicht mit dem Transistorausgang zu funktionieren. Ich weiß noch nicht warum - ich habe noch keine Zeit damit verbracht, dies zu klären. Der empfangende Kommunikationscode benötigt auch etwas mehr Arbeit. Wenn ich die LEDs beobachte, kann ich sehen, dass von Zeit zu Zeit Kommunikationsfehler auftreten. Anscheinend gibt es durchschnittlich einen zufälligen Fehler pro 1000 Nachrichten. Ich muss einen SMD-Hersteller finden, der bereit ist, Lampenplatinen für mich herzustellen. Vielleicht wäre Spark Fun interessiert? Ich habe einen Kumpel in Hongkong, der mir vielleicht eine Manufaktur finden kann. Die Platinenmontage muss automatisiert werden. Es ist einfach nicht machbar, diese Boards von Hand zu bauen, wie ich es getan habe. Eine PC-Schnittstellenkarte muss entwickelt werden. Dies sollte wirklich einfach sein - es ist nur eine Frage der Zeit, um es zu erledigen. Die Kosten sind König - minimale Lampenkosten (80 Cent für das Mikro + drei LEDs zu je 10 Cent + Platine / Widerstände / 20 Cent Diodenbrücke)) insgesamt vielleicht 1,50 Dollar. Fügen Sie Montage, Verkabelung und Gewinn hinzu und wir sprechen von 2,00 bis 2,50 USD pro Lampe. Werden Geeks 40 Dollar für eine Reihe von 16 RGB-Lampen an einer Schnur zahlen? Unterm Strich hoffe ich, dass das Interesse der Heimwerker besteht. Mit einigen positiven Rückmeldungen werde ich weiter daran arbeiten, diese Idee in ein Produkt zu verwandeln. Ich könnte mir vorstellen, die Chips, Lampenentwicklungsplatinen und komplette Lichterketten zu verkaufen. Geben Sie mir Feedback und teilen Sie mir Ihre Meinung mit. Für weitere Informationen und Neuigkeiten aus der Entwicklung besuchen Sie meine Website unter https://www.powerhouse-electronics.com Danke, Jim Kemp

Empfohlen: