Hallo zusammen.
Ich sitze grad an meinem ersten Arduino Projekt.
Mein Ziel ist es einfach das hier zum laufen zu bringen
http://danlin.de/projekte/arduino-dmx/
also quasi eine simple DMX Steuerung.
Dazu habe ich versucht alles nachzu machen wie es hier beschrieben ist,
jedoch komme ich zu keinem Ergebnis. Ich benutze einen Arduino Mega
2560.
Hier ein Bild von meinem Aufbau.
Der einzige unterschied zum Schaltplan ist dass ich anstatt dem 100 Ohm
Widerstand einen 120er genommen habe. Ausserdem benutze ich einen
SN75176BP. Die Kerbe von diesem IC ist links im Bild.
Die gemessene Spannung am Ausgang des Arduino Boards beträgt 4.6V
Ansonsten habe ich Quellcode um die Zeilen
1 | DmxSimple.write(3, 129);
|
2 | delay(1000);
|
3 | DmxSimple.write(4, 129);
|
4 | delay(1000);
|
5 | DmxSimple.write(6, 129);
|
6 | delay(1000);
|
ergänzt. Einfach als Test um zu schauen ob überhaupt was rauskommt.
Ich benutze die Arduino 1.6.7 IDE. Beim Kompilieren wird keine
Fehlermeldung angezeigt
Hat jemand Tips woran das liegen könnte?
Im Anhang ist noch ein Bild vom Aufbau.
1 | #include <DmxSimple.h>
|
2 |
|
3 | #define DMX_MAXCHANNEL 512
|
4 |
|
5 | void dmx_reset() {
|
6 | int channel = 1;
|
7 | int value = 0;
|
8 | for (channel = 1; channel <= DMX_MAXCHANNEL; channel++) {
|
9 | DmxSimple.write(channel, value);
|
10 | delay(100);
|
11 | }
|
12 | }
|
13 |
|
14 | void setup() {
|
15 | DmxSimple.usePin(2);
|
16 | DmxSimple.maxChannel(DMX_MAXCHANNEL);
|
17 |
|
18 | // dmx_reset();
|
19 |
|
20 | Serial.begin(115200);
|
21 | Serial.println("SerialToDmx ready");
|
22 | Serial.println();
|
23 | Serial.println("Syntax:");
|
24 | Serial.println(" 123c : use DMX channel 123");
|
25 | Serial.println(" 45v : set current channel to value 45");
|
26 | Serial.println(" r : reset, set all channels to 0");
|
27 |
|
28 | DmxSimple.write(3, 129);
|
29 | delay(1000);
|
30 | DmxSimple.write(4, 129);
|
31 | delay(1000);
|
32 | DmxSimple.write(6, 129);
|
33 | delay(1000);
|
34 | }
|
35 |
|
36 | int value = 0;
|
37 | int channel;
|
38 | void loop() {
|
39 | int c;
|
40 | while(!Serial.available());
|
41 | c = Serial.read();
|
42 | if ((c>='0') && (c<='9')) {
|
43 | value = 10*value + c - '0';
|
44 | } else {
|
45 | if (c=='c') channel = value;
|
46 | else if (c=='v') {
|
47 | DmxSimple.write(channel, value);
|
48 | } else if (c=='r') {
|
49 | dmx_reset();
|
50 | }
|
51 | value = 0;
|
52 | }
|
53 | }
|