Sie sind auf Seite 1von 3

#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()
{
DmxSimple.usePin(3); //Festlegen auf welchem PIN der DMX
Ausgang ist
DmxSimple.maxChannel(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
Serial.begin(9600); //Serial.begin für den seriellen Monitor
}

void loop()
{
unsigned long currentMillis = millis();
DmxSimple.write(33,255);
digitalWrite(7, HIGH);
Serial.print("i: ");
Serial.print(i);
Serial.print(" ");

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);
DmxSimple.write(Adresse, Wert1);
}
else if(Poti >700 && Poti <=1024)
{
Wert1 = map(Poti, 700, 1024, 0, 255);
DmxSimple.write(Adresse,Wert1);
}
else
{
DmxSimple.write(Adresse, 0);
}

//--Blau--//
if(Poti >= 351 && Poti <= 680)
{
Wert2 = map(Poti,351,680, 0, 255);
DmxSimple.write(Adresse +2, Wert2);
}
else if (Poti >= 680 && Poti <= 700)
{
DmxSimple.write(Adresse +2, 255);
}
else if (Poti >700 && Poti <= 900)
{
Wert2 = map(Poti, 700, 900, 255, 0);
DmxSimple.write(Adresse +2, Wert2);
}
else
{
DmxSimple.write(Adresse +2, 0);
}

//--Grün--//
if(Poti >=20 && Poti <= 340)
{
Wert3 = map(Poti, 20, 340, 0, 255);
DmxSimple.write(Adresse +1, Wert3);
}
else if(Poti > 340 && Poti < 360)
{
DmxSimple.write(Adresse +1, 255);
}
else if(Poti >= 360 && Poti <= 680)
{
Wert3 = map (Poti, 360, 680, 255, 0);
DmxSimple.write(Adresse +1, Wert3);
}
else if (Poti > 680)
{
DmxSimple.write(Adresse +1, 0);
}
else if (Poti<=19)
{
DmxSimple.write(Adresse +1, 0);
}
Serial.print("Poti: ");
Serial.println(Poti);

else if(i==1)
{
Serial.print(" Fader 1: ");
Serial.print(Fader1);
Serial.print(" Fader 2: ");
Serial.print(Fader2);
Serial.print(" Fader 3: ");
Serial.println(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);
DmxSimple.write(Adresse, Rot);

Fader2 = Fader2*0.4+0.6*analogRead(A2);
Gruen = map(Fader2,0,1022,255,0);
DmxSimple.write(Adresse+1, Gruen);

Fader3 = Fader3*0.4+0.6*analogRead(A3);
Blau = map(Fader3,0,1021,255,0);
DmxSimple.write(Adresse+2, Blau);

Das könnte Ihnen auch gefallen