arduino学习笔记.docx

上传人:scccc 文档编号:12675381 上传时间:2021-12-05 格式:DOCX 页数:6 大小:176.17KB
返回 下载 相关 举报
arduino学习笔记.docx_第1页
第1页 / 共6页
arduino学习笔记.docx_第2页
第2页 / 共6页
arduino学习笔记.docx_第3页
第3页 / 共6页
arduino学习笔记.docx_第4页
第4页 / 共6页
亲,该文档总共6页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《arduino学习笔记.docx》由会员分享,可在线阅读,更多相关《arduino学习笔记.docx(6页珍藏版)》请在三一文库上搜索。

1、学习必备欢迎下载arduino学习笔记 12 - ADXL345加速度传感器实验2011-8-19 09:55 |发布者 :弘毅 |查看 : 134 |评论 : 12 | 原作者 :弘毅摘要 : 本次实验使用 arduino 用过 IIC 接口驱动 ADXL345加速度传感器, 使 XYZ 三坐标加速度值显示在 1602 液晶上,学习 ADXL345加速度传感器与 IIC 接口的基本使用方法。前两天我们做了温度传感器实验, 大家一定还有印象。 今天我们来研究另外一种传感器加速度传感器。什么是加速度传感器加速度传感器, 作用是测量在加速过程中产生的力。 最基本的如咱们平常所熟悉的是重力加速度,大

2、小是 1g。加速度传感器一般用于什么地方通过测量由重力引起的加速度, 你可以计算出设备相对于水平面的倾斜角度。 通过分析动态加速度, 你可以分析出设备的移动方式。 自平衡车中就是使用加速度传感器与陀螺仪进行卡尔曼滤波进行姿态矫正。本次试验使用的 ADXL345数字传感器,通过 I2C 或者 SPI 接口直接输出数字信号。在 1g 的加速度下,输出数值为 256.学习必备欢迎下载下面是硬件连接图学习必备欢迎下载学习必备欢迎下载下面是代码1. #include <Wire.h> /调用 arduino 自带的 I2C 库2.#include <LiquidCrystal.h>

3、; /调用 arduino自带的 LiquidCrystal库3.4. #define Register_ID 05. #define Register_2D 0x2D6. #define Register_X0 0x327. #define Register_X1 0x338. #define Register_Y0 0x349. #define Register_Y1 0x3510. #define Register_Z0 0x3611. #define Register_Z1 0x3712.13.LiquidCrystal lcd(12, 11, 10, 9, 8, 7);/设置接口14

4、.15.int ADXAddress = 0xA7>>1; /转换为 7 位地址16. int reading = 0;17. int val = 0;18. int X0,X1,X_out;19. int Y0,Y1,Y_out;20. int Z1,Z0,Z_out;学习必备欢迎下载21. double Xg,Yg,Zg;22.23. void setup()24. 25.lcd.begin(16, 2); /初始化 LCD26. delay(100);27.Wire.begin(); /初始化 I2C28. delay(100);29. Wire.beginTransmiss

5、ion(ADXAddress);30. Wire.send(Register_2D);31. Wire.send(8);32. Wire.endTransmission();33. 34.35. void loop()36. 37. Wire.beginTransmission(ADXAddress);38. Wire.send(Register_X0);39. Wire.send(Register_X1);40. Wire.endTransmission();41. Wire.requestFrom(ADXAddress,2);42. if(Wire.available()<=2);4

6、3. 44. X0 = Wire.receive();45. X1 = Wire.receive();46. X1 = X1<<8;47. X_out = X0+X1;48. 49.50. Wire.beginTransmission(ADXAddress);51. Wire.send(Register_Y0);52. Wire.send(Register_Y1);53. Wire.endTransmission();54. Wire.requestFrom(ADXAddress,2);55. if(Wire.available()<=2);56. 57. Y0 = Wire

7、.receive();58. Y1 = Wire.receive();59. Y1 = Y1<<8;60. Y_out = Y0+Y1;61. 62.63. Wire.beginTransmission(ADXAddress);64. Wire.send(Register_Z0);学习必备欢迎下载65. Wire.send(Register_Z1);66. Wire.endTransmission();67. Wire.requestFrom(ADXAddress,2);68. if(Wire.available()<=2);69. 70. Z0 = Wire.receive

8、();71. Z1 = Wire.receive();72. Z1 = Z1<<8;73. Z_out = Z0+Z1;74. 75.76.Xg = X_out/256.00;/把输出结果转换为重力加速度g, 精确到小数点后2 位。77. Yg = Y_out/256.00;78. Zg = Z_out/256.00;79.lcd.clear(); /清屏80.lcd.print("X="); /使屏幕显示文字 X=81. lcd.print(Xg);82. lcd.setCursor(8, 0);83. lcd.print("Y=");84. lcd.print(Yg);85. lcd.setCursor(0, 1);86. lcd.print("Z=");87. lcd.print(Zg);88. delay(300); /延时 0.3 秒,刷新频率这里进行调整89.90.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1