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");
Thgomas T. schrieb:> Ich benutze die Arduino 1.6.7 IDE. Beim Kompilieren wird keine> Fehlermeldung angezeigt
Compilieren allein reicht nicht, du musst den Code auch noch
in deinen Arduino laden.
Hast du in deiner IDE den richtigen Arduino eingestellt?
Bekomst du nach dem Start die Meldungen am Aruino Terminal
angezeigt?
Fragen über Fragen ....
Hallo zusammen. Der 8 ist an 5V angeschlossen, ist ein etwas
ungeschickter Winkel so dass man es nicht sieht.
Selbstverständlich habe ich es nach dem kompilieren hochgeladen. Das
richtige Board ist auch ausgewählt. Ich habe ein Beispielprojekt
hochgeladen und das funktionierte wunderbar.
Die entsprechenden Meldungen wurden auch im Serial Monitor angezeigt.
Thgomas T. schrieb:> Hallo zusammen. Der 8 ist an 5V angeschlossen, ist ein etwas> ungeschickter Winkel so dass man es nicht sieht.
Nö, Pin 8 geht auf Pin 3 und Pin 7 hängt an 5V
Richtig Pin 8 geht auf Pin 3, so wie in der Schaltung vorgesehen.
Pin 7 geht nicht auf 5V. Die 5V gehen auf Pin 8. Wie gesagt schlechter
Winkel. Kann gerne nochmal ein Foto aus einem anderen Winkel machen
Thgomas T. schrieb:> Die 5V gehen auf Pin 8. Wie gesagt schlechter> Winkel.
Bei dem Bild gibts eigentlich kein Platz für eine Fehlinterpretation.
Das kurze Kabel von oben geht klar eine Reihe neben das Kabel das von
Pin 8 zu Pin 3 geht, nicht oberhalb und (hoffentlich) auch nicht in das
selbe Loch.
hast du wenigstens nachgeschaut ob du dich nicht verstöpselt hast, oder
ist der abisolierte Teil des Kabels abgebrochen und das Kabel lappert
einfach nur ohne Kontakt rum.
Korrektur:
Wenn es exakt im Aufnahmewinkel abgeknickt ist könnte es auch in das
oberste Loch der 8er Reihe gehen.
Mess hal mal nach ob an den IC Pins die richtigen Spannungspotentiale
liegen.
Aber nicht abrutschen und Kurzschlüsse machen.
Richtig, ich habe es auf Pin2 gelegt, aber auch im Quellcode geändert.
Ursprünglich lag es auch auf Pin 3 und der Quellcode hatte auch den 3.
Pin definiert.
Geht beides aber nicht
Nimmt mal eine andere Version unterhalb von 1.6.6.
Ich hatte bisher nur Ärger mit der neueren Version.
Es gab auch keine Fehlermeldungen und nicht lief.
Das mit der 1.6.6 Teste ich eben.
Ja der Winkel war wirklich ungünstig. Ich habe es mehrmals gecheckt 5V
gehen 100%ig in Pin 8.
Wenn mangenau hinschaut sieht man auch dass bei Pin 7 kein Draht aus dem
Kabel von 5V in ein Loch geht.
Aber wie gesagt. Ich habe es gegengecheckt udn zwischen Pin 8 und 5 4,6V
spannung gemessen
Bernd schrieb:> Arduino 1.6.5-r5
Gerade auch probiert. Kein Unterschied
Kann es denn daran liegen dass ich einen 120 Ohm anstatt 100 Ohm
Widerstand benutze und einen SN75176BP?
Thgomas T. schrieb:> Dazu habe ich versucht alles nachzu machen wie es hier beschrieben ist,> jedoch komme ich zu keinem Ergebnis
Und ich hatte das bisher so verstanden, dass es eindeutig nicht auf
Anhieb funktioniert (:-
Statt wildem Rumprobieren mit irgendwelchen historischen Arduino-IDEs,
würde ich mal systematisch vorgehen. Es müssen nur zwei Fehler
zusammenkommen und man kann bis in alle Ewigkeiten probieren.
Also was hast du für Messmittel, um den Dingen auf die Finger zu gucken?
Schon ein kleiner Logikanalysator für 8€ wäre neben einem Multimeter
sehr hilfreich.
Ahhh okay es geht.
Die Zeile 34 muss in der Datei DmxSimple.cpp geändert bzw. erweitert
werden:
#if defined(_AVR_ATmega168_) || defined(_AVR_ATmega168P_) ||
defined(_AVR_ATmega328P_) || defined(_AVR_ATmega1280_) ||
defined(_AVR_ATmega2560_)
Dann geht es auch mit einem 2560er.
Danke für die Hilfe!
War auch gerade dort angekommen. Allerdings hätte auch die Meldung:
warning "DmxSimple does not support this CPU"
erscheinen müssen.
@W.A. Die Arduino-Version 1.6.6 ist nicht ganz okay. Schau mal in die
Foren. Programme die unter 1.6.5 anstandslos liefen, funktionieren mit
der neuen Version nicht mehr.
Bernd schrieb:> Programme die unter 1.6.5 anstandslos liefen, funktionieren mit> der neuen Version nicht mehr.
Die neue Version ist 1.6.7 und bisher bin ich dort auf keine
Schwierigkeiten gestoßen, außer dass das Suchfenster immer noch gerne
mal im Hintergrund geöffnet wird :-( grrrh.
Die Programme werden vom GCC übersetzt, was hat das mit der IDE zu tun.