본문 바로가기

[SENSOR]/Gyro

[L3G4200D] 3축 자이로센서 테스트

[L3G4200D] 3축 자이로센서 테스트

 

 

 

 

 

L3G4200_DS.pdf

 

 - 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 자이로센서 테스트 동영상

자이로 센서의 각속도값을 적분하여 절대 위치를 표시하도록 해 보았다. 이번 테스트에는 샘플레이트가 높지 않고, 센서 자체에 드리프트가 있기 때문에 고속으로 움직이면 누적 오차가 발생하는 것을 볼수 있는데... 그렇다고 해도 다른 자이로 센서보다는 아주 안정적인것 같다.