TPYBoardv102——L298N电机驱动模块

文章目录

    • L298N电机驱动模块
      • PWM调速原理
    • 直流电机接线
    • PWM代码

L298N电机驱动模块

L298N 电机驱动模块可以直接驱动两路 3-16V 直流电机,并提供了 5V 输出接口(输入最低只要 6V),可以给5V单片机电路系统供电 (低纹波系数),支持3.3V MCU ARM 控制,可以方便的控制直流电机速度和方向,也可以控制2相步进电机, 5线4相步进电机,是智能小车必备利器。

TPYBoardv102——L298N电机驱动模块_第1张图片

PWM调速原理

PWM全称为“Pulse Width Modulation”。中文:脉冲宽度调制。脉冲宽度指的是 脉冲持续的时间,既高电平或低电平保持(持续)的时间。而PWM通俗的说就是人为的(通过微处理器)去控制电平高低保持的时间占空比:在一个脉冲的循环中,通电时间相对于总时间所占的比例

  • 在本图中高电平相对总时间所占的比例即为“占空比”:如75%、50%、20%
    TPYBoardv102——L298N电机驱动模块_第2张图片

直流电机接线

在STM32芯片中,因为需要通过定时器输出的PWM进行直流电机的调速控制,所以在L298N驱动模块的输入端口需要设置为有定时器的IO口,具体的定时器对应IO口参考TPYboard的PCB原理图:

L298N 直流电机(5-12V) TPYboard
IN1 X9(TIM4,CH1)
IN2 X10(TIM4,CH2)
IN3 Y7(TIM1,CH2)
IN4 Y8(TIM1,CH3)
OUT1 +
OUT2 -
OUT3 +
OUT4 -
5V VIN(5V)
12V 12V外接电源的正极
GND GND和外接电源的负极

PWM代码

手动调节代码的PWM值即可调速:

from pyb import Pin, Timer
#左轮
left1 = Pin('X9', Pin.OUT_PP)
left2 = Pin('X10', Pin.OUT_PP)
#左轮对应定时器
tim_left = Timer(4, freq=100) #要实现每秒0.1ms量级
left_go = tim_left.channel(1, Timer.PWM, pin=left1)
left_stop = tim_left.channel(2, Timer.PWM, pin=left2)

#右轮
right1 = Pin('Y7', Pin.OUT_PP)
right2 = Pin('Y8', Pin.OUT_PP)
#左轮对应定时器
tim_right = Timer(1, freq=100) #要实现每秒0.1ms量级
right_go = tim_left.channel(2, Timer.PWM, pin=right1)
right_stop = tim_left.channel(3, Timer.PWM, pin=right2)

while True:
    #左轮,可PWM调速
    left_go.pulse_width_percent(100) #0-100进行调速,100为全速,0为停止
    left_stop.pulse_width_percent(0) #默认为0,作为调速基准
    #右轮,可PWM调速
    right_go.pulse_width_percent(100) #0-100进行调速,100为全速,0为停止
    right_stop.pulse_width_percent(0) #默认为0,作为调速基准

如果读者按照博主的教程学会了传感器的使用,不要忘了点个赞哦~

你可能感兴趣的:(Micropython)