nemon 发表于 2013-12-18 13:36:34

[转载] [Arduino模块]CMPS03 罗盘

CMPS03电子罗盘能够检测当前传感器与地球磁场之间的偏角,其分辨率可达0.1度。此传感器可以方便地通过I2C总线连接到控制器上进行数据采集。
代码示例:

/*
CMPS03 with arduino I2C example

This will display a value of 0 - 359 for a full rotation of the compass.

The SDA line is on analog pin 4 of the arduino and is connected to pin 3 of the CMPS03.
The SCL line is on analog pin 5 of the arduino and is conected to pin 2 of the CMPS03.
Both SDA and SCL are also connected to the +5v via a couple of 1k8 resistors.
A switch to callibrate the CMPS03 can be connected between pin 6 of the CMPS03 and the ground.
*/

#include <Wire.h>

#define ADDRESS 0x60 //defines address of compass

void setup(){
Wire.begin(); //conects I2C
Serial.begin(9600);
}

void loop(){
byte highByte;
byte lowByte;

   Wire.beginTransmission(ADDRESS);      //starts communication with cmps03
   Wire.write(2);                         //Sends the register we wish to read
   Wire.endTransmission();

   Wire.requestFrom(ADDRESS, 2);      //requests high byte
   while(Wire.available() < 2);         //while there is a byte to receive
   highByte = Wire.read();         //reads the byte as an integer
   lowByte = Wire.read();
   int bearing = ((highByte<<8)+lowByte)/10;
   
   Serial.println(bearing);
   delay(100);
}


页: [1]
查看完整版本: [转载] [Arduino模块]CMPS03 罗盘