http://blog.163.com/libo_5/blog/static/1569685201135115422695/
应好朋友们的要求,这两天研究了一下传说中神奇的三轴加速度计,下面写一篇关于三轴加速度计的使用例程,说到三轴加速度计还真是个好东西,可以检测运动中的物体的加速度,可以对物体的运动姿态和运动方向进行检测,在WII和IPHONE中都有典型应用,在Nokia的N95中更是得到了从分的开发利用。
这个三轴加速度计用的是Freescale(飞思卡尔)公司生产性价比高微型电容式加速度传感器MMA7260芯片。用三轴加速度计利用重力分量换算原理,来测量角度与其他数字量倾角传感器相比自然要精准许多,因为模拟量的,可将电压值换算对应倾斜角度值,所以在许多需要测量角度的场合,非运动的条件下,不妨可以试试使用加速度计。
下面就是MMA7260三轴加速度计的结构图解
这里有必要说一下G1和G2,很多人有疑问,这是怎么选择的呢?其实这里很简单,G1和G2两位数字量输入4种组合代表4中量程。
G1 G2 量程选择 灵敏度选择
0 0 1.5g 800mV/g
0 1 2g 600mV/g
1 0 4g 300mV/g
0 1 6g 200mV/g
下面就做一个小实验,简单的输出测得的模拟值,我们通过将模拟值转换成电压值再参考MMA7260芯片手册就可以得知物体的姿态或者角度了。
我将X、Y、Z三接口分别接到Arduino的模拟0、1、2接口,EN使能和3.3V短接,我将G1和G2悬空即取默认值。
下面是一段简单的读取模拟值的程序
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芯片手册,可知测量的物体状态均正确,这就大功告成啦!
水平放置读出模拟值
竖直放置读出模拟值
程序很简单,朋友们也可编写一些带算法的程序,将模拟值转换成相应的角度,直接输出角度值。先写到这里,希望对朋友们有所帮助。
附上