Акселерометр GY-291 ADXL345

Акселерометр GY-291 ADXL345
В наличии: 3 шт.
150.00 р.

ВВЕДЕНИЕ

Это миниатюрный, тонкий и малопотребляющий модуль трёхосного акселерометра на чипе ADXL345 с высоким разрешением (13 бит) и диапазоном измерения до +/- 16 бит.

 

ПАРАМЕТРЫ

  • Чип: ADXL345
  • Питание: 3-5 Вольт
  • Протокол связи: стандартный IIC (он же I2C, он же TWI) / SPI
  • Диапазон измерений: ± 2g, ± 16g
 

КАК ПОДКЛЮЧИТЬ

 

 

 

 

 

ПРИМЕР КОДА 

#include "wire.h"
#define DEVICE (0x53) // Device address as specified in data sheet
byte _buff[6];
char POWER_CTL = 0x2D;    //Power Control Register
char DATA_FORMAT = 0x31;
char DATAX0 = 0x32;    //X-Axis Data 0
char DATAX1 = 0x33;    //X-Axis Data 1
char DATAY0 = 0x34;    //Y-Axis Data 0
char DATAY1 = 0x35;    //Y-Axis Data 1
char DATAZ0 = 0x36;    //Z-Axis Data 0
char DATAZ1 = 0x37;    //Z-Axis Data 1
 
void setup() {
  Wire.begin(); // join i2c bus (address optional for master)
  Serial.begin(9600); // start serial for output. Make sure you set your Serial Monitor to the same!
  Serial.print("init");
  //Put the ADXL345 into +/- 4G range by writing the value 0x01 to the DATA_FORMAT register.
  writeTo(DATA_FORMAT, 0x01);
  //Put the ADXL345 into Measurement Mode by writing 0x08 to the POWER_CTL register.
  writeTo(POWER_CTL, 0x08);
}
 
void loop() {
  readAccel(); // read the x/y/z tilt
  delay(50); // only read every 0,5 seconds
}
 
void readAccel() {
  uint8_t howManyBytesToRead = 6;
  readFrom( DATAX0, howManyBytesToRead, _buff); //read the acceleration data from the ADXL345
  // each axis reading comes in 10 bit resolution, ie 2 bytes. Least Significat Byte first!!
  // thus we are converting both bytes in to one int
  int x = (((int)_buff[1]) << 8) | _buff[0];
  int y = (((int)_buff[3]) << 8) | _buff[2];
  int z = (((int)_buff[5]) << 8) | _buff[4];
  Serial.print("x: ");
  Serial.print( x );
  Serial.print(" y: ");
  Serial.print( y );
  Serial.print(" z: ");
  Serial.println( z );
}
 
void writeTo(byte address, byte val) {
  Wire.beginTransmission(DEVICE); // start transmission to device
  Wire.write(address); // send register address
  Wire.write(val); // send value to write
  Wire.endTransmission(); // end transmission
}
  
// Reads num bytes starting from address register on device in to _buff array
void readFrom(byte address, int num, byte _buff[]) {
  Wire.beginTransmission(DEVICE); // start transmission to device
  Wire.write(address); // sends address to read from
  Wire.endTransmission(); // end transmission
  Wire.beginTransmission(DEVICE); // start transmission to device
  Wire.requestFrom(DEVICE, num); // request 6 bytes from device
  int i = 0;
  while(Wire.available()) {// device may send less than requested (abnormal)
    _buff[i] = Wire.read(); // receive a byte
    i++;
    }
  Wire.endTransmission(); // end transmission
}
		
 

СКАЧАТЬ

 

КОМПЛЕКТ

  • Акселерометр GY-291 х1
 

 

Характеристики

Акселерометр GY-291 ADXL345
Модель: GY-291
Производитель:

Отзывы (0)


Написать отзыв

Метки: #GY-291, #ADXL345