RGB Laufschrift mit U-64 Panel

 

Vor einigen Tagen haben wir gezeigt wie man eine Laufschrift auf unserer 4x64er LED Matrix darstellen kann. Wir haben das Modul in einen PC eingebaut.

 

Nach heutigen Maßstäben muss aber alles im Computer RGB sein. Deswegen versuchen wir heute in unserem Blog-Beitrag eine ähnliche Laufschrift mit unseren U-64-LED-Panels zu realisieren.

 

Wichtiger Hinweis: die U-64-LED-Panels sind mit den weit verbreiteten und beliebten WS2812b LEDs bestückt. Eine WS2812b LED besteht dabei aus 3 kleinen LEDs (Rot, Grün und Blau) sowie einem kleinen Controller-Chip, alles in einem sehr kompakten Bauelement.

 

Diese RGB LEDs sind einzeln adressierbar, und sehr hell. Jede LED zieht bei voller Leuchtstärke (Rot, Grün und Blau jeweils auf maximal) ca. 50mA bei 5V.

Dies bedeutet: wenn wir nur 4 der 64 LEDs im Panel auf die maximale Helligkeit setzen, haben wir das Limit von unserem Nano V3 schon erreicht.

 

Anders Formuliert: Wer dieses Modul über den Arduino mit Spannung versorgt, kann sich sicher sein das dieser in absehbarer Zeit durchbrennt.

 

Daher ist es bei WS2812b LEDs unbedingt notwendig ein externes 5V Netzteil mit ausreichend Leistung zu benutzen.

 

Ich nutze für dieses Projekt ein 5V Netzteil mit 10A.

Wir verwenden in dem Projekt folgende Teile:

 

1x  Nano V3.0 PRO, gelötete Version mit USB Kabel

4x U-64-LED-Panel

1x 5V Netzteil 13+ A

1x Elektrolytkondensator 1000µF 10V

1x 220Ω Widerstand

5x 3-Pin Stiftleiste

Viele Jumperkabel. Ich empfehle das AZ-Delivery Set 3x Breadboard + 3x Jumper Wire

Ich möchte 4 Panels mit je 64 LEDs zusammenschalten, also 256 LEDs insgesamt. 256 * 50mA = 12800 mA = 12,8A.

 

Ich bin mir also im Klaren darüber dass ich, umssicher zu gehen dass mein Netzteil nicht in Flammen aufgeht, die Panels nicht mit voller Helligkeit betreiben sollte.

 

Da die Panels nicht zu den günstigsten Bauteilen gehören, empfehle ich für am Anfang nur ein Panel zu verwenden. Die Panels haben 3 Pins auf jeder Seite, und können sehr einfach durch verbunden werden.

 

Wir schließen das Panel wie folgt an:

 

Netzteil

1000 µF 20V Elco

Panel

Nano V3

+

+ (langes Beinchen)

VCC

VIN

-

- (Kurzes Beinchen)

GND

GND

 

 

DIN

D5 (mit 220Ω Widerstand)

 

 AZ-Delivery U-64 WS2812b

 

Nachdem wir alles angeschlossen haben, und unser Netzteil einstecken, zeigt unser Panel erstmal nichts an. Wir müssen also jeder LED, also jedem Pixel einen Farbwert (Rot, Grün und Blau) sowie die Helligkeit setzen.

 

Praktischerweise gibt es einige Bibliotheken die diesen Aufwand erleichtern.

 

Wir nutzen die weit verbreitete FastLED Bibliothek von Daniel Garcia https://github.com/FastLED , sowie die darauf setzenden Bibliotheken LEDMatrix und LEDText von Aaron Liddiment https://github.com/AaronLiddiment .

 

Zwar soll das Panel irgendwann in einen PC eingebaut werden, aber in der Zwischenzeit soll es ein informatives Display werden, welches den Paketdienst daran erinnert wo unsere Eingangstür ist, damit er eure Pakete schneller abholen kann.

 

