- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
arduino学习笔记12
arduino学习笔记12 - ADXL345加速度传感器实验
2011-8-19 09:55| 发布者: 弘毅| 查看: 134| 评论: 12|原作者: 弘毅摘要: 本次实验使用arduino用过IIC接口驱动ADXL345加速度传感器,使XYZ三坐标加速度值显示在1602液晶上,学习ADXL345加速度传感器与IIC接口的基本使用方法。
前两天我们做了温度传感器实验,大家一定还有印象。今天我们来研究另外一种传感器加速度传感器。什么是加速度传感器加速度传感器,作用是测量在加速过程中产生的力。最基本的如咱们平常所熟悉的是重力加速度,大小是1g。加速度传感器一般用于什么地方通过测量由重力引起的加速度,你可以计算出设备相对于水平面的倾斜角度。通过分析动态加速度,你可以分析出设备的移动方式。自平衡车中就是使用加速度传感器与陀螺仪进行卡尔曼滤波进行姿态矫正。本次试验使用的ADXL345数字传感器,通过I2C或者SPI接口直接输出数字信号。在1g的加速度下,输出数值为256.
2011-7-28 22:56:15 上传
下载附件 (24.89 KB)
下面是硬件连接图
2011-7-29 22:16:48 上传
下载附件 (112.73 KB)
2011-8-16 20:31:34 上传
下载附件 (157.36 KB)
2011-7-28 22:56:16 上传
下载附件 (203.65 KB)
下面是代码
#include Wire.h //调用arduino自带的I2C库
#include LiquidCrystal.h //调用arduino自带的LiquidCrystal库
#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
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);//设置接口
int ADXAddress = 0xA71; //转换为7位地址
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()
{
lcd.begin(16, 2); //初始化LCD
delay(100);
Wire.begin(); //初始化I2C
delay(100);
Wire.beginTransmission(ADXAddress);
Wire.send(Register_2D);
Wire.send(8);
Wire.endTransmission();
}
void loop()
{
Wire.beginTransmission(ADXAddress);
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 = X18;
X_out = X0+X1;
}
Wire.beginTransmission(ADXAddress);
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 = Y18;
Y_out = Y0+Y1;
}
Wire.beginTransmission(ADXAddress);
Wire.send(Register_Z0);
Wire.send(Register_Z1);
Wire.endTransmission();
Wire.requestFrom(ADXAddress,2);
if(Wire.available()=2);
{
Z0 = Wire.receive();
Z1 = Wire.receive();
文档评论(0)