PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CMPS10 Kalibrieren



efb
03.03.2014, 11:25
Hallo,

ich habe hier ein Kompassmodul CMPS10, das ich über I2C anspreche. Es gibt einen Wert von 0-255 äquvalent zu 360° aus. Soweit so gut.

Problem 1)
Wenn ich bei 0 anfange, messe ich nach Drehung um jeweils 90 Grad: 0, 71, 123, 177 (also Differenz nach jeweils 90°: 71,52,54,78 )
Ich gehe jetzt mal davon aus, das die Daten beim Verändern des Moduls aber alle 90° eine Differnz von 64 haben sollten, was kann da nicht stimmen? Die Messungen sind ohne Nähe von Eisen oder Elektronik und an zwei Stellen im Zimmer gemacht, sie bleiben ähnlich.

Problem 2)
Nun wollte ich das Modul kalibrieren.

"enter the calibration mode by writing 0xF0 to the command register (22). To calibrate the first point write 0xF5 to the command register, this should also light the LED, then move the object through 90° and write 0xF5 to the command register. Repeat this twice more so four points are calibrated and the LED should also turn off to confirm calibration completion. "

Ich verwende dazu HTerm und einen USB-I2C Adapter von ELV, Geräteadresse ist C0

Wenn ich
s C0 22 F0
und danach
s C0 22 F5
zum Modul schicke, bekomme ich zwar ein K als Antwort, die Modul-LED geht aber nicht an, er ist also nicht im Kalibriermodus.

Was mache ich da falsch?



Vielen Dank und Viele Grüße


Ernst

damfino
06.03.2014, 10:05
Eigentlich passen die Befehle. Aber ein Punkt: Adresse C0 ist hex, Register 22 ist dez, F0 ist wieder hex. Schicke mal anstatt 22dez besser 16 hex rüber (C0 16 F0) vielleicht geht es dann.
LED bleibt an bis der Kompass kalibriert ist, kann auch nach nur 3 Messstellen sein.
Besonders genau finde ich ihn aber nicht, ich hab immer wieder in Richtung Westen 270° große Abweichungen.

LG!

efb
07.03.2014, 15:21
Genau das wars :)

Die 22 war wirklich dezimal gemeint, mit 16 hat es dann auf Anhieb funktioniert.

Jetzt sind die Werte beim ersten groben Test auch äquivalent (Hab hier gerade 0, 64, 126 und 187 gemessen)


Vielen Dank für den super Tipp!

Ernst