智能wifi小车- L298N直流电机驱动

 2016-05-20 11:33  94人

L298N驱动芯片简介

L298NSGS公司的产品,内部包含4通道逻辑驱动电路,是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。其引脚排列如下图所示。

OUT1OUT2OUT3OUT4之间分别接2个电动机。IN1IN2IN3IN4引脚从单片机接输入控制电平,控制电机的正反转,ENAENB接控制使能端,控制电机的停转。L298的逻辑功能表如下所示:

左电机

右电机

左电机

右电机

小车运行状态

IN1

IN2

IN3

IN4

1

0

1

0

正转

正转

前行

1

0

0

1

正转

反转

左转

1

0

0

0

正转

以左电机为中心原地左转

0

1

1

0

反转

正转

右转

0

0

1

0

正转

以右电机为中心原地右转

0

1

0

1

反转

反转

后退

对于点击的调速,我们采用PWM调速的方法。其原理就是开关管在一个周期内的导通时间是t,周期为T,则电机两端的平均电压U=Vcc*(t/T)=a*Vcc。其中,a=t/T(占空比),Vcc是电源电压。电机的转速与电机两端的电压成比例,而电机两端的电压与控制波形的占空比成正比例,占空比越大,电机转的越快。在硬件电路的连接上如下图所示:

 

我们将控制器的PA2PB9PA1PC9口分别连接到298IN1~IN4上,将拥有PWMPA0PA3连接到298ENAENB,通过改变PA2PB9PA1PC9口上的高低电平变化以控制小车的前进方向,通过改变PA0PA3口上的高低电平的占空比以控制电机的转速。

STM32CubeMX配置

PA2PB9PA1PC9口配置为OutputPA0PA3配置为PWM输出。

 

 

Counter Settings:

• 预分频器,NUCLEOF072RB 的工作频率默认为 8MHz,经 800分频之后的工作频率为10Khz

• 计数模式,向下还是向下计数

• 计数周期:0~999,这样一个计数周期下来,时间刚好是 100毫秒。

 

通过修改各通道的Pulse值修改各通道输出PWM占空比。

占空比修改

使用HAL库中的__HAL_TIM_SetCompare修改脉冲宽度来修改占空比,函数原型描述如下 

/**

 * @brief  Sets the TIM Capture Compare Register value on runtime without

 *         calling another time ConfigChannel function.

 * @param  __HANDLE__: TIM handle.

 * @param  __CHANNEL__ : TIM Channels to be configured.

 *          This parameter can be one of the following values:

 *            @arg TIM_CHANNEL_1: TIM Channel 1 selected

 *            @arg TIM_CHANNEL_2: TIM Channel 2 selected

 *            @arg TIM_CHANNEL_3: TIM Channel 3 selected

 *            @arg TIM_CHANNEL_4: TIM Channel 4 selected

 * @param  __COMPARE__: specifies the Capture Compare register new value.

 * @retval None

 */

#define __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__) \(*(__IO uint32_t *)(&((__HANDLE__)->Instance->CCR1) + ((__CHANNEL__) >> 2))

= (__COMPARE__))

分享到: