pine222 发表于 2012-8-8 08:56:13

MMA7361加速度传感器是如何测量角度的

MMA7361加速度传感器是如何测量角度的呢,哪位用过m16做过关于MMA7361的大神帮忙解释一下

pine222 发表于 2012-8-8 10:13:55

它的self——test引脚如何连接

snail_dongbin 发表于 2012-8-8 10:44:48

这个做过,但是角度转换不是很好,抖动很大,而且到72读后直接90度,不太准,高手赐教

Hunter 发表于 2012-8-8 11:08:34

看资料啊,一些数字加速度传感器,测试角度一般都不是很精细。分辨率比较差。

pine222 发表于 2012-8-8 19:50:29

snail_dongbin 发表于 2012-8-8 10:44 static/image/common/back.gif
这个做过,但是角度转换不是很好,抖动很大,而且到72读后直接90度,不太准,高手赐教 ...

请问你在做的时候self-test引脚是怎么连接的,我的角度显示一直不稳,一直再跳

pine222 发表于 2012-8-8 20:25:49

Hunter 发表于 2012-8-8 11:08 static/image/common/back.gif
看资料啊,一些数字加速度传感器,测试角度一般都不是很精细。分辨率比较差。 ...

资料好多地方看不懂,能不能指点一下,是不是连上VCC和GND,直接就可以在X.Y.Z轴取信号啊?

pine222 发表于 2012-8-9 16:06:18

自己解释一下吧,sleep引脚没有接,

irobot07 发表于 2012-8-9 16:48:51

大角度不是很准,我做的±80°还可以~

pine222 发表于 2012-8-10 19:19:34

irobot07 发表于 2012-8-9 16:48 static/image/common/back.gif
大角度不是很准,我做的±80°还可以~

sleep引脚接+5v,会出现什么状况,我的x,y,z 三端的输出电压从1.1~3.5v了。不会把芯片烧了吧?

xuwuyang 发表于 2012-8-10 19:24:08

g senor角度测量!mark!

huzhiyang 发表于 2012-8-10 19:25:21

不难,我做过。;

pine222 发表于 2012-8-10 19:44:25

xuwuyang 发表于 2012-8-10 19:24 static/image/common/back.gif
g senor角度测量!mark!

不是GS的问题

pine222 发表于 2012-8-10 19:47:42

huzhiyang 发表于 2012-8-10 19:25 static/image/common/back.gif
不难,我做过。;

那输出电压过高是怎么回事,一开始好好的,当SLEEP引脚接了一下+5V发现芯片发热,马上拔了下来,然后电压值和电压变化范围都增大了,有没有可能是芯片出了什么问题

huzhiyang 发表于 2012-8-10 19:56:25

pine222 发表于 2012-8-10 19:47 static/image/common/back.gif
那输出电压过高是怎么回事,一开始好好的,当SLEEP引脚接了一下+5V发现芯片发热,马上拔了下来,然后电压 ...

我记得应该是模拟量输出吧。。你的是数字量?

huzhiyang 发表于 2012-8-10 19:59:18

huzhiyang 发表于 2012-8-10 19:56 static/image/common/back.gif
我记得应该是模拟量输出吧。。你的是数字量?

模拟量输出,首先第一个问题:你的电源要稳定在5V,第二个你的MCU跟传感器共地。。

pine222 发表于 2012-8-10 20:08:35

错了,原来是单片机参考电压的问题{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}

pine222 发表于 2012-8-10 21:10:16

huzhiyang 发表于 2012-8-10 19:59 static/image/common/back.gif
模拟量输出,首先第一个问题:你的电源要稳定在5V,第二个你的MCU跟传感器共地。。 ...

是模拟量,后面用的M16的ad,现在好了,不过误差比较大,在2度左右

huzhiyang 发表于 2012-8-11 09:35:08

pine222 发表于 2012-8-10 21:10 static/image/common/back.gif
是模拟量,后面用的M16的ad,现在好了,不过误差比较大,在2度左右

那你可以软件补偿一下。。。简单的分布P一下,。。或者整体PI。。就没问题了

pine222 发表于 2012-8-11 21:44:48

