ncdcommunity / Arduino_Library_ITG3200_16Bit_3Axis_Gyro_Angular_Sensor

ITG-3200 16-Bit 3-Axis Gyro Angular Sensor Interfacing With Arduino
https://store.ncd.io/product/itg-3200-16-bit-3-axis-mems-gyro-angular-rate-sensors-i2c-mini-module/
0 stars 1 forks source link

ITG3200

ITG3200

This is InvenSense’s ITG-3200, a groundbreaking triple-axis, digital output MEMS gyroscope.The ITG-3200 features three 16-bit analog-to-digital converters (ADCs) for digitizing the gyro outputs, a user-selectable internal low-pass filter bandwidth, and a Fast-Mode I2C (400kHz) interface. This Device is available from www.ncd.io

[SKU: ITG3200_I2CS]

(https://store.ncd.io/product/itg-3200-16-bit-3-axis-mems-gyro-angular-rate-sensors-i2c-mini-module/) This Sample code can be used with Arduino.

Hardware needed to interface ITG3200 sensor with Arduino

  1. Arduino Nano

  2. Arduino Micro

  3. Arduino uno

  4. Arduino Due

  5. ITG3200 16-Bit 3-Axis MEMS Gyro Angular Sensor

  6. I2C Cable

ITG3200:

This is InvenSense’s ITG-3200, a groundbreaking triple-axis, digital output MEMS gyroscope.The ITG-3200 features three 16-bit analog-to-digital converters (ADCs) for digitizing the gyro outputs, a user-selectable internal low-pass filter bandwidth, and a Fast-Mode I2C (400kHz) interface.

Applications:

• Motion-enabled game controllers

• Motion-based portable gaming

• Motion-based 3D mice and 3D remote controls

• “No Touch” UI

• Health and sports monitoring

How to Use the ITG3200 Arduino Library

The ITG3200 has a number of settings, which can be configured based on user requirements.

1.Full-Scale Range:The following command is used to set the Full-Scale Range for the Gyro Sensor.

        itg.setFSRange(FSR_2000);                       // ±2000°/sec

2.Digital Low Pass Filter Configuration:The following command is used to set the Digital Low Pass Filter Configuration.

          itg.setDLPFBandwidth(DLPF_CFG_256);             // Low Pass Filter Bandwidth: 256 Hz, Internal Sample Rate: 8 kHz

3.Logic Level for INT Output Pin:The following command is used to set the Logic Level for INT Output Pin LOW.

          itg.setINTLogic(INT_LOGIC_LOW);                 // Logic level for INT Output Pin: Active Low

4.Drive Type for INT Output Pin:The following command is used to set the Drive Type for INT Output Pin as Open Drain.

          itg.setINTDrive(DRIVE_LOGIC_OPEN);              // Drive Type for INT Output Pin: Open Drain

5.Latch mode:The following command is used to configure the Latch mode as Latch untill Interrupt is cleared.

          itg.setLatchMode(LATCH_MODE_LATCH);             // Latch until Interrupt is Cleared

6.Latch clear:The following command is used to clear the read register.

          itg.setLatchClear(LATCH_CLEAR_ANY);             // Latch Clear Method: Any Register Read

7.Interrupt Status:The following command is used to Disable Interrupt when Device is Ready.

          itg.setINTDevice(INTERRUPT_DEVICE_DISABLE);     // Disable Interrupt when Device is Ready (PLL Ready after changing Clock Source)

8.Interrupt data:The following command is used to Disable Interrupt when Data is Ready.

          itg.setINTData(INTERRUPT_DATA_DISABLE);         // Disable Interrupt when Data is Ready

9.PLL setting:The following command is used to set PLL as NOt READY.

          itg.setPLLReady(PLL_NOT_READY);                 // PLL Not Ready

10.Raw data Setting:The following command is used to set the Raw data as NOT READY.

          itg.setRawDataReady(RAW_DATA_NOT_READY);        // Raw Data Not Ready

11.Device reset:The following command is used to Disable Reset Device and Internal Registers to the Power-Up-Default Settings.

          itg.setDeviceReset(DEVICE_RESET_DISABLE);       // Disable Reset Device and Internal Registers to the Power-Up-Default Settings

12.Sleep mode:The following command is used to Disable Low Power Sleep Mode.

          itg.setSleepMode(SLEEP_MODE_DISABLE);           // Disable Low Power Sleep Mode

13.Output X-Axis setting:The following command is used to set Gyro X in Normal Mode.

           itg.setGyroXMode(GYRO_X_NORMAL);                // Gyro X in Normal Mode

14.Output X-Axis setting:The following command is used to set Gyro Y in Normal Mode.

           itg.setGyroYMode(GYRO_Y_NORMAL);                // Gyro Y in Normal Mode

15.Output Z-Axis setting:The following command is used to set Gyro Z in Normal Mode.

            itg.setGyroZMode(GYRO_Z_NORMAL);                // Gyro Z in Normal Mode

16.Clock setting:The following command is used to set the device clock source as PLL with X Gyro.

             itg.setClockSource(PLL_GYRO_X_REF);             // PLL with X Gyro Reference