这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 电子DIY » 平衡车编码器的数值问题

共7条 1/1 1 跳转至

平衡车编码器的数值问题

菜鸟
2015-05-16 23:04:24     打赏

我使用32 定时器的编码器模式读取编码器的数值,让平衡车固定倾斜某个角度的时候


The Counter_L   is 32210
.........................
The Counter_R  is 28491
SPEED is -7507
.........................
POSITION is -24000
.........................
The Counter_L   is 28576
.........................
The Counter_R  is 32405
SPEED is -7476
.........................
POSITION is -24000
.........................
The Counter_L   is 32205
.........................
The Counter_R  is 28692

1我的编码器  左右数值  The Counter_L    The Counter_R来回在32000多和28000多切换这是怎么回事呢  ?

2这会对平衡车的平衡 造成什么影响吗 ?( 我的意思说使用速度环的时候 )







关键词: 平衡     编码器     数值    

助工
2015-05-17 11:13:47     打赏
2楼

1.可能是你读取编码器之后给CNT赋了30000;

2.你重新标定一下数据就行了


菜鸟
2015-05-17 11:19:58     打赏
3楼
对  
void Lowpass_Filter()//低通滤波器
  {  
		
		  Ablosute_Count=(TIM2->CNT - COUNTER_RESET)+(TIM3->CNT - COUNTER_RESET);
   Speed_New=Ablosute_Count*0.5; 
		 Speed=Speed_New*0.3+Speed_Old*0.7;
		 Speed_Old=Speed;
		 Position+=Speed;//对速度积分
		 Position+=Speed_Need;
		if(Position>24000)
			Position=24000;
		if(Position<-24000)
			Position=-24000;
		 TIM2->CNT= COUNTER_RESET;
		 TIM3->CNT= COUNTER_RESET;
		    
 }

 

 我读取之后 &nbsp;CNT重新赋值了。但是这会  有什么影响呢   难道不要重新赋值吗

助工
2015-05-18 18:34:31     打赏
4楼
让COUNTER_RESET等0

菜鸟
2015-05-18 22:28:16     打赏
5楼

我忘记说了  我在使用定时器的编码器模式初始化的时候就这样赋值了一次

  1.  TIM2->CNT= COUNTER_RESET;  
  2.          TIM3->CNT= COUNTER_RESET;  

      COUNTER_RESET=32767;

我觉得每次低通滤波都得重新赋值一次  这个值才会准确,才能正确表示电机的速度



菜鸟
2015-05-19 16:24:20     打赏
6楼

我忘记说了  我在使用定时器的编码器模式初始化的时候就这样赋值了一次

  1.  TIM2->CNT= COUNTER_RESET;  
  2.          TIM3->CNT= COUNTER_RESET;  

      COUNTER_RESET=32767;

我觉得每次低通滤波都得重新赋值一次  这个值才会准确,才能正确表示电机的速度


菜鸟
2015-07-14 22:22:16     打赏
7楼

 楼主 ,你的平衡车做的怎么样啦


共7条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]