huzhiyang 发表于 2012-8-11 09:35 static/image/common/back.gif
那你可以软件补偿一下。。。简单的分布P一下,。。或者整体PI。。就没问题了 ...

它是在2度的范围内一直跳。稳不住

huzhiyang 发表于 2012-8-11 21:48:51

pine222 发表于 2012-8-11 21:44 static/image/common/back.gif
它是在2度的范围内一直跳。稳不住

那可能就是硬件的问题

trent5145 发表于 2012-8-11 22:23:37

以前做过,感觉还行,不过因为项目需要只测了+-30度的角度变化,经过了数字滤波,稳定在0.1度左右,至于精度嘛,没设备测试

caicyan 发表于 2012-8-15 10:51:09

请问,这个芯片可以测车轮转角吗

pine222 发表于 2012-8-25 10:57:57

caicyan 发表于 2012-8-15 10:51 static/image/common/back.gif
请问,这个芯片可以测车轮转角吗

不知道诶,没见过

caicyan 发表于 2012-8-27 19:45:47

可不可以用ENC-03和7260测出小车的横摆角速度,然后推出转角吗,

Name_006 发表于 2012-8-27 19:56:31

这个传感器输出的不是 数字量么 。。。    三角函数一算就出来了啊                                                                              

pine222 发表于 2012-8-28 10:18:29

trent5145 发表于 2012-8-11 22:23 static/image/common/back.gif
以前做过,感觉还行,不过因为项目需要只测了+-30度的角度变化,经过了数字滤波,稳定在0.1度左右,至于精 ...

数字滤波很管用,谢谢了

taocongrong 发表于 2012-9-6 11:30:22

shihuntaotie 发表于 2012-10-31 21:42:45

irobot07 发表于 2012-8-9 16:48 static/image/common/back.gif
大角度不是很准,我做的±80°还可以~

请问能把角度计算部分代码发给我参考一下吗?
最近在调,但是一直没有弄明白怎么通过传感器输出计算出角度。

shihuntaotie 发表于 2012-11-7 11:52:45

irobot07 发表于 2012-8-9 16:48 static/image/common/back.gif
大角度不是很准,我做的±80°还可以~

潜水久了,不能发消息,直接回帖了
谢谢了。邮箱:cq19900608@163.com

zhang139649 发表于 2012-12-10 23:29:50

{:tongue:}{:tongue:}{:tongue:}{:tongue:}

seeyou2013 发表于 2013-1-9 00:48:17

楼主,小弟现在在做这个,但小弟菜鸟一个,资料比较难找,,可不可以共享一下资料,及你的实验原理图或者程序啊,,小弟邮箱:seeyou2013@qq.com,或你开源一下呗呵呵呵

seeyou2013 发表于 2013-1-12 10:25:29

irobot07 发表于 2012-8-9 16:48 static/image/common/back.gif
大角度不是很准,我做的±80°还可以~

你好,小弟最近也在做MMA7361的实验,,请问mma7361的self-test管脚,与0g-test管脚,我看你的电路图是悬空了吗。,,这样是对的吗,对实验有没有影响啊,,小弟菜鸟,,看英文pdf慎得慌!!!

seeyou2013 发表于 2013-1-12 10:26:41

irobot07 发表于 2012-8-9 16:48 static/image/common/back.gif
大角度不是很准,我做的±80°还可以~

你好,小弟最近也在做MMA7361的实验,,请问mma7361的self-test管脚,与0g-detect管脚,我看你的电路图是悬空了吗。,,这样是对的吗,对实验有没有影响啊,,小弟菜鸟,,看英文pdf慎得慌!!!

irobot07 发表于 2013-1-12 16:30:57

seeyou2013 发表于 2013-1-12 10:26 static/image/common/back.gif
你好,小弟最近也在做MMA7361的实验,,请问mma7361的self-test管脚,与0g-detect管脚,我看你的电路图是 ...

悬空没问题~

pine222 发表于 2013-1-14 20:28:53

seeyou2013 发表于 2013-1-12 10:25 static/image/common/back.gif
你好,小弟最近也在做MMA7361的实验,,请问mma7361的self-test管脚,与0g-test管脚,我看你的电路图是悬 ...

