、文章目录

  • 有用的链接
  • 加速度传感器灵敏度表示的几种方式LSB/g,count/g,V/g,V/°
  • I2C通信之Arduino与加速度传感器ADXL345

有用的链接

  1. Arduino Wire参考:https://www.arduino.cc/en/Reference/Wire。

  2. 我翻译的Wire库的应用说明:https://blog.csdn.net/acktomas/article/details/88069640

  3. I2C双向电平转换器(https://playground.arduino.cc/Main/I2CBi-directionalLevelShifter/),用于电平转换、上拉电阻和连接3.3V器件。

  4. Nick Gammon的有关I2C的页面(关于I2C的原理介绍很详细:http://gammon.com.au/i2c(该页面上还有一个“ I2C扫描程序”)。
    我将内容翻译:I2C-两线外设接口-用于Arduino:https://download.csdn.net/download/acktomas/11824487

  5. robtillaart制作了“ Multispeed I2C Scanner(https://forum.arduino.cc/index.php?topic=197360)” ,可以用不同的I2C速度进行扫描。如果您使用更长的导线或使用更高I2C速度的库,则Multispeed I2C扫描仪将非常有用。(与UNO一起验证,2009年,MEGA)
    赛斯维传感器网http://www.sensorway.cn/knowledge/

加速度传感器灵敏度表示的几种方式LSB/g,count/g,V/g,V/°

给出几种方式之间的说明及转换公式:
1)、LSB的意思是最小有效位,为数字输出方式,一般我们可以用mg/LSB来表示灵敏度,举个例子来说,ADI的加速度传感器ADXL345量程为+/2g,输出的位数为10位(2的10次方共1024个LSB)对应满量程,那么灵敏度就为4g/1024LSB=3.9mv/g,取倒数为256LSB/g。
2)、count为计数单位,为数字输出方式,比如说我们的SCA820-D04,量程为+/-2g,灵敏度为900count/g,速度为0g是输出为0count,也就是说1g的时候对应输出应该为900count,-1g的时候输出为-900count。
3)、V/g为模拟电压输出的灵敏度表示方式。
4)、简单的介绍下V/g和V/°的换算公式,以SCA100T-D01为例,其灵敏度为4V/g换算成mV/°等于4sin1°=69.8mV/°,规格书上写的是70mV/°。此外SCA100T-D01传感器从零点转动15度,电压的变化=4sin15°=1.035V,对应15度输出电压=2.5+1.035=3.503V,对应-15度输出电压=2.5-1.035=1.465V。注意,转动15度的电压变化不能算成70mV/°*15,这样计算式错误的

Table 1.Configuring the g-Select for 8-bit output using Register $16 with GLVL[1:0] bits

GLVL[1:0] g-Range Sensitivity
00 8g 16LSB/g
01 2g 64LSB/g
10 4g 32LSB/g

比如上表为MMA7455L 加速度传感器

量程为4g 输出位数为8位,2的8次方为256,那么灵敏度就为4g/256LSB,取倒数则为256LSB/4g=32LSB/g

I2C通信之Arduino与加速度传感器ADXL345

转载:https://www.geek-workshop.com/thread-8539-1-1.html
//We connect CS to 3.3V to tell the sensor we will be using it as an I2C device, and not an SPI device.
IDE环境:Arduino1.0.5


