LIS3DH是ST公司推出的一块三轴加速度计芯片,使用它能实现很多有趣的应用。接下来笔者通过例程分享下LIS3DH的一些开发心得。

首先请出我们使用的开发板:UFUN, 这是块小巧精致的开发板,内核为STM32,搭载了多种传感器,包括LIS3DH,其价格也很亲民~

先给出LSI3DH官方文档下载地址:

https://www.st.com/zh/mems-and-sensors/lis3dh.html#

然后演示下例程运行结果,PC端通过串口接收到了计算后得出的加速度和角度


要想得到加速度和角度这两个值首先要对加速度计进行一些配置,这里我们主要讨论LIS3DH,STM32的IIC等配置就不提啦。需要我们配置的有采样率、工作模式、量程、XYZ轴的使能。

采样率单位为HZ,意义是每秒采样次数,我们可配置的采样率如下图所示(来自官方文档),例程选用100HZ。

工作模式分掉电模式、正常模式、低功耗模式。掉电模式LIS3DH的全部内部块几乎都会关闭,低功耗模式下相比正常模式有更低的功耗,但是分辨率也会变低。我们选择正常模式。

量程分为±2、±4、±8、±16(如下图所示)。量程决定LIS3DH读出的加速度的极限值。也会影响我们之后的计算。

在正常模式和低功耗模式下我们可以决定X、Y、Z轴是否使能,非使能的轴生会的数据为00h。

代码如下。本例程使用的是ST官方提供的LIS3DH驱动,可以直接调用其中的函数进行操作。当然如果想用寄存器操作的话可以对照官方文档进行编写。

配置好之后就可以读取数据了,我们可以读取到的每个轴加速度数据都分为高8位和低8位分别存在两个地址里,该值为左对齐的二进制补码。

我们可以直接调用官方驱动中的LIS3DH_GetAccAxesRaw()函数得到一个高位低位已经组合好的值。现在这个值还不是我们最后想要的加速度值,还需要做一下计算。
以X轴为例,我们称刚刚读取到的值为axis_x,因axis_x由高8位和低8位组成,所以我们可以测量到最多2的16次方(65536)种不同的值,再由之前配置好的量程(±2g)可知总量程为4g。计算得出结果单位是g,要转换为mg再乘以1000。综上可得出X轴加速度计算公式如下,其他两轴同理。

acc_x=axis_x*(4/65536)*1000。

于是我们得到了X、Y、Z轴的加速度矢量,通过反三角函数计算可得:

angle_x= [arctan(acc_x / squr(acc_yacc_y +acc_zacc_z))] 180/3.14
angle_y= [arctan(acc_y / squr(acc_x
acc_x +acc_zacc_z))] 180/3.14
angle_z= [arctan(acc_z / squr(acc_x
acc_x +acc_y
acc_y))] *180/3.14

角度的计算可以按自己的需求进行改动,这里的公式计算得出的为X、Y、Z轴和水平线的角度。在LSI3DH水平放置时理论上x、y=0°,z=90°,实际有误差。三轴的正方向如下图所示。

如有问题欢迎一同讨论,如有错误务必指正~
文中源码为ufun例程《基础例程7 - 三轴加速度传感器》,可到“ufun学习板分享”公众号下载,为书写方便,文中变量名与例程稍有不同。公众号会定期更新硬件开发相关的技术文章,欢迎关注。

