ich habe ein Uno mit DMX Shield. Dieses sendet seine Signale an RX TX. Die Signale kommen bis zu den Pins 5, 6, 10, 11, 3, wenn ich nun einen Fader am DMX Pult nach oben bewege, wird die LED dunkler statt heller. wahrscheinlich gibt es da einen einfachen Trick die Signale Bzw. die Pins zu invertieren aber ich komme gerade nicht drauf.
Bitte nochmal nachlesen! Die physikalische Übertragungsebene ist RS485!
Ihm hat aber ein logisches Problem, weil ihm seine LED aktiv Low funktionieren.
Da hilft es nix, die Pins zu tauschen.
Das Datenblatt sagt:
1 0 Clear OC0A on Compare Match, set OC0A at BOTTOM,
(non-inverting mode).
1 1 Set OC0A on Compare Match, clear OC0A at BOTTOM,
(inverting mode).
Es muss also weder die teure map() und auch nicht das subtrahieren genutzt werden.
Sondern: Der Timer kann das auch alleine!
(man muss es ihm nur sagen)
const int Ultraschall1 = 5; // PWM Pin für Relais 1
const int Ultraschall2 = 6; // PWM Pin für Relais 2
const int Nebel = 10; // PWM Pin für Nebelmaschine
const int Luefter = 11; // PWM Pin für Lüfter
const int LuefterExt = 3; // PWM Pin für Lüfter
void setup() {
DMXSerial.init(DMXReceiver);
pinMode(Ultraschall1, OUTPUT); // Pin von der ersten LED als Ausgang definieren
pinMode(Ultraschall2, OUTPUT); // Pin von der zweiten LED als Ausgang definieren
pinMode(Nebel, OUTPUT); // Pin von der dritten LED als Ausgang definieren
pinMode(Luefter, OUTPUT); // Pin von der vierten LED als Ausgang definieren
pinMode(LuefterExt, OUTPUT); // Pin von der zweiten LED als Ausgang definieren
Du solltest us auch die Funktion DMXSerial.read() zeigen. Denn wir müssen ja sehen können, wie der gelesene wert dort verarbeitet wird, um Dir genau sagen zu Können, wie Du ihn invertieren kannst.
Es sei denn, du möchtest es mal so versuchen: