在上一博文中说了直流电机驱动板的电路原理,现在具体说一下直流电机的调速原理以及代码实现,亲测调速有效。
首先说一下接线,l298n可以控制两路直流电机,在这里仅测试一路,看一下l298n的控制逻辑以及芯片引脚。
所用到的就是IN1-4,两个使能ENA和ENB,然后OUT1-4。看一下其控制逻辑
使能信号ENA高电平有效,然后逻辑信号IN1和IN2一起控制正反转和刹车。利用stm32进行控制并实现调速,只需要输出两个逻辑信号和一个pwm信号即可。这里采用其通用定时器3的通道2输出pwm,在开发板上对应引脚为pa7,逻辑信号利用pa4和pa5输出。那么,具体接线就简单了,接线图如下:
具体接线描述:L298N的out1和out2接电机的正负极,IN1和IN2分别对应开发板的PA4和PA5,12V电源接入L298N的12V供电和GND,然后将开发板的gnd和l298n的gnd连接(一定要共地)接线完工。
具体代码分析首先要进行gpio口和时钟的初始化,代码利用按键中断来输出不同的pwm波形,所以还需要进行中断初始化,最后主函数循环等待即可。
首先gpio初始化,利用GPIOA的4/5/7,4/5输出高低电平,设置成推挽输出即可,7输出pwm,需要设置为复用推挽。具体代码如下:
GPIO_InitTypeDef GPIO_InitStructure;//定义数组
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); //使能GPIO外设时钟
//设置该引脚为复用输出功能,输出TIM3 CH2的PWM脉冲波形 GPIOA.7
GPI