Hi zusammen,
ich scheitere grade bei einem relativ simplen Projekt:
Ich möchte einen DMX Empfänger/slave programmieren, der eine WS2812 steuert.
Es sollen Kanal 1 für Rot, Kanal 2 für Grün und Kanal 3 für Blau genutzt werden.
Wenn ich es mit einem Controller von DASLIGHT nutze, funktioniert es, wenn ich aber einen Arduino zum steuern, oder ein Steuerpanel nutze funktioniert es nicht.
Ich habe die Signale an ein Oszilloskop gehangen und die Startimpulse scheinen unterschiedlich lang zu sein, deswegen denke ich, das das der Fehler ist.
aber mein Arduino Master greift auf die selbe Lib zu, da sollte es doch kompatibel sein!
Weiß jemand, wie man das tweaken kann oder eine andere Bibliothek?
hier ist der Code:
#include <Arduino.h>
#include <DMXSerial.h>
#include "FastLED.h"
#define WSPIN 13
#define NUM_LEDS 144
#define adresse 1
int menuaktiv = 0, millisgedruckt;
long editbeginn, druckzeitbeginn;
int i, j, du;
byte NUM_LEDS_LOW, NUM_LEDS_HIGH;
bool empfangen, anderung;
byte werte[5], wertevorher[5];
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812B, WSPIN, RGB>(leds, NUM_LEDS);
DMXSerial.init(DMXProbe);
fullcolor(255, 255, 255); //Weiss
}
void loop() {
if (DMXSerial.receive()) {
for (i = 0; i <= 4; i++) {
werte[i] = DMXSerial.read(i + adresse);
}
empfangen = true;
for (i = 0; i <= 3; i++) {
if (werte[i] != wertevorher[i])
anderung = true;
}
}
if (anderung == true) {
anderung = false;
fullcolor(werte[0], werte[1], werte[2]);
}
}
void fullcolor(byte G, byte R, byte B) {
for (i = 0; i < NUM_LEDS; i++) {
leds[i] = CRGB(R, G, B);
}
FastLED.show();
}