L298N驅動芯片簡介
L298N是SGS公司的產品,內部包含4通道邏輯驅動電路,是一種二相和四相電機的專用驅動器,即內含二個H橋的高電壓大電流雙全橋式驅動器,接收標準TTL邏輯電平信號,可驅動46V、2A以下的電機。其引腳排列如下圖所示。
OUT1、OUT2和OUT3、OUT4之間分別接2個電動機。IN1、IN2、IN3、IN4引腳從單片機接輸入控制電平,控制電機的正反轉,ENA,ENB接控制使能端,控制電機的停轉。L298的邏輯功能表如下所示:
對于點擊的調速,我們采用PWM調速的方法。其原理就是開關管在一個周期內的導通時間是t,周期為T,則電機兩端的平均電壓U=Vcc*(t/T)=a*Vcc。其中,a=t/T(占空比),Vcc是電源電壓。電機的轉速與電機兩端的電壓成比例,而電機兩端的電壓與控制波形的占空比成正比例,占空比越大,電機轉的越快。在硬件電路的連接上如下圖所示:
我們將控制器的PA2、PB9、PA1、PC9口分別連接到298的IN1~IN4上,將擁有PWM的PA0、PA3連接到298的ENA、ENB,通過改變PA2、PB9、PA1、PC9口上的高低電平變化以控制小車的前進方向,通過改變PA0、PA3口上的高低電平的占空比以控制電機的轉速。
STM32CubeMX配置
將PA2、PB9、PA1、PC9口配置為Output,PA0、PA3配置為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__))