zoukankan      html  css  js  c++  java
  • 【Espruino】NO.12 加速度传感器演示

    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);
  • 相关阅读:
    Python面向对象
    Python函数
    Linux之路
    Python之路
    函数
    动态参数
    python模块的运行机制以及time模块格式转换
    Python PEP8代码规范_20180614
    Oracle 分页查询方法和效率分析
    oracle 12c数据库启动(包含CDB和PDB)以及常见异常处理
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6789455.html
Copyright © 2011-2022 走看看