Forum: Mikrocontroller und Digitale Elektronik Komme bei Arduino Projekt nicht weiter.


von Thgomas T. (helyxc)


Angehängte Dateien:

Lesenswert?

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
}

von Stefan K. (stefan64)


Lesenswert?

Täuscht das oder ist Pin 8 nicht mit 5V verbunden?

von Stefan K. (stefan64)


Lesenswert?

Das Bild sieht so aus, als ob die 5V-Verbindung auf Pin 7 geht und Pin 3 
und Pin 8 in der Luft hängen.

Gruß, Stefan

von Mitlesa (Gast)


Lesenswert?

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 ....

von Thgomas T. (helyxc)


Lesenswert?

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.

von Der Andere (Gast)


Lesenswert?

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

von Thgomas T. (helyxc)


Lesenswert?

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

von Der Andere (Gast)


Lesenswert?

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.

von Der Andere (Gast)


Lesenswert?

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.

von Thgomas T. (helyxc)


Lesenswert?

Ich habe zwischen Pin 8 und Pin 5 4,6V gemessen. Spannung ist also 
vorhanden

von Bernd (Gast)


Lesenswert?

In der Schaltung liegt Arduino Pin3 an IC Pin4

von Thgomas T. (helyxc)


Lesenswert?

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

von Bernd (Gast)


Lesenswert?

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.

von Dieter S. (Gast)


Lesenswert?

Wenn der Winkel der Aufnahme wirklich so schlecht ist, wohin geht denn 
das Kabel von Pin3 des IC?
Und was bedeutet die Beschriftung auf dem DMX-Kabel?

von Thgomas T. (helyxc)


Lesenswert?

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

von Bernd (Gast)


Lesenswert?

ne, unterhalb 1.6.6. Die ist nun ganz blöd.

von Thgomas T. (helyxc)


Lesenswert?

Oh. Kannst du eine Spezielle empfehlen?

von Thgomas T. (helyxc)


Lesenswert?

Ich habs mit der 1.0.6 probiert. Kein Unterschied.

Achja zu der Beschriftung der DMX Kabel. Wo hakts beim Verständnis?

von Bernd (Gast)


Lesenswert?

Arduino 1.6.5-r5

von Thgomas T. (helyxc)


Lesenswert?

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?

von W.A. (Gast)


Lesenswert?

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.

von Thgomas T. (helyxc)


Lesenswert?

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!

von Bernd (Gast)


Lesenswert?

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.

von W.A. (Gast)


Lesenswert?

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.

von Andreas (Gast)


Lesenswert?

Die Arduino Bibliotheken sind anders, für so manches Projekt ist das 
tödlich (z.B. OpenSource Firmware für 3D Drucker)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.