Komme bei Arduino Projekt nicht weiter.

OP #4446188
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
}
Angehängte Dateien:
Gast #4446216
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 ....
OP #4446566
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.
Gast #4446612
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.
Gast #4446617
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.
OP #4446652
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
Gast #4446718
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.
OP #4446734
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!
Gast #4446740
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.
Gast #4446746
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren