首页 > 其他分享 >旋转倒立摆(3)直流减速电机的使用

旋转倒立摆(3)直流减速电机的使用

时间:2023-05-19 18:32:07浏览次数:36  
标签:ENABLE TIM4 减速 TIM TimeBaseStructure GPIO 倒立 ICInitStructure 直流

在制作旋转倒立摆的过程中,带编码器直流减速电机是唯一提供力的器件,对于整个倒立摆起着关键性的作用。直流电机的原理图如下:

旋转倒立摆(3)直流减速电机的使用_IT

改变施加在两端的电压,可以控制电机的速度,改变正负极,即可改变电机转动方向。编码器读取原理及代码如下:

void Encoder_Init_TIM4(void)
{
  TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;  
	TIM_ICInitTypeDef TIM_ICInitStructure;  
	GPIO_InitTypeDef GPIO_InitStructure;
	
	
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
	
	
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; 
	GPIO_Init(GPIOB, &GPIO_InitStructure);					      
  
	TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
	TIM_TimeBaseStructure.TIM_Prescaler = 0x0; 
	TIM_TimeBaseStructure.TIM_Period = ENCODER_TIM_PERIOD; 
	TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
	TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
	TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
	
	
	TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
	TIM_ICStructInit(&TIM_ICInitStructure);
	TIM_ICInitStructure.TIM_ICFilter = 10;
	TIM_ICInit(TIM4, &TIM_ICInitStructure);
	
	
	TIM_ClearFlag(TIM4, TIM_FLAG_Update);
	TIM_ITConfig(TIM4, TIM_IT_Update, ENABLE);
	TIM_SetCounter(TIM4,10000);
	TIM_Cmd(TIM4, ENABLE); 
}





标签:ENABLE,TIM4,减速,TIM,TimeBaseStructure,GPIO,倒立,ICInitStructure,直流
From: https://blog.51cto.com/u_16095802/6314670

相关文章