#include <FastLED.h>
#include
<LEDMatrix.h> #include <LEDText.h> #include <FontRobotron.h> // Change the next 6 defines to match your matrix type and size #define LED_PIN        5 #define COLOR_ORDER    GRB #define CHIPSET        WS2812B #define MATRIX_WIDTH   32 #define MATRIX_HEIGHT  8 #define MATRIX_TYPE    VERTICAL_MATRIX // Wie sind die LEDs angeordnet cLEDMatrix<MATRIX_WIDTH, MATRIX_HEIGHT, MATRIX_TYPE> leds; cLEDText ScrollingMsg; const unsigned char TxtDemo[] = { EFFECT_SCROLL_LEFT EFFECT_HSV_CV "\x00\xff\xff\x40\xff\xff" "        AZ-DELIVERY"                                  EFFECT_HSV_CH "\x00\xff\xff\x40\xff\xff" "        IHR EXPERTE FUER "                                  EFFECT_HSV "\x00\xff\xff" "M" EFFECT_HSV "\x20\xff\xff" "I" EFFECT_HSV "\x40\xff\xff" "K" EFFECT_HSV "\x60\xff\xff" "R" EFFECT_HSV "\xe0\xff\xff" "O" EFFECT_HSV "\xc0\xff\xff" "E"                                  EFFECT_HSV "\xa0\xff\xff" "L" EFFECT_HSV "\x80\xff\xff" "E" EFFECT_HSV "\x00\xff\xff" "K" EFFECT_HSV "\x20\xff\xff" "T" EFFECT_HSV "\x40\xff\xff" "R" EFFECT_HSV "\x60\xff\xff" "O"                                  EFFECT_HSV "\xa0\xff\xff" "N" EFFECT_HSV "\x80\xff\xff" "I" EFFECT_HSV "\x00\xff\xff" "K" EFFECT_HSV "\x20\xff\xff" "!" EFFECT_RGB "\xff\xff\xff"                                  EFFECT_HSV_AH "\x00\xff\xff\xff\xff\xff" "   EINGANG RECHTS"                                  EFFECT_SCROLL_RIGHT EFFECT_HSV_AH "\x00\xff\xff\xff\xff\xff" ">>>>>>>>>>>>>>" }; void setup() {  FastLED.addLeds<CHIPSET, LED_PIN, COLOR_ORDER>(leds[0], leds.Size());  FastLED.setBrightness(10); // WICHTIG - Hier wird die Helligkeit eingestellt. Am Anfang einen niedrigen Wert verwenden, und langsam hochtasten.  FastLED.clear(true);  delay(500);  FastLED.showColor(CRGB::Red);  delay(1000);  FastLED.showColor(CRGB::Lime);  delay(1000);  FastLED.showColor(CRGB::Blue);  delay(1000);  FastLED.showColor(CRGB::White);  delay(1000);  FastLED.show();  ScrollingMsg.SetFont(RobotronFontData);  ScrollingMsg.Init(&leds, leds.Width(), ScrollingMsg.FontHeight() + 1, 0, 0);  ScrollingMsg.SetText((unsigned char *)TxtDemo, sizeof(TxtDemo) - 1);  ScrollingMsg.SetTextColrOptions(COLR_RGB | COLR_SINGLE, 0xff, 0x00, 0xff); } void loop() {  if (ScrollingMsg.UpdateText() == -1){    ScrollingMsg.SetText((unsigned char *)TxtDemo, sizeof(TxtDemo) - 1);    delay(20);  }  else    FastLED.show();  delay(20); }

Nach dem hochladen sehen wir dass wir, je nachdem wie lange der Text ist, uns schon langsam an die Grenzen des verfügbaren Speichers des Nano herantasten. 

 

 

 Wir hoffen, dass Sie unser heutiger Blogbeitrag Sie inspiriert hat, und wir freuen uns auf Ihre Kommentare.

Bis zum nächsten Beitrag von AZ-Delivery, Ihrem Experten für Mikroelektronik!

 

4 Kommentare

Rüdiger

Rüdiger

Bei bis 12 A die Versorgung über die dünnen Jumper Wire und das Breadboard zu leiten ist gelinde gesagt “sportlich”! Ich hätte da nicht Angst, das das Netzteil “in Flammen aufgeht”, sondern eher, das die Kontaktstellen verschmoren, die Kabel warm werden und die Daten “seltsam aussehen”, da der Massepunkt am jeweiligen Panel am “floaten” ist!
Da sollte man mindestens 1 mm2, besser 1,5 mm2 Kabel verwenden und die Panels über eine sternförmige Verdrahtung anschliessen (lediglich die Datenleitung wird dann busförmig verlegt)
Also bitte die 5V Versorgung oben im fritzing-Bild nur für den Arduino verwenden und das oder die Panels direkt mit dem Netzteil verdrahten.

Kiwix

Kiwix

Heute im Newsletter von dem Projekt gelesen. Zuerst dachte ich, es wäre ja eine tolle Idee, wenn man die benötigten Komponenten als Paket anbieten würde. Hätte ich gekauft und dann direkt mal nachgebaut.
Aber dann musste ich feststellen, dass bis auf den Arduino gar nichts im Shop zu finden ist. Ich finde das nicht so gelungen, auf Projekte mit Komponenten hinzuweisen, die man gar nicht (mehr) im Angebot hat.

Viele Grüße
Kiwix

Pentalon

Pentalon

Danke für die tolle Demo.
Bei mir ist der Text allerdings spiegelverkehrt.
Was muss ich hier ändern, damit die Schrift korrekt angezeigt wird ?

Bester Grüsse…

veit

veit

Nur als Info: wenn man den “Kopier” Button nutzt, bekommt man unsichtbare Sonderzeichen über die Arduino dann schimpft ….

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert