Корзина
пусто

3-х осевой гироскоп

3-х осевой гироскоп

Нажмите, чтобы увеличить
Цена: 1 550 pуб.
Наличие: Временно отсутствует 
Модель: ITG-3200
Количество: Добавить в корзину
Базовая плата Кабель для модулей Базовая плата Мега Кабель для модулей

3-х осевой гироскоп ITG-3200 от InvenSense, Inc. ITG-3200 имеет три 16-разрядных аналого-цифровых преобразователя (АЦП), программируемый фильтр нижних частот, I²C-интерфейс (400 кГц).

Особенности:

  • трёхосевой MEMS гироскоп
  • цифровой выход  по X-, Y- и Z-осям
  • чувствительность: 14,375 LSB на °/с
  • диапазоном измерений до ±2000 °/с
  • три 16-разрядных АЦП
  • программируемый ФНЧ
  • не требуются ФВЧ
  • датчик температуры
  • питание: 3 - 5 В
  • I²C-интерфейс (400 кГц)
  • время готовности: 50 мс.
  • заводская калибровка
  • размер: 20 x 20 мм.
3-х осевой гироскоп ITG-3200

 

3-х осевой гироскоп ITG-3200

Datasheet ITG-3200

 

Демо код для Ардуино:

#include <Wire.h>
 
// ITG3200 Register Defines
#define WHO	0x00
#define	SMPL	0x15
#define DLPF	0x16
#define INT_C	0x17
#define INT_S	0x1A
#define	TMP_H	0x1B
#define	TMP_L	0x1C
#define	GX_H	0x1D
#define	GX_L	0x1E
#define	GY_H	0x1F
#define	GY_L	0x20
#define GZ_H	0x21
#define GZ_L	0x22
#define PWR_M	0x3E
#define GYRO_ADDRESS 0x68
 
void setup()
{
  Wire.begin();
  Gyro_Init();
  Serial.begin(9600);
}
 
void loop()
{
  Serial.print("Gyrox: ");
 
  Serial.println(ITG3200Read(TMP_H,TMP_L),DEC);
  Serial.println(ITG3200Read(GX_H,GX_L),DEC);
  Serial.println(ITG3200Read(GY_H,GY_L),DEC);
  Serial.println(ITG3200Read(GZ_H,GZ_L),DEC);  
 
  Serial.println(ITG3200Readbyte(WHO),HEX);    
  Serial.println(ITG3200Readbyte(0x16),BIN);  
  Serial.println(ITG3200Readbyte(0x15),BIN);  
 
  Serial.println(ITG3200Readbyte(0x3E),BIN);    
 
  Serial.println("*************");
 
 
	    delay(1000);
}
 
 
char ITG3200Readbyte(unsigned char address)
{
   char data;
 
	  Wire.beginTransmission(GYRO_ADDRESS);
	  Wire.send((address));
	  Wire.endTransmission();
	  Wire.requestFrom(GYRO_ADDRESS,1);
	  if (Wire.available()>0)
	    {
	    data = Wire.receive();
	    }
	    return data;
 
 
	   Wire.endTransmission();
}
 
char ITG3200Read(unsigned char addressh,unsigned char addressl)
{
   char data;
 
	  Wire.beginTransmission(GYRO_ADDRESS);
	  Wire.send((addressh));
	    Wire.endTransmission();
	  Wire.requestFrom(GYRO_ADDRESS,1);
	  if (Wire.available()>0)
	    {
	    data = Wire.receive();
	    }
	  Wire.beginTransmission(GYRO_ADDRESS);
	    Wire.send((addressl));
	    Wire.endTransmission();
	    if (Wire.available()>0)
	    {
	    data |= Wire.receive()<<8;
	    }
	    return data;
 
 
//	   Wire.endTransmission();
}
  
void Gyro_Init(void)
{
  Wire.beginTransmission(GYRO_ADDRESS);
  Wire.send(0x3E);
  Wire.send(0x80);  //send a reset to the device
  Wire.endTransmission(); //end transmission
 
 
  Wire.beginTransmission(GYRO_ADDRESS);
  Wire.send(0x15);
  Wire.send(0x00);   //sample rate divider
  Wire.endTransmission(); //end transmission
 
  Wire.beginTransmission(GYRO_ADDRESS);
  Wire.send(0x16);
  Wire.send(0x18); // ±2000 degrees/s (default value)
  Wire.endTransmission(); //end transmission
 
//  Wire.beginTransmission(GYRO_ADDRESS);
//  Wire.send(0x17);
//  Wire.send(0x05);   // enable send raw values
//  Wire.endTransmission(); //end transmission
 
//  Wire.beginTransmission(GYRO_ADDRESS);
//  Wire.send(0x3E);
//  Wire.send(0x00);
//  Wire.endTransmission(); //end transmission
}