YACTL: Noch eine Christbaumgirlande

    Warum?


    Vor dem neuen Jahr schmücken und schmücken viele die Weihnachtsbäume mit allerlei Schmuck und natürlich mit einer leichten Girlande.
    Auf Habré gab es in letzter Zeit verschiedene Variationen zum Thema selbstgemachte Girlanden, aber es gibt weniger als 100.500, und deshalb dachte ich, dass dies eindeutig nicht genug war. Um den Geist des neuen Jahres nicht zu verärgern, schenke ich diesem großen Geist meine Version der Weihnachtsgirlande.

    Dieses Projekt war auch als Teil der Erstausbildung für seinen Sohn im Stil von "Ich mache und erzähle, was, wie und warum, und mein Sohn sieht aus und stellt knifflige Fragen zu diesem Thema und nicht wirklich." Aus diesem Grund habe ich versucht, alles so einfach und erschwinglich wie möglich zu gestalten.





    Von was?


    Nachdem ich ein bisschen in meinen Kisten gestöbert hatte, fand ich mehrere Bänder mit einzeln adressierbaren RGB-LEDs. In freier Wildbahn haben sie unterschiedliche Namen - WS2801, WS2811, WS2812, Neopixel usw.
    Das Hauptmerkmal dieser Bänder ist, dass Sie jede RGB-LED einzeln steuern und die RGB-Farbkomponenten und die Helligkeit ändern können.

    Die Unterschiede zwischen den Bändern sind elektrisch. Wenn sie sehr unhöflich sind, können sie wie
    folgt beschrieben werden: WS2801 ist die allererste Version. Die Datenübertragung erfolgt über zwei Signalleitungen - DATA und CLOCK. Die Spannung beträgt normalerweise 12 Volt. RGB-LED wird separat angeschlossen.
    WS2811- neuere Version. Daten werden auf einer Leitung übertragen - DATA. Es gibt kein CLOCK-Signal, da der WS2811-Controller die Zeitintervalle selbst berechnet und in seinem Code befolgt werden muss. Normalerweise mit 5 Volt versorgt. Die RGB-LED wird ebenfalls separat angeschlossen.
    Der WS2812 ist derselbe wie der WS2811, ist jedoch in die LED (z. B. 5050) integriert, wodurch das Band kompakter wird und die LEDs möglicherweise dichter platziert werden. Normalerweise mit 5 Volt versorgt. Der LED-Chip hat 6 Pins.
    WS2812B ist wie WS2812, jedoch mit dem Unterschied, dass die Leistung für die LEDs und den Chip selbst kombiniert wird (alle Optionen verfügen über eine separate Stromversorgung). Der LED-Chip hat 4 Pins.

    Alle Variationen von LED-Streifen können bei eBay, Alibaba / AliExpress und in Geschäften dieses Typs gekauft werden.

    Aus programmtechnischer Sicht wird der Unterschied mit der FastLED @ GitHub- Bibliothek sehr schön geglättet . Das heißt, es ist möglich, verschiedene Arten von programmierbaren Bändern in einem Projekt ohne großen Aufwand zu kombinieren, was ich ohne zu zögern verwendet habe. Der Sohn schätzte jedoch den Einfallsreichtum und die Zweckmäßigkeit der Bibliothek seines Vaters nicht.

    Zu Hause habe ich drei Bänder gefunden: eines basierend auf dem WS2801-Controller (25 LEDs) und zwei basierend auf dem WS2811-Controller (20 und 15 LEDs). Insgesamt 60 LEDs Welpenfreude.
    Zwei WS2811 habe ich in Reihe geschaltet.

    Wie der Leser bereits vermutet hat, wird ein Controller benötigt, um solche LED-Streifen zu steuern. Ursprünglich plante ich, das Arduino Pro Mini-Board wegen seiner Kompaktheit und Bereitschaft zu verwenden, fand aber aus irgendeinem Grund kein einziges in meinen bodenlosen Behältern. Aber ich fand Teensy 3.1 (Cortex-M4 bei 72 MHz, 256 KB Flash, 64 KB RAM). Es ist ein bisschen übertrieben, aber viel ist besser als wenig.

    Da ich 12- und 5-Volt-Bänder zusammen verwende, habe ich die gesamte Schaltung von einem 12-V / 1A-Netzteil mit 5-Volt-Umwandlung gespeist, um das zweite Band und die Mikrocontroller-Platine mit Strom zu versorgen. Ich habe mit einem gepulsten DC-DC-Modul KIS-3R33S auf Basis von MP2307DN konvertiert, das am Ausgang bis zu 3A abgibt und sich fast nicht aufheizt. Natürlich kann das Modul durch ein ähnliches Modul wie 7805 ersetzt werden, es muss jedoch auf eine ordnungsgemäße Kühlung geachtet werden (dies sind etwa 1-1,5 Watt pro 10 LEDs).



    Komponentenliste:


    • Individuell adressierbare LED-Streifen basierend auf WS2801, WS2811 usw.
    • 12V / 1A Spannungsversorgung. Bei maximaler Helligkeit verbrauchen 60 LEDs ca. 800 mA. Ich schalte sie auf halbe Helligkeit und bekomme 400 mA Verbrauch
    • Mikrocontroller-Modul Teensy 3.1. Geeignet ist auch Arduino oder ein anderes geeignetes Modul oder ein anderer geeigneter Mikrocontroller.
    • DC-DC-Wandler KIS-3R33S. Es gibt viele Möglichkeiten und alles hängt von den Ernährungsbedürfnissen ab.




    Wie verbinde ich mich?


    Es gibt praktisch keine Schaltung, da alles ganz einfach angeschlossen ist:
    Teensy 3.1 wird mit 5 Volt versorgt. An diesen 5 Volt sitzt das WS2811 Band. Bei 12 Volt gibt es ein Band basierend auf WS2801.
    Das WS2801-Band wird wie folgt an Teensy 3.1 angeschlossen: DATA-11, CLOCK-13. Das
    WS2811-Band wird an Teensy 3.1-Werbespots angeschlossen: DATA-14. Ein



    Bündel von Drähten und Teilen wurde erfolgreich in eine Schachtel gestopft, um vier AA-Elemente zu speichern. Normalerweise sammle ich in solchen Kisten etwas so Einfaches und Schnelles.



    Was ist die Magie?


    Magie ist in dem Code enthalten, der all diese Schande regiert und den dreijährigen Sohn entzückt.
    Ich habe meinen Code auf GitHub gepostet: github.com/nochkin/LightBottle (Sie benötigen die Bibliothek github.com/FastLED/FastLED )
    Alles im Code ist recht einfach - eine Farbe ist pseudozufällig ausgewählt, in die sich die LED reibungslos ändert und die aktuelle Farbe weiter entlang des LED-Streifens verschiebt. Auf dem Baum sieht es so aus, als würde Licht fallen. Oder auf, wenn Sie zum Beispiel den Baum umdrehen (Ratschlag Ihres Sohnes) oder die Bänder selbst aufhängen (mein irrationales Angebot).

    Ganz am Anfang des Codes habe ich einige Variablen für die Konfiguration abgeleitet:
    LEDS1_NUM / LEDS1_PIN - die Anzahl der LEDs und der Pin zum Anschließen des ersten Bandes
    LEDS2_NUM / LEDS2_PIN - Anzahl der LEDs und Pin zum Anschließen des zweiten
    Bands LEDS_SATURATION - Maximale Farbsättigung
    LEDS_BRIGHTNESS - Maximale Helligkeit (bei 60 LEDs betrug der ungefähre Verbrauch 800 mA bei einer Helligkeit von 255, 400 mA bei 128 und 200 mA bei 64)
    Farbton - Farbwechselschritt in einem cycle
    UPDATE_DELAY - Geschwindigkeit, mit der die Farben auf dem Band „ausgeführt“ werden

    In setup () sind beide Bänder konfiguriert. Wenn also nur ein Band vorhanden ist, können Sie nur eine Zeile belassen, die dem Bandcontroller entspricht, und LEDS2_NUM zurücksetzen.

    Und der Cartoon?


    Ich füge ein Video dieses Handwerks an. Ich entschuldige mich für die Telefonqualität und die Porträtorientierung.


    Ich möchte auch allen Chabrowitern meine Glückwünsche übermitteln. Hurra!


    Jetzt auch beliebt: