I2C、Arduino、ADXL345、
、文章目录
- 有用的链接
- 加速度传感器灵敏度表示的几种方式LSB/g,count/g,V/g,V/°
- I2C通信之Arduino与加速度传感器ADXL345
有用的链接
Arduino Wire参考:https://www.arduino.cc/en/Reference/Wire。
我翻译的Wire库的应用说明:https://blog.csdn.net/acktomas/article/details/88069640
I2C双向电平转换器(https://playground.arduino.cc/Main/I2CBi-directionalLevelShifter/),用于电平转换、上拉电阻和连接3.3V器件。
Nick Gammon的有关I2C的页面(关于I2C的原理介绍很详细:http://gammon.com.au/i2c(该页面上还有一个“ I2C扫描程序”)。
我将内容翻译:I2C-两线外设接口-用于Arduino:https://download.csdn.net/download/acktomas/11824487robtillaart制作了“ 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/°
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
#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);
}
I2C、Arduino、ADXL345、相关推荐
- 玩转Mixly – 7、Arduino AVR编程 之 数组
以下内容源自Mixly官方技术文档: https://mixly.readthedocs.io/zh_CN/latest/Arduino/AVR/06Lists.html 数组 数组是为了便于代码编写 ...
- 玩转Mixly – 6、Arduino AVR编程 之 文本
以下内容源自Mixly官方技术文档: https://mixly.readthedocs.io/zh_CN/latest/Arduino/AVR/05Text.html 文本 文本的具体内容为代码的文 ...
- 基于物联网的室内环境检测云系统设计(树莓派RPI、Arduino、智能家居、RFID、APP)
题 目: 基于物联网的室内环境检测云系统设计 关键词: 树莓派RPI.Arduino.智能家居.物联网 目录 摘要 2 引言 3 系统方案 3 系统硬件设计 6 1)Arduino介绍 6 2)DHT ...
- 单片机、芯片、arduino、树莓派、Jetson Nano、esp32、stm32
一.芯片:百科上说半导体元件产品的统称.知乎上说芯片(集成电路),或称微电路.微芯片.晶片/芯片在电子学中是一种把电路小型化的方式,并时常制造在半导体晶圆表面上. 前述将电路制造在半导体芯片表面上的集 ...
- ESP8266-12F NodeMCU、MG90S舵机、Arduino IDE——制作家庭自用远程开关(手机遥控-仅关灯)
制作家庭自用远程开关 一.效果演示 二.接线 三.代码 四.一些记录 1.ESP8266-12F NodeMCU 2.MG90S舵机 3.开发板供电 4.舵机单独供电 5.Arduino IDE 6. ...
- 魔方机器人(基于OpenCV、Arduino)
魔方机器人(基于OpenCV.Arduino) 简介 顾名思义,魔方机器人就是可以自动还原任意打乱魔方的机器人,从自动识别颜色到通过还原算法进行魔方的还原.博主做的是六轴的魔方机器人,魔方六个面都可以 ...
- 【esp8266、arduino串口传递浊度、温度数据(json)】
esp8266.arduino串口传递浊度.温度数据(json) 使用设备 Arduino uno esp8266 Arduino 代码部分 Arduino /**************led灯** ...
- 用Arduino结合OLED、DHT11测量温湿度
用Arduino结合OLED.DHT11测量温湿度 1.项目起因 最近买了一块温湿度传感器DHT11,想着结合之前买的OLED屏幕和arduino nano 单片机来搭建一个将温湿度传感器DHT11测 ...
- 智能家居硬件小制作(含源码)《手势识别控制器》基于PAJ7620手势模块、L298N驱动板、arduino
智能家居硬件小制作(含源码)<手势识别控制器>基于PAJ7620手势模块.L298N驱动板.arduino 目录 智能家居硬件小制作(含源码)<手势识别控制器>基于PAJ762 ...
- linux用户空间flash驱动,全面掌握Linux驱动框架——字符设备驱动、I2C驱动、总线设备驱动、NAND FLASH驱动...
原标题:全面掌握Linux驱动框架--字符设备驱动.I2C驱动.总线设备驱动.NAND FLASH驱动 字符设备驱动 哈~ 这几天都在发图,通过这种方式,我们希望能帮大家梳理学过的知识,全局的掌握Li ...
最新文章
- Swift 基本基本运算符
- 二年级上册计算题_小学二年级数学上册应用题与思维训练集锦500题
- python做直方图-python OpenCV学习笔记实现二维直方图
- python网络爬虫的基本步骤-详解Python网络爬虫功能的基本写法
- supersr--时间显示逻辑--NSDate+NSCalendar
- c++vector初始化的几种方法
- c语言 复杂指针声明,C指针复杂声明
- 初学UML之-------用例图
- B/S----验证方式及练习
- 第二次作业——个人项目实战之随机数独生成
- Atitit View事件分发机制
- 【测验8 编程题】: 程序设计方法学 (第8周)
- mongoDB练习强化
- 25匹马,5个跑道,不用外界工具怎样选出最快的5匹,要次数最短
- java 日历签到功能_快速简单的实现在日历上签到的功能,不需要日历组件,带后端实现讲解...
- net项目使用花生壳,Cpolar进行内网穿透
- Mac安装brewLast login: Mon Feb 25 22:00:38 on console 192:~ wxh$ /usr/bin/ruby -e $(curl -fsSL https:
- plc c语言 软元件t,三菱PLC软元件的种类及功能大全
- carsim设置坡度的模块
- vue-barcode生成条形码
热门文章
- Word2019很卡的解决办法
- 数据结构学习笔记:算法复杂度的度量之“大O记号”
- 58、【backtrader股票策略】两资产的配对交易策略(pairs trading strategy)
- 基于PHP的仿小米商城系统(完整前后台)
- 【运放学习】:虚短、虚短、虚地、深度负反馈
- DOS之父加里·基尔代尔
- Java基础练习项目【飞机大战】
- 加入域提示“不能访问网路位置” 的解决方法
- 【C语言】两个变量值的交换——指针
- ar vr mr 计算机技术,VR、AR、MR、还有云计算,他们到底是什么?