双轴加速度传感器_第1页
双轴加速度传感器_第2页
双轴加速度传感器_第3页
双轴加速度传感器_第4页
双轴加速度传感器_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、双轴加速度传感器概要Memsic 2125 双轴加速度传感器,能够测量运动加速度和静态加速度。测量范围为-2g+2g。特点l 能测量X和Y轴方向上的-2g+2g的加速度,精度为1mgl 全温度工作(070)l 简单的脉冲输出接口,容易在各种单片机上实现。基本连线图图 1将MXD2125连接到我们的实验板很简单,这里的Y(OUT)连接P3_3 ,X(OUT)了解到P3_2。 工作原理Memsic 2125的核心包含一个加热器,这个加热器产生“气泡”,当重力作用在这些“气泡”上就会促使“气泡”移动,这个移动会被非常敏感的温度传感器检测到,通过电子器件将“气泡”的位置转化为脉冲输出。Mxd2125输

2、出的脉冲,在加速度为0的时候,脉冲的占空比为50%,这个占空比会随着加速度的变化而变化。如图2 。计算加速度有如下公式:A(g) = (T1 / T2) - 0.5) / 12.5%T2在25摄氏度的时候为10ms ,所以我们只要能测到某一个轴高电平的时间,就能计算出加速度。如果是在静止状态下,在得到加速度以后我们还可计算出现在的倾斜角,公式如下:Tilt = ARCSIN(g)图 2演示程序下面的Demo实现对X轴和Y轴 的加速度和倾斜角的测量。其中包含一个处理LCD数字显示的头文件LCDDISPNUM.H。具体见相关程序。PART 1 MXD2125.h文件/*文件 : MXD2125.h

3、描述 :双轴加速器 编写 : 任晓东说明 :使用MXD2125实现对加速度,角度的测量日期 :2008年10月30日*/#include <AT89X52.h>#include <stdio.h>#include<BoeBot.h>#include<MATH.H>#define uint unsigned int #define uchar unsigned char #define SIGX P3_2/信号引脚,外部中断0 X#define SIGY P3_3 / Y#define PI 3.1415926#define TILT(a) a*1

4、80/PI /度弧度×180°/*- 函数名:Time2_init( ) 功 能:使用T2做串口时钟-*/void Time2_init(void)EA = 1;T2MOD = 0; T2CON |= 0x10;SCON = 0x50 ;TH2 = (65536 - 36)/256;TL2 = (65536-36)%256;RCAP2H = (65536 - 36)/256;RCAP2L =(65536 - 36)%256;TR2 = 1; TI = 1;/*- 函数名:Time0_1_init( ) 功 能:T0和T1分别记录X和Y 轴的值-*/void Time0_1_

5、init(void)TMOD |= 0x99 ; /定时器1和0,门控制 定时器1方式TH0 = 0 ;TL0 = 0 ; TR0 = 0 ; TH1 = 0 ; TL1 = 0 ; TR1 = 0 ;/*- 函数名:GetXmg ( ) 功 能: 计算X轴方向的加速度 根据安装图,右转的时候为正-*/int GetXmg(void)uint xm;uint xn;int xtemp,Xmg;while(SIGX = 1); / 测试下一个脉冲 TR0 = 1;while(SIGX = 0);while(SIGX = 1);TR0 = 0; xm= TH0; xn= TL0; xtemp =

6、xm*256+xn + 390; /390是一个误差补偿 Xmg = (xtemp / 10) - 500) * 8; TH0 = 0; TL0 = 0; return(Xmg);/*- 函数名:GetXtilt ( ) 说 明: 倾斜角在静止的时候测得比较精确的结果在-45度+45度-*/float GetXtilt(void)float Xmg,tiltx;float radianx;Xmg = (float)GetXmg();radianx = asin(Xmg*0.001);tiltx = TILT(radianx);return (tiltx);/*- 函数名:GetYmg ( )

7、功 能: 计算X轴方向的加速度 根据安装图,向前的时候为正-*/int GetYmg(void)uint ym;uint yn;int ytemp,Ymg;while(SIGY = 1); / 测试下一个脉冲 TR1 = 1;while(SIGY = 0);while(SIGY = 1);TR1 = 0; ym= TH1; yn= TL1; ytemp = ym*256+yn + 390; Ymg = (ytemp / 10) - 500) * 8 ; TH1 = 0; TL1 = 0; return(Ymg);/*- 函数名:GetYtilt ( ) 功 能: 计算X轴方向的加速度 根据安装

8、图,向前的时候为正 说 明: 倾斜角在静止的时候测得比较精确的结果在-45度+45度-*/float GetYtilt(void)float Ymg,tilty;float radiany;Ymg = (float)GetYmg();radiany = asin(Ymg*0.001);tilty = TILT(radiany);return (tilty);PART 2 主程序/*文件 : MXD2125.C描述 :双轴加速器 编写 : 任晓东说明 :MXD2125.C,将测量的加速度和角度显示在LCD上日期 :2008年10月31日*/#include"LCDDISPNUM.H&q

9、uot;#include"MDX2125.h"void main(void) int xmg,ymg; float xtilt,ytilt; LCM_Init();Time2_init();Time0_1_init();SIGY = SIGX = 1;printf("MXD2125 run ok !n");while(1) Write_Command_LCM(1,0); /注意清屏 xmg = GetXmg(); Display_List_Char(0,0 ,"XA:"); DispIntNum(xmg,0,3); /显示加速度 xtilt = GetXtilt(); Display_List_Char(0,8 ,"T:"); DispFloatNum(xtilt,0,10,2);/显示倾斜角 ymg = GetYmg(); Display_List_Char(1,0 ,"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论