Hallo!
Ich versuche einen BM1422AGMV Magnetsensor zu verwenden, kann ihm jedoch
keine korrekten Messdaten entlocken.
Es kommt ständig nur 2047 für alle Achsen im 12-Bit-Modus und 8191 im
14-Bit-Modus zurück.
Dabei habe ich mich beim Programmieren an das Datenblatt gehalten:
https://fscdn.rohm.com/en/products/databook/datasheet/ic/sensor/geomagnetic/bm1422agmv-e.pdf
(Implementiert habe ich den Single Mode, den ich zyklisch aufrufe.)
Ich verwende ein Raspberry Pi Zero W, womit der BM1422AGMV mittels I2C
und der DRDY-Leitung verbunden ist. Der relevante Schaltplanausschnitt
als Bild ist anbei. Am Pi verwende ich WiringPi. Die I2C Kommunikation
funktioniert, denn das "Who I am"-Register wird korrekt gelesen und es
gibt noch weitere Chips, mit denen ebenfalls erfolgreich kommuniziert
wird.
Die Ausgabe ist jedoch folgende:
1
I2C communication to magnet sensor successfully setup.
2
Magnetometer is now in single mode.
3
Measurement triggered...
4
X= 2047 Y= 2047 Z= 2047
5
Measurement triggered...
6
X= 2047 Y= 2047 Z= 2047
7
Measurement triggered...
8
X= 2047 Y= 2047 Z= 2047
9
Measurement triggered...
10
X= 2047 Y= 2047 Z= 2047
11
.
12
.
13
.
14
.
Hier mein Code:
main.cpp:
1
[...]
2
3
//Magnetsensor initialisieren und "Single Mode" (siehe Datenblatt S.17) aktivieren
Hallo Frager,
am Besten mal den Offset Abgleich auskommentieren oder den Default Wert
30h schreiben. 00h ist kein gültiger Wert für die Offset Register.
Viele Grüße
Antworter
Hallo Antworter!
Danke für deinen Tipp! Du hast absolut Recht, daran lag es! Dabei habe
ich es sogar schon ausprobiert, den Offset auszukommentieren, hat aber
nicht geholfen, da ich es vorhin schon geschrieben gehabt habe. Habe
auch glatt übersehen, dass nicht 0x00, sondern 0x30 der Standardwert
ist. Wieder was gelernt!
Danke dir nochmals! Du hast mir sehr geholfen!!