Arduino爱好者

 找回密码
 立即注册

QQ登录

只需一步,快速开始

楼主: eagler8

[经验] 【Arduino】108种传感器模块系列实验(48)---三轴ADXL345模块

[复制链接]
 楼主| 发表于 2019-7-5 17:09 | 显示全部楼层
16.jpg
 楼主| 发表于 2019-7-5 18:08 | 显示全部楼层
18.jpg
 楼主| 发表于 2019-7-5 18:10 | 显示全部楼层
19.jpg
 楼主| 发表于 2019-7-5 18:38 | 显示全部楼层
本帖最后由 eagler8 于 2020-9-1 12:10 编辑
  1. /*
  2. 【Arduino】66种传感器模块系列实验(48)
  3. 实验四十八:GY-291 数字三轴重力加速度倾斜度模块 (IIC/SPI传输)
  4. 实验代码之三
  5. */

  6. #include <Wire.h>
  7. #define Register_ID 0
  8. #define Register_2D 0x2D
  9. #define Register_X0 0x32
  10. #define Register_X1 0x33
  11. #define Register_Y0 0x34
  12. #define Register_Y1 0x35
  13. #define Register_Z0 0x36
  14. #define Register_Z1 0x37

  15. int ADXAddress = 0xA7 >> 1;
  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. void setup()
  23. {
  24.    Wire.begin();         
  25.    Serial.begin(9600);  
  26.    delay(100);
  27.    
  28.    Wire.beginTransmission(ADXAddress);
  29.    Wire.write(Register_2D);
  30.    Wire.write(8);               
  31.    Wire.endTransmission();     
  32. }

  33. void loop()
  34. {
  35.    
  36.    Wire.beginTransmission(ADXAddress);
  37.    Wire.write(Register_X0);
  38.    Wire.write(Register_X1);
  39.    Wire.endTransmission();
  40.    Wire.requestFrom(ADXAddress,2);
  41.    if(Wire.available()<=2)   
  42.    {
  43.      X0 = Wire.read();
  44.      X1 = Wire.read();
  45.      X1=X1<<8;
  46.      X_out=X0+X1;   
  47.    }

  48.   
  49.    Wire.beginTransmission(ADXAddress);
  50.    Wire.write(Register_Y0);
  51.    Wire.write(Register_Y1);
  52.    Wire.endTransmission();
  53.    Wire.requestFrom(ADXAddress,2);
  54.    if(Wire.available()<=2)   
  55.    {
  56.      Y0 = Wire.read();
  57.      Y1 = Wire.read();
  58.      Y1=Y1<<8;
  59.      Y_out=Y0+Y1;
  60.    }
  61.   
  62.    Wire.beginTransmission(ADXAddress);
  63.    Wire.write(Register_Z0);
  64.    Wire.write(Register_Z1);
  65.    Wire.endTransmission();
  66.    Wire.requestFrom(ADXAddress,2);
  67.    if(Wire.available()<=2)   
  68.    {
  69.      Z0 = Wire.read();
  70.      Z1 = Wire.read();
  71.      Z1=Z1<<8;
  72.      Z_out=Z0+Z1;
  73.    }
  74.   
  75.     Xg=X_out;  
  76.     Yg=Y_out;  
  77.     Zg=Z_out;  
  78.    Serial.print("X= ");
  79.    Serial.print(Xg);
  80.    Serial.print("       ");
  81.    Serial.print("Y= ");
  82.    Serial.print(Yg);
  83.    Serial.print("       ");
  84.    Serial.print("Z= ");
  85.    Serial.print(Zg);
  86.    Serial.println("  ");
  87.    delay(200);
  88. }
复制代码

 楼主| 发表于 2019-7-5 18:42 | 显示全部楼层
20.jpg
 楼主| 发表于 2019-7-5 18:44 | 显示全部楼层
21.jpg
 楼主| 发表于 2019-9-6 12:52 | 显示全部楼层
22.jpg
发表于 2019-9-24 16:31 | 显示全部楼层
你好,我在用arduino做GY-85传感器数据采集,用的是mega 2560板子,看了一下你写的实验程序,输出窗口输出下x,y,z都为0,能不能看一下,非常感谢
发表于 2019-9-24 16:33 | 显示全部楼层
杨杰华 发表于 2019-9-24 16:31
你好,我在用arduino做GY-85传感器数据采集,用的是mega 2560板子,看了一下你写的实验程序,输出窗口输出 ...

我复制了你第二个代码,我的传感器scl,sda分别和mega 2560的scl 21,sda20相连。
发表于 2019-9-24 16:35 | 显示全部楼层
求大佬帮忙,非常感激
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino爱好者

GMT+8, 2022-12-9 01:17 , Processed in 0.075773 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表