Moin, Ich lese ein CMPS 14 Kompassmodul (http://www.robot-electronics.co.uk/files/cmps14.pdf) per I2C aus, wie hier beschrieben: http://www.robot-electronics.co.uk/htm/arduino_examples.htm#CMPS12/11%20I2C Ja, das Beispiel ist für CMPS12, aber die Register liegen gleich. Das funktioniert auch erstmal, Pitch und Roll sehen gut aus, aber das Heading springt beim Start jedes Mal auf 306,6°, egal wie der Kompass gerade ausgerichtet ist. Drehungen werden dann korrekt erkannt, aber eben nicht bezogen auf das Erdmagnetfeld. Auch ein starker Magnet in der Nähe hat keinerlei Auswirkung auf die Ausgabe. Es wirkt, als ob nur die Drehung gemessen würde, nicht aber das Magnetfeld... Muss ich dem internen Kalibrierungsprozess mehr Zeit geben, oder mache ich etwas grob falsch? Der 14 soll ja schon kalibriert sein... Ich habe das Modul schon um alle Achsen gedreht, 8-Bewegungen ausgeführt, abgewartet... Die Ausgabe in Ruhelage bleibt absolut stabil. Nur eben bezogen auf die Ausgangslage, nicht auf das Erdmagnetfeld. Ich würde mich freuen, wenn mir jemand ein Tipp geben kann... Ich hatte vor Jahren schon mal eine CMPS10 oder 11, der funktionierte einwandfrei.
MagnetoMaxe schrieb: > Ich würde mich freuen, wenn mir jemand ein Tipp geben kann... Versuche es mit systematischer Fehlersuche. Wie sehen die Rohdaten vom Magnetometer aus (Serial Command 0x19 bzw. I²C Register 0x06..0x0B)?
Soviele Möglichkeiten gibt es nicht. 1. Der Magnetometerteil des Chips ist defekt 2. Irgendwer hat mit einem starken Magneten im Chip etwas ferromagnetisches (gibt es das?) in die Sättigung magnetisiert 3. Die Kalibration ist irgendwo an die Wand gefahren (sollte sich aber rückstellen lassen).
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.