http://www.catcan.com.tw/resources/file_download/smartsensorlitemanualv1.0.pdf?attredirects=0&d=1
CATCAN網站上有使用Arduino讀SmartSensor的接線和程式教學
#include <Wire.h> //library of arduino wire.h
byte Data[6]={0,0,0,0,0,0}; // data array used to receive data from sensor
uint8_t start_offset = 0x00;
float Pitch; // after divided by100, pitch should be float
float Roll; // after divided by100, pitch should be float
float Yaw; // after divided by100, pitch should be float
void setup()
{
Wire.begin();
Serial.begin(115200); // for serial monitoring
}
void loop(){
Wire.beginTransmission(0x18); // indicate the slave address 0X18
Wire.write(start_offset); // send the starting register address 0x00=pitch
Wire.endTransmission();
Wire.requestFrom(0x18, 6); // read 2 bytes from 0X18
while(Wire.available()){
Data[0]=Wire.read(); // first received data LSB
Data[1]=Wire.read(); // second received data MSB
Data[2]=Wire.read(); // first received data LSB
Data[3]=Wire.read(); // second received data MSB
Data[4]=Wire.read(); // first received data LSB
Data[5]=Wire.read(); // second received data MSB
}
Pitch=(Data[1] <<8|Data[0] )*0.01; // combine MSB,LSB and divided by 100
Roll=(Data[3] <<8|Data[2] )*0.01; // combine MSB,LSB and divided by 100
Yaw=(Data[5] <<8|Data[4] )*0.01; // combine MSB,LSB and divided by 100
Serial.print("X:");
Serial.println(Pitch); // show pitch data on serial monitor
Serial.print("Y:");
Serial.println(Roll); // show pitch data on serial monitor
Serial.print("Z:");
Serial.println(Yaw); // show pitch data on serial monitor
delay(1000);
}
接線方式:黑線是接地,綠線接VCC,藍線接Arduino上的SDA,黃線接Arduino上的SLC。
沒有留言:
張貼留言