查看: 46407|回复: 44

arduino学习笔记 - Arduino Uno + MMA7361三轴加速度传感器演示...

[复制链接]
  • TA的每日心情
    擦汗
    2016-8-7 07:53
  • 签到天数: 112 天

    [LV.6]常住居民II

    发表于 2012-6-7 15:13 | 显示全部楼层 |阅读模式
    1、简介:
    三轴加速度传感器是一种可以对物体运动过程中的加速度进行测量的电子设备,典型互动应用中的加速度传感器可以用来对物体的姿态或者运动方向进行检测,比如WII游戏机和iPhone手机中的经典应用。
    Arduino三轴加速度传感器采用Freescale(飞思卡尔)公司生产的高性价比微型电容式三轴加速度传感器MMA7361芯片,对于普通的互动应用来讲应该是种不错的选择,可以应用到摩托车和汽车放倒报警、遥控航模、游戏手柄、人形机器人跌倒检测、硬盘冲击保护、倾斜度测量等场合。
    MMA7361采用信号调理、单极低通滤波器和温度补偿技术,提供±1.5g/6g两个量程,用户可在这2个灵敏度中选择。该器件带有低通滤波并已做0g补偿,提供休眠模式,因而是电池供电的无线数据采集的理想之选。
    具有电源指示灯,方便观察工作情况;±1.5g /6g两个量程可通过开关任意切换;预留排针焊接孔,客户可自行焊接排针,可通过多彩跳线连接插到Mini面包板上进行实验。
    3个PH2.0插座配合模拟传感器连接线,可轻松连接到Aduino传感器扩展板上,可制作倾角、运动、姿态相关的互动作品。
    2、规格:
    供电电压:3.3~8V
    数据接口:模拟电压输出 兼容Arduino
    可选灵敏度,±1.5g/6g,通过开关选择
    低功耗,工作时电流为400μA,休眠模式下为3μA
    高灵敏度,在1.5g量程下为800mV/g
    低通滤波器具有内部信号调理功能
    设计稳定,防震能力强
    模块尺寸:25x27mm
    3、引脚定义俯视图
    搜索.jpg
    引脚定义.jpg

    此模块和MMA7360相比,在性能和性价比上完全是可以取代的,现在的应用领域也是摒弃了MMA7360而选择了MMA7361的这个模块。
    4、MMA7361典型的外围连接电路图



    一般接法电路.jpg

    5、在1G时MMA7361模块放置的各种位置的三轴输出数字图
    看输出的形象图.jpg
    8、了解一下次实验时所用到的模块:
    所用的模块.jpg

    9、Arduino 与 MMA7361硬件连接情况



    250px-Mma7361_pin.jpg
    500px-Mma7361_2.jpg

    10、硬件连接完成以后我们开始编译代码进行测试了。这些烧写步骤相信入门的爱好者都会的了。我们提供的代码只供您测试使用,需其他的功能请自行编写!

    代码一:

    kittenblock中小学创客名师推荐的图形化编程软件

    #include <AcceleroMMA7361.h>
    AcceleroMMA7361 accelero;
    int x;
    int y;
    int z;
    void setup()
    {
    Serial.begin(9600);
    accelero.begin(13, 12, 11, 10, A0, A1, A2);
    accelero.setARefVoltage(3.3); //sets the AREF voltage to 3.3V
    accelero.setSensitivity(LOW); //sets the sensitivity to +/-6G
    accelero.calibrate();
    }
    void loop()
    {
    x = accelero.getXRaw();
    y = accelero.getYRaw();
    z = accelero.getZRaw();
    Serial.print("\nx: ");
    Serial.print(x);
    Serial.print("\ty: ");
    Serial.print(y);
    Serial.print("\tz: ");
    Serial.print(z);
    delay(500); //(make it readable)
    }
    


    代码二:

    kittenblock中小学创客名师推荐的图形化编程软件

    void setup() 
    { 
    Serial.begin(19200); // 19200 bps
    }
    void loop() 
    {
    int x,y,z;
    x=analogRead(0);
    y=analogRead(1);
    z=analogRead(2);
    Serial.print("x= ");
    Serial.print(x ,DEC);
    Serial.print(',');
    Serial.print("y= ");
    Serial.print(y ,DEC);
    Serial.print(',');
    Serial.print("z= ");
    Serial.println(z ,DEC);
    delay(100);
    }
    


    结果是这样子的(示例结果仅供参考,谢谢)
    MMA7361结果.jpg

    电容式传感器工作原理:
      电容式传感器也常常被人们称为电容式物位计,电容式物位计的电容检测元件是根据圆筒形电容器原理进行工作的,电容器由两个绝缘的同轴圆柱极板内电极和外电极组成,在两筒之间充以介电常数为e的电解质时,两圆筒间的电容量为C=2∏eL/lnD/d,式中L为两筒相互重合部分的长度;D为外筒电极的直径;d为内筒电极的直径;e为中间介质的电介常数。在实际测量中D、d、e是基本不变的,故测得C即可知道液位的高低,这也是电容式传感器具有使用方便,结构简单和灵敏度高,价格便宜等特点的原因之一。

    该用户从未签到

    发表于 2012-6-15 10:14 | 显示全部楼层
    很想自己亲自试试,但是不知道这个加速度检测芯片的价格如何
  • TA的每日心情
    擦汗
    2016-8-7 07:53
  • 签到天数: 112 天

    [LV.6]常住居民II

     楼主| 发表于 2012-6-16 09:22 | 显示全部楼层
    dy20082250 发表于 2012-6-15 10:14
    很想自己亲自试试,但是不知道这个加速度检测芯片的价格如何

    你去淘宝搜一下就知道了,一个芯片最低是7.8元,一个模块就是30元左右。不贵!

    该用户从未签到

    发表于 2012-7-22 11:53 | 显示全部楼层
    为什么我编译后显示:AcceleroMMA7361 does not name a type ,是不是我没有那个头文件,应该怎么添加啊?
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2012-7-22 13:22 | 显示全部楼层
    124330190 发表于 2012-7-22 11:53
    为什么我编译后显示:AcceleroMMA7361 does not name a type ,是不是我没有那个头文件,应该怎么添加啊? ...

    你没下这个库
    如果以上内容对你有帮助,你可以通过打赏支持作者

    该用户从未签到

    发表于 2012-7-22 15:01 | 显示全部楼层
    奈何col 发表于 2012-7-22 13:22
    你没下这个库

    为什么我的串口显示的是乱码
    串口.jpg

    该用户从未签到

    发表于 2012-7-22 15:02 | 显示全部楼层
    将信息复制粘贴后就 正常了x:512        y:514        z:760
    x:511        y:513        z:759
    x:509        y:513        z:759
    x:512        y:513        z:761
    x:510        y:512        z:761
    x:512        y:512        z:762
    x:511        y:512        z:760
    x:511        y:512        z:762
    x:511        y:513        z:761
    x:510        y:511        z:759
    x:511        y:512        z:761
    x:512        y:513        z:763
    x:510        y:512        z:763
  • TA的每日心情
    郁闷
    2018-12-6 22:21
  • 签到天数: 48 天

    [LV.5]常住居民I

    发表于 2012-7-22 15:28 | 显示全部楼层
    124330190 发表于 2012-7-22 15:02
    将信息复制粘贴后就 正常了x:512        y:514        z:760
    x:511        y:513        z:759
    x:509        y:513        z:759

    试试用这个串口调试器看http://www.arduino.cn/thread-1183-1-1.html
    如果以上内容对你有帮助,你可以通过打赏支持作者

    该用户从未签到

    发表于 2012-7-23 08:35 | 显示全部楼层
    奈何col 发表于 2012-7-22 15:28
    试试用这个串口调试器看http://www.arduino.cn/thread-1183-1-1.html

    ok了~灰常感谢!~!~!~!~!

    该用户从未签到

    发表于 2012-8-6 17:58 | 显示全部楼层
    想不到加速度传感器竟然是用这样的
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    KittenBot杯第六届开源硬件开发大赛启动啦
    KittenBot杯第六届开源硬
    大赛简介: 第六届开源硬件开发大赛由Arduino中文社区发起 由KittenBot冠名赞助
    游戏机和开发板脑洞一下;这个本来就是开源的。
    游戏机和开发板脑洞一下;
    这个开发板和标准UNO是1;1的;通用。做在一起是因为可以不用游戏机时可以切换回来做开
    新人求助,关于舵机和限位开关。
    新人求助,关于舵机和限位
    新人求助社区各位哥哥姐姐,具体需要用航模遥控器的3段开关控制Arduino nano控制一个3
    基于MWC开源飞控DIY关键总结分享:
    基于MWC开源飞控DIY关键总
    很早就已经很想写这么一个帖,但总是由于各种原因没能落实,但最后还是找了时
    有关函数返回值的问题
    有关函数返回值的问题
    求助大神们,这个程序中有return返回值,但为什么有这个“ warning: return-statement
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表