//-------------------------------------------------------------------
// MMA7361 Demo code, show the 3 axis date through UART periodically
// Hardware connection:        X_out         PC2
//                        Y_out                PC1
//                      Z_out                PC0
//                        MMA7361_En        PC3
//                        UART_Tx         PD1
// Software UART baudrate 115200 when main frequency is 4M
//-------------------------------------------------------------------
                                                                                               
#include "avr/io.h"
//#include "inAVR.h"
#include "stdio.h"
#include "stdbool.h"

#define Max_Axis        3
#define X_Channel        0        //PC2
#define Y_Channel       1        //PC1
#define Z_Channel        2        //PC0
#define MMA7361_EN        0x08        //PC3

const unsigned char Channel_Tbl={0x42,0x41,0x40};   //Z,Y,X
const unsigned char Axis_Name={'X','Y','Z'};
unsigned char Temp, Temp1, ADC_Done,ShowDebug_Cnt;            //Temporary saving cells
unsigned int Axis_Data;
unsigned long SumReg = 0;                                        //Storage variable
static char        SampCnt;                                        //ADC samples counter

#include        "functions.c"

int main(void)
{
unsigned char i;
IO_Ports_Init();                                //Initialize IO ports
Timers_Init();                                //Initialize timers
ADC_Init();                                        //Initialize ADC
PRR = 0x82;                                 //Reduce consumption 86 (don't stop SPI)
CLKPR = 0x80;                                        //Increase Fcpu
CLKPR = 0x00;
TCCR2B = 0x06;

__disable_interrupt();
__watchdog_reset();
    WDTCSR = 0x18;                                //Enable watchdog, timeout 256ms
    WDTCSR = 0x0D;
__enable_interrupt();                                //Enable interrupts

MMA7361_Init();
while(1)
{
    __watchdog_reset();                                //Reset watchdog timer
      
    if(ShowDebug_Cnt==0)                                                       
    {
            ShowDebug_Cnt=30;//13;                                //Get data periodically
            for(i=0;i<Max_Axis;i++)                                        //Get Axis data
                        Axis_Data=Get_ADC(i,10);
                for(i=0;i<Max_Axis;i++)                                //Show Axis data through UART
                {
                    SW_UART_Tx(Axis_Name);
                        Put_Axis(Axis_Data);
                    SW_UART_Tx(' ');
                }
            SW_UART_Tx(' ');                                        //Next Line
            SW_UART_Tx(0x0d);
        }
}


}

//SIGNAL(SIG_OVERFLOW2)
#pragma vector=TIMER2_OVF_vect

__interrupt void TMR2irq( void )

{
if(ShowDebug_Cnt!=0)
        ShowDebug_Cnt--;
}

//SIGNAL(SIG_ADC)
#pragma vector=ADC_vect

__interrupt void ADCirq( void )
{
SumReg += ADC;                                                                 //Add result to common sum
if(--SampCnt == 0)                                                                //Check number of samples
{
        ADC_Done=1;                                                                //Measuring is complete
        ADCSRA = 0x80;                                                                //Stop ADC
}
else
{
        ADCSRA |= 0x40;                                                                //Start next ADC cycle
}
}

//SIGNAL(__vector_default)
//#pragma vector=default

seeyou2013 发表于 2013-1-15 09:36:42

pine222 发表于 2013-1-14 20:28 static/image/common/back.gif
//-------------------------------------------------------------------
// MMA7361 Demo code, show t ...

这是你写的程序嘛,,谢谢啦

洗澡哥 发表于 2013-7-24 14:09:23

seeyou2013 发表于 2013-1-15 09:36 static/image/common/back.gif
这是你写的程序嘛,,谢谢啦

有原理图和资料吗

AIR_浩瀚 发表于 2013-9-14 12:37:26

请教一下,能否发份资料,参考程序,谢谢了,邮箱:1766558466@qq.com

bitgyq 发表于 2014-8-5 13:52:06

能否说明一下采样到的AD值是怎么转化成角度的算法,谢谢!
页: [1]
查看完整版本: MMA7361加速度传感器是如何测量角度的