⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adxl345.c

📁 GY-29-MMA7455发送资料
💻 C
字号:
传感器采用了ADXL345芯片,ADXL345具有在16G下高分辨率(13Bit)测量能力,同时具备16Bit数字输出。ADXL345 适用于静态倾角测量以及动态加速度测量,高达4mg/LSB的灵敏度允许测量小于1度的倾角。
该传感器还具备单击 /双击探测,自由落体探测,并允许用户设置一个加速度阀值,当加速度值超过设定阀值后可以产生一个信号输出。所有这些功能都可以映射到2个中断上。内置的32级FIFO缓存可以极大的缓解处理器的压力。
特点:
1.供电电压:VCC=2.0 - 3.6VDC

2.超低功耗: 40uA的测量模式, 0.1uA在standby@2.5V
3.单击/双击检测
4.自由落体检测
5.用户阀值设定
6.SPI和I2C接口 
Arduino测试样例:

//I2C  (sparkfun breakout) 
#define Register_ID 0
#define Register_2D 0x2D
#define Register_X0 0x32
#define Register_X1 0x33
#define Register_Y0 0x34
#define Register_Y1 0x35
#define Register_Z0 0x36
#define Register_Z1 0x37

#include 
int ADXAddress = 0xA7 >> 1;  // the default 7-bit slave address 
int reading = 0; 
int val=0;
int X0,X1,X_out;
int Y0,Y1,Y_out;
int Z1,Z0,Z_out;
double Xg,Yg,Zg;



void setup() 
{ 
  Wire.begin();                 
  Serial.begin(19200);     
  delay(100);
  // enable to measute g data
  Wire.beginTransmission(ADXAddress); 
  Wire.send(Register_2D);
  Wire.send(8);                //measuring enable
  Wire.endTransmission();     // stop transmitting 

} 


void loop() 
{ 
  //--------------X
  Wire.beginTransmission(ADXAddress); // transmit to device 
  Wire.send(Register_X0);
  Wire.send(Register_X1); 
  Wire.endTransmission(); 
  Wire.requestFrom(ADXAddress,2);  
  if(Wire.available()<=2)    
  { 
    X0 = Wire.receive();
    X1 = Wire.receive();  
    X1=X1<<8;
    X_out=X0+X1;    
  }

  //------------------Y
  Wire.beginTransmission(ADXAddress); // transmit to device 
  Wire.send(Register_Y0);
  Wire.send(Register_Y1); 
  Wire.endTransmission(); 
  Wire.requestFrom(ADXAddress,2);  
  if(Wire.available()<=2)    
  { 
    Y0 = Wire.receive();
    Y1 = Wire.receive();  
    Y1=Y1<<8;
    Y_out=Y0+Y1;
  } 
  //------------------Z
  Wire.beginTransmission(ADXAddress); // transmit to device 
  Wire.send(Register_Z0);
  Wire.send(Register_Z1); 
  Wire.endTransmission(); 
  Wire.requestFrom(ADXAddress,2);  
  if(Wire.available()<=2)    
  { 
    Z0 = Wire.receive();
    Z1 = Wire.receive();  
    Z1=Z1<<8;
    Z_out=Z0+Z1;
  }
  //
  Xg=X_out/256.0;
  Yg=Y_out/256.0;
  Zg=Z_out/256.0;
  Serial.print("X= ");
  Serial.print(Xg);
  Serial.print("       ");
  Serial.print("Y= ");
  Serial.print(Yg);
  Serial.print("       ");
  Serial.print("Z= ");
  Serial.print(Zg);
  Serial.println("  ");
  delay(200);
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -