PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ERLEDIGT] Kompassmodul liefert keine richtigen Daten mehr



arnoa
09.11.2011, 08:09
Hallo!
Verwende seit ca. einer Woche das Kompassmodul HDMM01 (von Pollin) welches auch ganz gut funktioniert hat. Die gelieferten Daten waren zwar zum Teil recht ungenau, aber für die ersten Versuche mit einem el. Kompass ausreichend.

Seit gestern sendet mir das Modul entweder gar keine Daten mehr, oder 0 für x und y oder immer die gleichen Werte (auch bei Drehung) welche weit weg von den richtigen Daten sind.

Spannung liegt an (4,96 Volt). Auf SDA und SCL scheint auch was rauszukommen lt. Voltmeter. Leider habe ich kein Oszilloskop um z.B. den Clock zu sehen.

Kennt jemand dieses Verhalten?
Gibt es etwas was man in diesem Fall versuchen kann?

Bin für jeden Hinweis sehr dankbar!

LG, Arno

BMS
11.11.2011, 17:47
Hallo,
hast du vielleicht in der Zeit etwas an der Hardware oder Software geändert?
Wie schnell läuft der SCL-Takt und wie groß sind deine Pullups?
Ist die Verdrahtung zum Kompass möglichst kurz?
Und läuft der Mikrocontroller auch für sich allein einwandfrei?
Sind erst mal viele Fragen, aber sonst kann man schlecht einschätzen, was da so vor sich geht ;)
Grüße,
Bernhard

arnoa
12.11.2011, 15:20
Hallo Bernhard!

Geändert hab ich werder an der Hardware etwas noch an der Software. Wie gesagt, das Kompassmodul hat gut funktioniert.

Hab leider kein Oszi, somit tu ich mir schwer SCL zu messen. Gibts eine andere Möglichkeit den SCL zu messen?
Pullups verwende ich nicht. Brauche ich bei dem Modul HDMM01 überhaupt welche?
Drahtlänge is ca. 10cm.
Mein Arduino Mega Board läuft ansonsten ganz normal.

Danke, Arno

BMS
12.11.2011, 15:38
Hab leider kein Oszi, somit tu ich mir schwer SCL zu messen. Gibts eine andere Möglichkeit den SCL zu messen?
Pullups verwende ich nicht. Brauche ich bei dem Modul HDMM01 überhaupt welche?
Nun ja, der SCL-Takt wird vom Microcontroller auf dem Arduino festgelegt, irgendwo in deinem Programm wird das definiert ;)
Pull-ups brauchst du bei I2C unbedingt, da wundert es mich ja schon fast, warum das überhaupt schon mal funktioniert haben soll
wenn du überhaupt keine eingebaut hast !!?? Nimm 2 Widerstände mit je 4,7kOhm (oder kleiner) und schalte einen zwischen
SDA und +5V und den anderen zwischen SCL und +5V.
;)
Grüße,
Bernhard

arnoa
12.11.2011, 17:43
Danke mal f den Hinweis mit den Pulldowns. Hab mich orientiert an einem Aufbau den ich im Netz gefunden habe - dort waren auch keine Pulldowns verbaut.
Wie auch immer, hab jetzt die zwei Wiederstände dazu gegeben - hat leider auch nichts geändert :(

Bzgl. Progamm - ich verwende zum Testen eins was ich im auch Netz gefunden habe und das eben schon funktioniert hat. Programm und Output ist unter http://www.aurob.com/?p=467 zu sehen.

DANKE, Arno

BMS
12.11.2011, 18:42
Die Widerstände heißen Pullups, nicht Pulldowns ;)

arnoa
12.11.2011, 19:13
Natürlich, sorry
Mhhh - funktioniert leider immer noch nicht. Bekomme einfach nichts zurück - bei while(Wire.available()<4) steht es an.
Wenn ich das rausnehme läuft zwar mein loop, aber meine Bytes sind leer ;(
Kann es sein, dass ich das Modul umgebracht habe mit den fehlenden Pullups?

BMS
12.11.2011, 19:40
Kann es sein, dass ich das Modul umgebracht habe mit den fehlenden Pullups?
Das kann ich mir kaum vorstellen.
Noch eine andere Frage: Hast du noch ein Ersatz-Kompassmodul?
Mit der Programmierung speziell des Arduino kenne ich mich nicht aus.
C++ kann ich aber.
Grüße,
Bernhard

arnoa
12.11.2011, 20:14
Nein, leider nicht.
Hab glaub ich auch sonst nichts um SCL und SDA testen zu können.

arnoa
21.11.2011, 07:43
Hab mir letzte Woche noch ein Kompassmodul (das gleiche von Pollin - HDMM01) bestellt. Am Wochenende konnte ich das Modul verbauen - funktioniert problemlos. Anscheinend hat das erste Modul irgendwie seinen Geist aufgegeben. Wie auch immer, hab wieder ein Kompassmodul und kann jetzt meinen Bot gezielt (mit Abweichung ;)) in eine gewünschte Richtung schicken.
Nächstes Wochenende möchte ich noch meine Gabellichtschranken an den Achsen verbauen. Dann hab ich nicht nur die Richtung in der mein Bot fährt, sonder auch noch den Weg - das sollte eigentlich der Grundstein sein um eine Map zu erstellen. Bin schon gespannt ob das alles so läuft wie ich es mir vorstelle ;)