MMA7361加速度传感器是如何测量角度的
MMA7361加速度传感器是如何测量角度的呢,哪位用过m16做过关于MMA7361的大神帮忙解释一下 它的self——test引脚如何连接 这个做过,但是角度转换不是很好,抖动很大,而且到72读后直接90度,不太准,高手赐教 看资料啊,一些数字加速度传感器,测试角度一般都不是很精细。分辨率比较差。 snail_dongbin 发表于 2012-8-8 10:44 static/image/common/back.gif这个做过,但是角度转换不是很好,抖动很大,而且到72读后直接90度,不太准,高手赐教 ...
请问你在做的时候self-test引脚是怎么连接的,我的角度显示一直不稳,一直再跳 Hunter 发表于 2012-8-8 11:08 static/image/common/back.gif
看资料啊,一些数字加速度传感器,测试角度一般都不是很精细。分辨率比较差。 ...
资料好多地方看不懂,能不能指点一下,是不是连上VCC和GND,直接就可以在X.Y.Z轴取信号啊? 自己解释一下吧,sleep引脚没有接, 大角度不是很准,我做的±80°还可以~ irobot07 发表于 2012-8-9 16:48 static/image/common/back.gif
大角度不是很准,我做的±80°还可以~
sleep引脚接+5v,会出现什么状况,我的x,y,z 三端的输出电压从1.1~3.5v了。不会把芯片烧了吧? g senor角度测量!mark! 不难,我做过。;
xuwuyang 发表于 2012-8-10 19:24 static/image/common/back.gif
g senor角度测量!mark!
不是GS的问题
huzhiyang 发表于 2012-8-10 19:25 static/image/common/back.gif
不难,我做过。;
那输出电压过高是怎么回事,一开始好好的,当SLEEP引脚接了一下+5V发现芯片发热,马上拔了下来,然后电压值和电压变化范围都增大了,有没有可能是芯片出了什么问题 pine222 发表于 2012-8-10 19:47 static/image/common/back.gif
那输出电压过高是怎么回事,一开始好好的,当SLEEP引脚接了一下+5V发现芯片发热,马上拔了下来,然后电压 ...
我记得应该是模拟量输出吧。。你的是数字量? huzhiyang 发表于 2012-8-10 19:56 static/image/common/back.gif
我记得应该是模拟量输出吧。。你的是数字量?
模拟量输出,首先第一个问题:你的电源要稳定在5V,第二个你的MCU跟传感器共地。。 错了,原来是单片机参考电压的问题{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}{:sweat:}
huzhiyang 发表于 2012-8-10 19:59 static/image/common/back.gif
模拟量输出,首先第一个问题:你的电源要稳定在5V,第二个你的MCU跟传感器共地。。 ...
是模拟量,后面用的M16的ad,现在好了,不过误差比较大,在2度左右 pine222 发表于 2012-8-10 21:10 static/image/common/back.gif
是模拟量,后面用的M16的ad,现在好了,不过误差比较大,在2度左右
那你可以软件补偿一下。。。简单的分布P一下,。。或者整体PI。。就没问题了 huzhiyang 发表于 2012-8-11 09:35 static/image/common/back.gif
那你可以软件补偿一下。。。简单的分布P一下,。。或者整体PI。。就没问题了 ...
它是在2度的范围内一直跳。稳不住 pine222 发表于 2012-8-11 21:44 static/image/common/back.gif
它是在2度的范围内一直跳。稳不住
那可能就是硬件的问题 以前做过,感觉还行,不过因为项目需要只测了+-30度的角度变化,经过了数字滤波,稳定在0.1度左右,至于精度嘛,没设备测试 请问,这个芯片可以测车轮转角吗 caicyan 发表于 2012-8-15 10:51 static/image/common/back.gif
请问,这个芯片可以测车轮转角吗
不知道诶,没见过 可不可以用ENC-03和7260测出小车的横摆角速度,然后推出转角吗, 这个传感器输出的不是 数字量么 。。。 三角函数一算就出来了啊 trent5145 发表于 2012-8-11 22:23 static/image/common/back.gif
以前做过,感觉还行,不过因为项目需要只测了+-30度的角度变化,经过了数字滤波,稳定在0.1度左右,至于精 ...
数字滤波很管用,谢谢了
irobot07 发表于 2012-8-9 16:48 static/image/common/back.gif
大角度不是很准,我做的±80°还可以~
请问能把角度计算部分代码发给我参考一下吗?
最近在调,但是一直没有弄明白怎么通过传感器输出计算出角度。 irobot07 发表于 2012-8-9 16:48 static/image/common/back.gif
大角度不是很准,我做的±80°还可以~
潜水久了,不能发消息,直接回帖了
谢谢了。邮箱:cq19900608@163.com {:tongue:}{:tongue:}{:tongue:}{:tongue:} 楼主,小弟现在在做这个,但小弟菜鸟一个,资料比较难找,,可不可以共享一下资料,及你的实验原理图或者程序啊,,小弟邮箱:seeyou2013@qq.com,或你开源一下呗呵呵呵 irobot07 发表于 2012-8-9 16:48 static/image/common/back.gif
大角度不是很准,我做的±80°还可以~
你好,小弟最近也在做MMA7361的实验,,请问mma7361的self-test管脚,与0g-test管脚,我看你的电路图是悬空了吗。,,这样是对的吗,对实验有没有影响啊,,小弟菜鸟,,看英文pdf慎得慌!!! irobot07 发表于 2012-8-9 16:48 static/image/common/back.gif
大角度不是很准,我做的±80°还可以~
你好,小弟最近也在做MMA7361的实验,,请问mma7361的self-test管脚,与0g-detect管脚,我看你的电路图是悬空了吗。,,这样是对的吗,对实验有没有影响啊,,小弟菜鸟,,看英文pdf慎得慌!!! seeyou2013 发表于 2013-1-12 10:26 static/image/common/back.gif
你好,小弟最近也在做MMA7361的实验,,请问mma7361的self-test管脚,与0g-detect管脚,我看你的电路图是 ...
悬空没问题~ 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
pine222 发表于 2013-1-14 20:28 static/image/common/back.gif
//-------------------------------------------------------------------
// MMA7361 Demo code, show t ...
这是你写的程序嘛,,谢谢啦 seeyou2013 发表于 2013-1-15 09:36 static/image/common/back.gif
这是你写的程序嘛,,谢谢啦
有原理图和资料吗 请教一下,能否发份资料,参考程序,谢谢了,邮箱:1766558466@qq.com 能否说明一下采样到的AD值是怎么转化成角度的算法,谢谢!
页:
[1]