ESP Projekt: LED-Matrix (Aufbau - Elektronik) |
|
erstellt 06.2020
Das anbringen der Streifen (30 LED's pro Meter) auf die Grundplatte mit den Rahmen.Die Verdrahtung (Schaltplan Entwicklung) Netzteil und USB-Stromversorgung vom PC.
Schaltplan
Anschluss am Beispiel von Wimos D1.
Ist ein bischen hochgegriffen bei den paar Drähten.
Die Stromversorgung des Strip muss mit dem GNG (G) verbungen werden.
Für die Entwicklung mit USB Anschluß darf die Stromversorgung nicht auf den 5V (VIN) angeschlossen werden, da die Stromversorgung somit einen Kurzschluss mit dem USB-Port darstellt.
Für den Echtbetrieb kann die 5V Strombersogung auch für den ESP8266 verwendet werden.
IDE, PlatformIO unter Visual Studio Code.
Für mein neues Projekt verwende ich die PlatformsIO, diese IDE ermöglicht einem sich auf den Code zu konzentrieren und nicht immer wieder auf die Wiedrigkeiten einer IDE.
Die Weitergabe des Codes ist leichter und die Verwendung von verschiedenen Verserionen einiger Tools ist auch möglich.
Einfach mal testen (den Code von Arduino IDE ist mit kleinen Deklarationsänderungen verwendbar).
Für die Verdrahtung und den Test der LED-Streifen habe ich vollgendes verwendet.
plattform.ini:
[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino
Momentan wird FastLED.h verwendet, ob ich alle Steifen zusammenhängen kann, werde ich sehen, deshalb ist schon das ganze auf mehrere Streifen ausgelegt.
main.cpp:
Da Visualstudio nur einen ASCII-Export und keinen HTML Export liefert und highlight.js Arduiono (C,C++) nicht so Unterstütz
das es wirklich hilreich ist, werden die Qullen ohne Highlight ausgegeben.
Die spitzen Klammern müssen als eckige Klammern ausgegeben werden.
#include [Arduino.h]
#include [FastLED.h]
#define NUM_STRIPS 1 // FastLED Menge der Streifen
#define NUM_LEDS_PER_STRIP 10 // FastLED Menge der LED pro Steifen
CRGB leds[NUM_STRIPS][NUM_LEDS_PER_STRIP];
void setup() { // Setup
// tell FastLED there's 60 WS2812 leds on pin 1
FastLED.addLeds(leds[0], NUM_LEDS_PER_STRIP);
// tell FastLED there's 60 NEOPIXEL leds on pin 11
FastLED.addLeds(leds[1], NUM_LEDS_PER_STRIP);
}
void loop() {
// This outer loop will go over each strip, one at a time
for(int x = 0; x < NUM_STRIPS; x++) {
// This inner loop will go over each led in the current strip, one at a time
for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) {
leds[x][i] = CRGB(255,0,0); // Grün, Rot, Blau
FastLED.show();
leds[x][i] = CRGB::Black; // RED
delay(100);
}
for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) {
leds[x][i] = CRGB(0,255,0); // Grün, Rot, Blau
FastLED.show();
leds[x][i] = CRGB::Black; // zB.: RED
delay(100);
}
for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) {
leds[x][i] = CRGB(0,0,255); // Grün, Rot, Blau
FastLED.show();
leds[x][i] = CRGB::Black; // RED
delay(1000);
}
}
}
Das Teststück in Betreib an der Wand.
Wie man erkennen kann ist die Beleuchtung der TT-Bälle schön gleichmäßig, auch wenn die LED's nicht zentrisch unter den TT-Bällen angebracht sind.
Original Größe
Beim Aufbau der Großen original habe noch eine Grundbeleuchtung mit aufgenommen über RGB-LED-Streifen. Diese werden parallel zu den WS2812 aufgebaut.
Bei der Fernbedienung sollte man darauf achten das die letzten Lichteinstellung beim Strom ab und einschalten wieder erscheint, Verwendung als Raumbeleuchtung.
Anschluss am Beispiel von Wimos D1.
Ist ein bischen hochgegriffen bei den paar Drähten.
Die Stromversorgung des Strip muss mit dem GNG (G) verbungen werden.
Für die Entwicklung mit USB Anschluß darf die Stromversorgung nicht auf den 5V (VIN) angeschlossen werden, da die Stromversorgung somit einen Kurzschluss mit dem USB-Port darstellt.
Für den Echtbetrieb kann die 5V Strombersogung auch für den ESP8266 verwendet werden.
Für mein neues Projekt verwende ich die PlatformsIO, diese IDE ermöglicht einem sich auf den Code zu konzentrieren und nicht immer wieder auf die Wiedrigkeiten einer IDE. Die Weitergabe des Codes ist leichter und die Verwendung von verschiedenen Verserionen einiger Tools ist auch möglich. Einfach mal testen (den Code von Arduino IDE ist mit kleinen Deklarationsänderungen verwendbar).
Für die Verdrahtung und den Test der LED-Streifen habe ich vollgendes verwendet.
plattform.ini:
[env:nodemcuv2] platform = espressif8266 board = nodemcuv2 framework = arduino
Momentan wird FastLED.h verwendet, ob ich alle Steifen zusammenhängen kann, werde ich sehen, deshalb ist schon das ganze auf mehrere Streifen ausgelegt. main.cpp:
#include [Arduino.h] #include [FastLED.h] #define NUM_STRIPS 1 // FastLED Menge der Streifen #define NUM_LEDS_PER_STRIP 10 // FastLED Menge der LED pro Steifen CRGB leds[NUM_STRIPS][NUM_LEDS_PER_STRIP]; void setup() { // Setup // tell FastLED there's 60 WS2812 leds on pin 1 FastLED.addLeds(leds[0], NUM_LEDS_PER_STRIP); // tell FastLED there's 60 NEOPIXEL leds on pin 11 FastLED.addLeds (leds[1], NUM_LEDS_PER_STRIP); } void loop() { // This outer loop will go over each strip, one at a time for(int x = 0; x < NUM_STRIPS; x++) { // This inner loop will go over each led in the current strip, one at a time for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) { leds[x][i] = CRGB(255,0,0); // Grün, Rot, Blau FastLED.show(); leds[x][i] = CRGB::Black; // RED delay(100); } for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) { leds[x][i] = CRGB(0,255,0); // Grün, Rot, Blau FastLED.show(); leds[x][i] = CRGB::Black; // zB.: RED delay(100); } for(int i = 0; i < NUM_LEDS_PER_STRIP; i++) { leds[x][i] = CRGB(0,0,255); // Grün, Rot, Blau FastLED.show(); leds[x][i] = CRGB::Black; // RED delay(1000); } } }
Das Teststück in Betreib an der Wand.
Wie man erkennen kann ist die Beleuchtung der TT-Bälle schön gleichmäßig, auch wenn die LED's nicht zentrisch unter den TT-Bällen angebracht sind.