- Three selectable full scales (250/500/2000 dps)
- I2C/SPI digital output interface
- 16 bit-rate value data output
- 8-bit temperature data output
L3G4200D 블록도
//L3G4200D의 특정 레지스터 값을 읽음
unsigned char L3G4200_Read(unsigned char reg)
{
#ifdef L3GI2C_I2C_MODE
// device address 및 write mode 설정
L3GI2C_START(L3G4200D_SLAVE_ADDR + I2C_WRITE);
if (len > 1)
L3GI2C_WRITE(addr | L3G4200D_READ_MULTIPLE);
else
L3GI2C_WRITE(addr);
// read로 전환해서 REPEATED START
L3GI2C_START(L3G4200D_SLAVE_ADDR + I2C_READ);
while(--len > 0)
{
*data++ = L3GI2C_READ_ACK();
}
*data = L3GI2C_READ_NAK();
L3GI2C_STOP();
#endif
}
//L3G4200D의 특정 레지스터에 데이터를 기록
void L3G4200_Write(unsigned char reg, unsigned char data)
{
#ifdef L3GI2C_I2C_MODE
L3GI2C_START(L3G4200D_SLAVE_ADDR+I2C_WRITE); // device address 및 write mode 설정
L3GI2C_WRITE(addr);
while(len--)
L3GI2C_WRITE(*data++);
L3GI2C_STOP();
#endif
}
L3G4200D 자이로센서 테스트 동영상
자이로 센서의 각속도값을 적분하여 절대 위치를 표시하도록 해 보았다. 이번 테스트에는 샘플레이트가 높지 않고, 센서 자체에 드리프트가 있기 때문에 고속으로 움직이면 누적 오차가 발생하는 것을 볼수 있는데... 그렇다고 해도 다른 자이로 센서보다는 아주 안정적인것 같다.