码迷,mamicode.com
首页 > 其他好文 > 详细

【Espruino】NO.12 加速度传感器演示

时间:2014-06-16 23:03:14      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:espruino   arduino   javascript   开源硬件   stm32   

http://blog.csdn.net/qwert1213131/article/details/31035403

本文属于个人理解,能力有限,纰漏在所难免,还望指正!

【小鱼有点电】

【Espruino中文社区】

 

加速度计的应用范围越来越广泛,四轴飞行器、游戏手柄、跌倒检测、振动、倾角检测都会有他的身影,跟其他MEMS配合应用范围更广。Espruino已经提供了数字加速度计ADXL345的基本函数库,只需要简单几句代码就能获取各轴加速度值。

数据手册在此:点击打开链接

ADXL345支持SPI和I2C接口,本次实验使用I2C接口,也就是说需要2跟线,SDA(B6)和SCL(B7),需要注意的是这两条线要上拉4.7K电阻。

首先要根据引脚配置I2C,这里使用的是I2C1,SDA(B6)和SCL(B7):

I2C1.setup({scl:B6, sda:B7});

接着调用ADXL345的库

var accel = require("ADXL345").connect(i2c,cspin,range)

其中,cspin没有用到,range如下:

   
0 +/-2 g
1 +/-4 g
2 +/-8 g
3 +/-16 g

默认情况下,加速度计处于待机模式,若要获取数据,需要打开测量模式,设置为true:

accel.measure(true or false)

若要读取到数据,则调用下面的函数,就能得到x、y、z各轴的加速度,单位为g:

accel.read()

 

实验中通过读取x轴的数据来让3个led分别亮起,示例如下,还有视频

I2C1.setup({scl:B6, sda:B7});
var accel = require("ADXL345").connect(I2C1,0,3);
accel.measure(true);
clearInterval();
function led(){
  if(accel.read().x<-0.25)
    digitalWrite([LED3,LED2,LED1],0b100);
  else if(accel.read().x>0.25)
    digitalWrite([LED3,LED2,LED1],0b001);
    else
    digitalWrite([LED3,LED2,LED1],0b010);
}
setInterval(led,200);

 

【Espruino】NO.12 加速度传感器演示,布布扣,bubuko.com

【Espruino】NO.12 加速度传感器演示

标签:espruino   arduino   javascript   开源硬件   stm32   

原文地址:http://blog.csdn.net/qwert1213131/article/details/31035403

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!