1 | //Arduino DMX_Receiver zur Relaisansteuerung.
|
2 | //Benötigt einen DMX Kanal.
|
3 | //Kanalwerte: 0-20 - Beide Relais aus
|
4 | // 21-117 - Relais 1 an
|
5 | // 118-137 - Beide Relais aus
|
6 | // 138-235 - Relais 2 an
|
7 | // 236-255 - Beide Relais aus
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | #include "DMXSerial.h" //DMXSerial.h library einfügen.
|
13 |
|
14 |
|
15 | const int Relais1 = A0; //Relais Anschlusspins deklarieren.
|
16 | const int Relais2 = A1;
|
17 |
|
18 | void setup () {
|
19 |
|
20 | pinMode(Relais1, OUTPUT); //Anschlusspins als Output setzen.
|
21 | pinMode(Relais2, OUTPUT);
|
22 |
|
23 | DMXSerial.init(DMXReceiver); //DMXSerial als Receiver initialisieren, lauscht auf dem Bus.
|
24 |
|
25 | DMXSerial.write(1, 0); //Vor Start den Wert auf 0 setzen, damit ein ungewolltes Schalten der Relais
|
26 | //verhindert wird.
|
27 |
|
28 | digitalWrite(A0, LOW); //Beide Pins zusätzlich ersteinmal auf LOW setzen.
|
29 | digitalWrite(A1, LOW);
|
30 |
|
31 | }
|
32 |
|
33 |
|
34 | void loop() {
|
35 |
|
36 | int i = 2; //Variable i erzeugen und als DMX Kanal 2 festlegen.
|
37 | //Im späteren Programm soll diese Variable in der loop
|
38 | //jedes mal neu gesetzt werden, damit es möglich ist,
|
39 | //die Adresse von 1 - 512 zu vergeben.
|
40 | //Das Teilprogramm existiert bereits und ist lauffähig.
|
41 |
|
42 |
|
43 | if (DMXSerial.read(i) <= 20){ //Wenn DMX Kanal(i) unter Wert 20 ist, dann...
|
44 | digitalWrite(Relais1, LOW); //Setze beide Relais auf LOW (aus)
|
45 | digitalWrite(Relais2, LOW);
|
46 | }
|
47 | if((DMXSerial.read(i) >= 21) && (DMXSerial.read(i) < 118)){ //Wenn DMX Kanal(i) über/gleich Wert 21 ist und unter Wert 118, dann...
|
48 | digitalWrite(Relais1, HIGH);//Setze Relais1 auf HIGH (an)
|
49 | digitalWrite(Relais2, LOW); //Setze Relais2 auf LOW (aus)
|
50 | }
|
51 | if((DMXSerial.read(i) >= 118) && (DMXSerial.read(i) < 138)){ //Wenn DMX Kanal(i) über/gleich Wert 118 ist und unter Wert 138, dann...
|
52 | digitalWrite(Relais1, LOW); //Setze beide Relais auf LOW (aus).
|
53 | digitalWrite(Relais2, LOW);
|
54 | }
|
55 | if((DMXSerial.read(i) >= 138) && (DMXSerial.read(i) < 236)){ //Wenn DMX Kanal(i) über/gleich Wert 138 ist und unter Wert 236, dann...
|
56 | digitalWrite(Relais1, LOW); //Setze Relaiis1 auf LOW (aus)
|
57 | digitalWrite(Relais2, HIGH); //Setze Relais2 auf HIGH (an)
|
58 | }
|
59 | if(DMXSerial.read(i) >= 236){ //Wenn DMX Kanal(i) über/gleich Wert 236 ist, dann...
|
60 | digitalWrite(Relais1, LOW); //Setze beide Relaus auf LOW (aus)
|
61 | digitalWrite(Relais2, LOW);
|
62 | }
|
63 |
|
64 |
|
65 | }
|