PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kompassmodul cMPS03 + I2C



robot-heinz
22.03.2007, 09:26
Hallo,

ich habe das Kompassmodul CMPS03 über den I2C/r232-Konverter an COM1 des PC (winXP) angeschlossen.
Zum Testen nutze ich das i2c_beispiel_terminal-programm.

Die ID-Adresse des Kompassmoduls ist C0. Eingeben muss ich beim Auslesen aber für die Slave-ID C1 (vermutlich wegen des Lesebits "01".). Als Anzeige erhalte ich 5 Bytes, die sich jedesmal ändern, ohne Veränderung des Kompassmoduls.

Frage: welche Register des Kompassmoduls (0-15) lese ich eigentlich mit dem Terminalprogramm aus?

Frage: Was muss ich verändern, um das Register 1 (Werte 0-255) auszulesen.

Grüsse heinz

robot-heinz
22.03.2007, 16:43
Hallo,

das Terminalprogramm gibt mir im Byte 1 5 Werte von 0 bis 255 aus, die sich auch zyklisch wiederholen und verändern, wenn ich das Modul drehe,
aber mit den Werten kann ich leider nichts anfangen. Der PWM-Ausgang am Kompass verhält sich einwandfrei.

Wie komme ich aber nun zu verwertbaren Werten aus dem Register 1?

Grüsse heinz

Dirk
22.03.2007, 17:06
Wie komme ich aber nun zu verwertbaren Werten aus dem Register 1?

... indem du auf dem I2C-Bus HC0/Ack und anschließend die Registernummer (z.B. 1) an den CMPS03 sendest. Danach kannst du HC1/Ack senden und dann den Inhalt des Registers (Byte) lesen.

Gruß Dirk

robot-heinz
22.03.2007, 17:51
ja, danke!

...aber was zeigt das Terminalprogramm denn dann für Bytes an?.Wo nimmt das die 5 Bytes her?


Grüsse heinz

robot-heinz
27.03.2007, 10:35
Hallo,

zuerst muss mit dem Terminalprogramm und der Adresse 192 das zu lesende Register ausgewählt werden. Dazu wird das 1.Byte (1. Feld) mit 01 beschrieben. Im Register 01 stehen die Kompassdaten 1-255. Das wird jetzt an das Kompassmodul gesendet.

Danach wird empfangen mit der Adresse 193 und man erhält den Inhalt des Registers 01. Bevor man wieder empfängt, muss wieder erst durch Senden das REgister ausgewählt werden.

Das Kompass modul arbeitet sehr genau, wenn er absolut waagerecht positioniert ist und kein Metall näher als 30cm in der Nähe ist. Ein kleines Blechteil in ca. 10 cm macht den Kompass unbrauchbar (Werte schwanken dann zwischen 250 und 50!!).

Grüsse heinz