最新消息:

Arduino惯性测量传感器-MMA7361三轴加速度传感器

Arduino 少儿编程 1786浏览 0评论
Arduino惯性传感器

MMA7361传感器外观

Arduino惯性测量传感器-MMA7361三轴加速度传感器

MMA7361传感器介绍

  • MMA7361三轴加速度传感器是替代停产的MMA7260三轴加速度传感器,三轴加速度传感器是一种可以对物体运动过程中的加速度进行测量的电子设备,典型互动应用中的加速度传感器可以用来对物体的姿态或者运动方向进行检测,比如WII游戏机和iPhone手机中的经典应用。
  • MMA7361三轴加速度传感器芯片,对于普通的互动应用来讲应该是种不错的选择,可以应用到摩托车和汽车放倒报警、遥控航模、游戏手柄、人形机器人跌倒检测、硬盘冲击保护、倾斜度测量等场合。
  • MMA7361和MMA7260一样采用信号调理、单极低通滤波器和温度补偿技术,单只提供±1.5g /6g两个量程,用户可通过开关选择这2个灵敏度。该器件带有低通滤波并已做0g补偿,提供休眠模式,因而是电池供电的无线数据采集的理想之选。

MMA7361传感器参数

  • 供电电压:3.3-8V
  • 可选灵敏度,±1.5g/6g;通过拨码开关选择。
  • 低功耗,工作时电流为400μA,休眠模式下为3μA;
  • 高灵敏度,在1.5g量程下为800 mV/g;
  • 低通滤波器具有内部信号调理功能;
  • 设计稳定,防震能力强。
  • 模块尺寸:23X26mm

用户指南

这里是一个教程说明如何使用它。我们已经为你提供了可供选择的示例程序用来处理这三轴加速度计陀螺仪。我们可以测量装置和重力方向的三轴之间的角度。平面的位置是在三维空间中唯一地描述。
另外,我们提供了一些常用的三轴加速度传感器数据处理的方法:How to Use a Three-Axis Accelerometer for Tilt Sensing.

模拟输出程度

Arduino惯性测量传感器-MMA7361三轴加速度传感器

根据以上操作你可以按照自身的需求来设置重量监测的范围,和灵敏度。

  1. 模拟值读取(x)–>(2)vol_x(v)
    我们设置MMA的工作电压5v,通过在1024的串口监测下显示出来,所以我们应该将模拟电压。vol_x=analog_x*5/1024.

Arduino惯性测量传感器-MMA7361三轴加速度传感器
Arduino惯性测量传感器-MMA7361三轴加速度传感器

  1. vol_x–>add_x(v)
    当轴是水平的,它是1.65v.so我们需要减去这个量得到增加add_x=vol_x-1.65重量。
  2. add_x–>g_x
    我们选择 g-range 1.5g for MMA.G-范围表,its is 800mv/g.So we just need to make a division.g_x=add_x/0.8.
  3. g_x–>degree
    这是轴的重量是一G时的影响。就是说,每个轴的数量(G)是1G的一个重要组成部分。所以我们可以用反三角函数求解它。 Degree_x=asin(g_x) *180.0/PI.
    注意事项:不是每一个轴在水平位置都能精确的显示为1.65,所以我们需要对它进行补偿调整,但是这也是有一个范围的。

引脚定义

Arduino惯性测量传感器-MMA7361三轴加速度传感器

MMA7361三轴加速度传感器的测试

最简单的调试方法是把MMA7361三轴加速度传感器的输出端连接到Arduino的模拟输入端上。程序的编写也比较简单。由于传感器输出与重力方向成Sin关系,用Arcsin求角度,所以为你提供了参考代码,你只需要按照上述提示将硬件连好,再将为你提供的示例代码下载到主控板里,通过串口监视器你就可以观察三轴角度的变化了。

Arduino惯性测量传感器-MMA7361三轴加速度传感器

测试代码

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);
}

本文整理于DFRobot wiki

您必须 登录 才能发表评论!