分享

Arduino应用之MMA7260三轴加速度计

 Tehero 2014-07-14

Arduino应用之MMA7260三轴加速度计

   应好朋友们的要求,这两天研究了一下传说中神奇的三轴加速度计,下面写一篇关于三轴加速度计的使用例程,说到三轴加速度计还真是个好东西,可以检测运动中的物体的加速度,可以对物体的运动姿态和运动方向进行检测,在WII和IPHONE中都有典型应用,在Nokia的N95中更是得到了从分的开发利用。

    Arduino应用之MMA7260三轴加速度计

    这个三轴加速度计用的是Freescale(飞思卡尔)公司生产性价比高微型电容式加速度传感器MMA7260芯片。用三轴加速度计利用重力分量换算原理,来测量角度与其他数字量倾角传感器相比自然要精准许多,因为模拟量的,可将电压值换算对应倾斜角度值,所以在许多需要测量角度的场合,非运动的条件下,不妨可以试试使用加速度计。

   下面就是MMA7260三轴加速度计的结构图解

Arduino应用之MMA7260三轴加速度计

    这里有必要说一下G1和G2,很多人有疑问,这是怎么选择的呢?其实这里很简单,G1和G2两位数字量输入4种组合代表4中量程。

G1    G2    量程选择    灵敏度选择

         1.5g       800mV/g

          2g        600mV/g

          4g        300mV/g

          6g        200mV/g

    下面就做一个小实验,简单的输出测得的模拟值,我们通过将模拟值转换成电压值再参考MMA7260芯片手册就可以得知物体的姿态或者角度了。

    我将X、Y、Z三接口分别接到Arduino的模拟0、1、2接口,EN使能和3.3V短接,我将G1和G2悬空即取默认值。

Arduino应用之MMA7260三轴加速度计



下面是一段简单的读取模拟值的程序

int xpin=0;
int ypin=1;
int zpin=2;
int n;
int m;
int i;
void setup()
{
    Serial.begin(9600);
}
void loop()
{
  n=analogRead(xpin);
  m=analogRead(ypin);
  i=analogRead(zpin);
  Serial.print("x=");
  Serial.print(n);
  Serial.print("   ");
  Serial.print("y=");
  Serial.print(m);
  Serial.print("   ");
  Serial.print("z=");
  Serial.println(i);
  delay(500);
}

    我先将三轴加速度计水平(如上图)放置,又竖直放置,得到以下两组模拟值,参考MMA7260芯片手册,可知测量的物体状态均正确,这就大功告成啦!

Arduino应用之MMA7260三轴加速度计
水平放置读出模拟值

Arduino应用之MMA7260三轴加速度计

竖直放置读出模拟值

    程序很简单,朋友们也可编写一些带算法的程序,将模拟值转换成相应的角度,直接输出角度值。先写到这里,希望对朋友们有所帮助Arduino应用之MMA7260三轴加速度计
    附上一个运用三轴加速度计实现云台姿态控制的演示视频,大家不妨可以看一下,希望可以得到启发,将传感器应用到自己的实际项目中。

http://v.youku.com/v_show/id_XMjAwNDEzMjQw.html 

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多