#include <Wire.h>
#define ADXLAddress (0x53)     //ADXL345的I2C地址(ADDR接地)
int xAcc,   yAcc,   zAcc;        // 存放加速度值
int buff[6];                    //存放寄存器高低位值,X、Y、Z轴共6个// 加速度传感器误差修正的偏移量
int a_offx = 0;
int a_offy = 0;
int a_offz = 0;void writeRegister(int deviceAddress, byte address, byte val)
{Wire.beginTransmission(deviceAddress);Wire.write(address);       Wire.write(val);         Wire.endTransmission();
}void readRegister(int deviceAddress, byte address)
{Wire.beginTransmission(deviceAddress);   Wire.write(address);         Wire.endTransmission();Wire.beginTransmission(deviceAddress);Wire.requestFrom(deviceAddress, 6);    int i = 0;while (Wire.available())   {  buff[i++] = Wire.read();   }Wire.endTransmission();
}void initAcc()
{//配置ADXL345,ADXL345采用默认的+-2g量程,10位分辨率writeRegister (ADXLAddress, 0x2C, 0x09);//设置输出数据速率50Hz,带宽25Hz。//默认值为0x0A,对应输出数据速率100Hz,带宽50HzwriteRegister (ADXLAddress, 0x2D, 0x08);    //设置ADXL345为测量模式。}void getAccData()
{readRegister(ADXLAddress, 0x32);   xAcc = ((buff[1] << 8) | buff[0] ) + a_offx;    yAcc = ((buff[3] << 8) | buff[2] ) + a_offy;zAcc = ((buff[5] << 8) | buff[4]) + a_offz;
}void setup()
{Serial.begin(9600);Wire.begin();initAcc();delay(50);
}void loop()
{getAccData();Serial.print("xAcc=");Serial.print(xAcc);Serial.print("  yAcc=");Serial.print(yAcc);Serial.print("  zAcc=");Serial.println(zAcc);delay(200);
}

---------------------
作者:acktomas
来源:CSDN
原文:https://blog.csdn.net/acktomas/article/details/88072797
版权声明:本文为作者原创文章,转载请附上博文链接!
内容解析By:CSDN,CNBLOG博客文章一键转载插件

I2C、Arduino、ADXL345、相关推荐

  1. 玩转Mixly – 7、Arduino AVR编程 之 数组

    以下内容源自Mixly官方技术文档: https://mixly.readthedocs.io/zh_CN/latest/Arduino/AVR/06Lists.html 数组 数组是为了便于代码编写 ...

  2. 玩转Mixly – 6、Arduino AVR编程 之 文本

    以下内容源自Mixly官方技术文档: https://mixly.readthedocs.io/zh_CN/latest/Arduino/AVR/05Text.html 文本 文本的具体内容为代码的文 ...

  3. 基于物联网的室内环境检测云系统设计(树莓派RPI、Arduino、智能家居、RFID、APP)

    题 目: 基于物联网的室内环境检测云系统设计 关键词: 树莓派RPI.Arduino.智能家居.物联网 目录 摘要 2 引言 3 系统方案 3 系统硬件设计 6 1)Arduino介绍 6 2)DHT ...

  4. 单片机、芯片、arduino、树莓派、Jetson Nano、esp32、stm32

    一.芯片:百科上说半导体元件产品的统称.知乎上说芯片(集成电路),或称微电路.微芯片.晶片/芯片在电子学中是一种把电路小型化的方式,并时常制造在半导体晶圆表面上. 前述将电路制造在半导体芯片表面上的集 ...

  5. ESP8266-12F NodeMCU、MG90S舵机、Arduino IDE——制作家庭自用远程开关(手机遥控-仅关灯)

    制作家庭自用远程开关 一.效果演示 二.接线 三.代码 四.一些记录 1.ESP8266-12F NodeMCU 2.MG90S舵机 3.开发板供电 4.舵机单独供电 5.Arduino IDE 6. ...

  6. 魔方机器人(基于OpenCV、Arduino)

    魔方机器人(基于OpenCV.Arduino) 简介 顾名思义,魔方机器人就是可以自动还原任意打乱魔方的机器人,从自动识别颜色到通过还原算法进行魔方的还原.博主做的是六轴的魔方机器人,魔方六个面都可以 ...

  7. 【esp8266、arduino串口传递浊度、温度数据(json)】

    esp8266.arduino串口传递浊度.温度数据(json) 使用设备 Arduino uno esp8266 Arduino 代码部分 Arduino /**************led灯** ...

  8. 用Arduino结合OLED、DHT11测量温湿度

    用Arduino结合OLED.DHT11测量温湿度 1.项目起因 最近买了一块温湿度传感器DHT11,想着结合之前买的OLED屏幕和arduino nano 单片机来搭建一个将温湿度传感器DHT11测 ...

  9. 智能家居硬件小制作(含源码)《手势识别控制器》基于PAJ7620手势模块、L298N驱动板、arduino

    智能家居硬件小制作(含源码)<手势识别控制器>基于PAJ7620手势模块.L298N驱动板.arduino 目录 智能家居硬件小制作(含源码)<手势识别控制器>基于PAJ762 ...

  10. linux用户空间flash驱动,全面掌握Linux驱动框架——字符设备驱动、I2C驱动、总线设备驱动、NAND FLASH驱动...

    原标题:全面掌握Linux驱动框架--字符设备驱动.I2C驱动.总线设备驱动.NAND FLASH驱动 字符设备驱动 哈~ 这几天都在发图,通过这种方式,我们希望能帮大家梳理学过的知识,全局的掌握Li ...

最新文章

  1. Swift 基本基本运算符
  2. 二年级上册计算题_小学二年级数学上册应用题与思维训练集锦500题
  3. python做直方图-python OpenCV学习笔记实现二维直方图
  4. python网络爬虫的基本步骤-详解Python网络爬虫功能的基本写法
  5. supersr--时间显示逻辑--NSDate+NSCalendar
  6. c++vector初始化的几种方法
  7. c语言 复杂指针声明,C指针复杂声明
  8. 初学UML之-------用例图
  9. B/S----验证方式及练习
  10. 第二次作业——个人项目实战之随机数独生成
  11. Atitit View事件分发机制
  12. 【测验8 编程题】: 程序设计方法学 (第8周)
  13. mongoDB练习强化
  14. 25匹马,5个跑道,不用外界工具怎样选出最快的5匹,要次数最短
  15. java 日历签到功能_快速简单的实现在日历上签到的功能,不需要日历组件,带后端实现讲解...
  16. net项目使用花生壳,Cpolar进行内网穿透
  17. Mac安装brewLast login: Mon Feb 25 22:00:38 on console 192:~ wxh$ /usr/bin/ruby -e $(curl -fsSL https:
  18. plc c语言 软元件t,三菱PLC软元件的种类及功能大全
  19. carsim设置坡度的模块
  20. vue-barcode生成条形码

热门文章

  1. Word2019很卡的解决办法
  2. 数据结构学习笔记:算法复杂度的度量之“大O记号”
  3. 58、【backtrader股票策略】两资产的配对交易策略(pairs trading strategy)
  4. 基于PHP的仿小米商城系统(完整前后台)
  5. 【运放学习】:虚短、虚短、虚地、深度负反馈
  6. DOS之父加里·基尔代尔
  7. Java基础练习项目【飞机大战】
  8. 加入域提示“不能访问网路位置” 的解决方法
  9. 【C语言】两个变量值的交换——指针
  10. ar vr mr 计算机技术,VR、AR、MR、还有云计算,他们到底是什么?