三轴加速度传感器LIS3DH使用心得相关推荐

  1. 三轴加速度传感器和六轴惯性传感器_美泰产品推介MSV3100A三轴加速度传感器

    1 产品介绍 MSV3100A三轴加速度传感器 MSV3100A是一款三轴向模拟输出的MEMS加速度传感器.传感器由三个相互正交的微加速度计和信号变换电路组成.能够承受高达10,000g的冲击载荷和恒 ...

  2. 溢出检测单符号位法_设计经验:如何用三轴加速度传感器检测倾斜角?

    本文介绍了三轴加速度传感器的特性,并通过一个典型的应用--检测倾斜角--对单轴.双轴和三轴加速度传感器进行了比较,并给出了选型建议. 在前两篇文章中,我们介绍了单/双轴加速度传感器在来检测倾斜角上的应 ...

  3. ADI Blackfin DSP处理器-BF533的开发详解59:DSP控制ADXL345三轴加速度传感器的应用2(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度 ...

  4. ADI Blackfin DSP处理器-BF533的开发详解58:DSP控制ADXL345三轴加速度传感器的应用(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度 ...

  5. ADI Blackfin DSP处理器-BF533的开发详解60:DSP控制ADXL345三轴加速度传感器-电子水平仪(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度 ...

  6. ADI Blackfin DSP处理器-BF533的开发详解61:DSP控制ADXL345三轴加速度传感器-LCD(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度 ...

  7. ADI Blackfin DSP处理器-BF533的开发详解62:DSP控制ADXL345三轴加速度传感器-贪食蛇游戏(含源码)

    硬件准备 ADSP-EDU-BF533:BF533开发板 AD-HP530ICE:ADI DSP仿真器 软件准备 Visual DSP++软件 硬件链接 MEMS三轴加速度传感器 我做了一个三轴加速度 ...

  8. 三轴加速度传感器bma150驱动解析

    BMA150 博世 三轴加速度传感器 SPI(4线,3线),i2c,中断引脚 频响+/- 2g,4g,8g;带宽25~1500hz,中断触发内部加速度求值 低功耗,快速唤醒 包含数据寄存器,控制寄存器 ...

  9. android SENSOR_ACCELEROMETER 三轴加速度传感器

    先看效果图: package org.ninetripods.mq.asdasdasdasdasdas; import android.content.Context; import android. ...

  10. ST公司 Lis2dh12 三轴加速度传感器,计算加速度值转成角度值

    目录 概述 项目上使用了一款Lis2dh12三轴加速度传感器.开发前要准备的工作. 1.原理图: 1.1.创建lis2dh12.c文件 1.2.在此重点说明,如果想调传感器的中断灵敏度,注意:关注1. ...

最新文章

  1. 云原生微服务架构的技术内涵
  2. Django POST请求错误
  3. [OS复习]操作系统综述2
  4. 【前端2】js:原始类型,运算符,调试,页面加载,轮播图,Bom(对象,时钟),Dom(全选全不选,省市级联,隔行/触摸换色,表单校验)
  5. html+下拉箭头样式,HTML选择下拉箭头样式
  6. yum 升级curl_CentOS 6/7 更新curl
  7. 字符串和字符串数组和\0
  8. linux 路由协议,路由协议之RIP协议
  9. ActionBarSherlock SlidingMenu整合,解决SlidingMenu example的getSupportActionBar()方法不能用问题
  10. 你真的了解JS数组的那些方法吗?
  11. 使用GDAL将下载的Google卫星图像转为带坐标的tif
  12. mysql for macOS安装
  13. MyEclipse发布项目更改项目名
  14. tomcat的server.xml中的Context节配置
  15. 关于QSS 看这一篇就够了!
  16. 【网络技术联盟站】网络安全 | 瑞哥带你全方位解读防火墙技术!
  17. C++ —— 句柄类的实现方式 —— 类实现的隐藏
  18. 自适应弹出框-垂直居中
  19. 你知道云渲染和自己渲染有什么区别吗?
  20. matlab给图片添加颜色条

热门文章

  1. #483(div.2) B. Minesweeper
  2. Ubuntu上安装QQ2015
  3. c语言程序设计数独,C语言求解数独
  4. 北京强化养老行业诚信自律 从业者禁止侮辱、虐待老人
  5. 配置Jinjia2模板引擎
  6. 利用丁香园数据生成疫情分布地图(R语言)
  7. 该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定的解决办法
  8. 搅拌设备行业——双行星搅拌机即将成为龙头
  9. PocketPC中汉字输入法分析与实现(…
  10. 淘宝、美团、滴滴分别如何搭建大数据平台