#include <DmxSimple.
h> //DMX Library
int Poti = 0; //Variable für Poti Wert
int Wert1 = 0; //Variable für Farbrad Rot
int Wert2 = 0; //Variable für Farbrad Blau
int Wert3 = 0; //Variable für Farbrad Grün
int Adresse = 34; //DMX Adresse des Controllers einstellen
int Fader1 = 0; //Variable für ADC Wert von Fader 1
int Fader2 = 0; //Variable für ADC Wert von Fader 2
int Fader3 = 0; //Variable für ADC Wert von Fader 3
int Rot = 0; //Variable für den umgerechneten Wert von Fader 1
int Gruen = 0; //Variable für den umgerechneten Wert von Fader 3
int Blau = 0; //Variable für den umgerechneten Wert von Fader 2
int i = 1; //Zählvariable für den Taster
int smooth1 = 0; //Variable zum glätten des 1. Faders
int smooth2 = 0; //Variable zum glätten des 2. Faders
int smooth3 = 0; //Variable zum glätten des 3. Faders
unsigned long previousMillis = 0; //Zählvariable für den Millis Timer
zum blinken der Taster LED
const long interval = 350; //Blinkintervall der Taster LED in ms
int ledState = LOW; //Variable für den zustand der LED
void setup()
{
[Link](3); //Festlegen auf welchem PIN der DMX
Ausgang ist
[Link](512); //Festlegen, wie viele Kanäle der
Controller sendet
pinMode(4, INPUT); //Eingang für den Taster festlegen
pinMode(13, OUTPUT); //Ausgang für die LED festlegen
[Link](9600); //[Link] für den seriellen Monitor
}
void loop()
{
unsigned long currentMillis = millis();
[Link](33,255);
digitalWrite(7, HIGH);
[Link]("i: ");
[Link](i);
[Link](" ");
if(i==0)
{
Poti = analogRead(A0);
if((digitalRead(4))== HIGH)
{
i=1;
delay(400);
}
digitalWrite(13, HIGH);
//--Rot--//
if(Poti <= 350)
{
Wert1 = map(Poti,0,350,255,0);
[Link](Adresse, Wert1);
}
else if(Poti >700 && Poti <=1024)
{
Wert1 = map(Poti, 700, 1024, 0, 255);
[Link](Adresse,Wert1);
}
else
{
[Link](Adresse, 0);
}
//--Blau--//
if(Poti >= 351 && Poti <= 680)
{
Wert2 = map(Poti,351,680, 0, 255);
[Link](Adresse +2, Wert2);
}
else if (Poti >= 680 && Poti <= 700)
{
[Link](Adresse +2, 255);
}
else if (Poti >700 && Poti <= 900)
{
Wert2 = map(Poti, 700, 900, 255, 0);
[Link](Adresse +2, Wert2);
}
else
{
[Link](Adresse +2, 0);
}
//--Grün--//
if(Poti >=20 && Poti <= 340)
{
Wert3 = map(Poti, 20, 340, 0, 255);
[Link](Adresse +1, Wert3);
}
else if(Poti > 340 && Poti < 360)
{
[Link](Adresse +1, 255);
}
else if(Poti >= 360 && Poti <= 680)
{
Wert3 = map (Poti, 360, 680, 255, 0);
[Link](Adresse +1, Wert3);
}
else if (Poti > 680)
{
[Link](Adresse +1, 0);
}
else if (Poti<=19)
{
[Link](Adresse +1, 0);
}
[Link]("Poti: ");
[Link](Poti);
else if(i==1)
{
[Link](" Fader 1: ");
[Link](Fader1);
[Link](" Fader 2: ");
[Link](Fader2);
[Link](" Fader 3: ");
[Link](Fader3);
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
digitalWrite(13, ledState);
}
if((digitalRead(4))== HIGH)
{
i=0;
delay(400);
}
Fader1 = Fader1*0.4+0.6*analogRead(A1);
Rot = map(Fader1,0,1022,255,0);
[Link](Adresse, Rot);
Fader2 = Fader2*0.4+0.6*analogRead(A2);
Gruen = map(Fader2,0,1022,255,0);
[Link](Adresse+1, Gruen);
Fader3 = Fader3*0.4+0.6*analogRead(A3);
Blau = map(Fader3,0,1021,255,0);
[Link](Adresse+2, Blau);