Hallo,
für ein kleines Theaterprojekt steht die Aufgabe einen LED-Strip mit DMX anzusteuern.
Das funktioniert auch - aber nur bei DMX-Kanal 1-50.
Bei Kanal 51- 512 geben die LED keinen Blinker von sich.
Versucht habe ich es mit Nano, UNO R3, MEGA2560, Verwendung unterschiedlicher PIN...- überall das gleiche Ergebnis.
Ich habe unterschiedliche handelsübliche Low-Cost-Controller sowie USB zu DMX über FX5-Interface ausprobiert.
Das DMX- Eingangssignal am Arduino kommt über ein 485MAX-Board. Die Schaltung analog dieser:
(Geändert ist hier lediglich die Spannungsversorgung (auf extern) und die Datenleitung auf PIN 2, die beiden LED entfallen.)
Der Programmcode:
#include <FastLED.h>
#include <DMXSerial.h>
#define NUM_LEDS 44
#define LED_PIN 2
CRGB leds[NUM_LEDS];
int i=0;
int Startadresse =0;
void setup() {
FastLED.addLeds<WS2812B, LED_PIN, GRB>(leds, NUM_LEDS);
FastLED.setBrightness(150);
DMXSerial.init(DMXReceiver);
}
void loop () {
while (DMXSerial.read(Startadresse)<=80)
{
FastLED.clear(true);
}
while ((DMXSerial.read(Startadresse)>=80) && (DMXSerial.read(Startadresse)<=160))
{
averlauf();
FastLED.show();
delay(85);
}
FastLED.clear(true);
while ((DMXSerial.read(Startadresse)>=161))
{
bverlauf();
FastLED.show();
delay(85);
}
FastLED.clear(true);
}
void averlauf()
{
uint16_t beatA = beatsin16(30, 0, 255);
uint16_t beatB = beatsin16(20, 0, 255);
fill_rainbow(leds, 15, (beatA+beatB)/2,12);
}
void bverlauf()
{
uint16_t beatA = beatsin16(30, 0, 255);
uint16_t beatB = beatsin16(20, 0, 255);
fill_rainbow(leds+15, 29, (beatA+beatB)/2,12);
}
Wer kann mir hier weiterhelfen?
Schon jetzt ein großes Dankeschön
Schorsch