【L298N驱动模块学习笔记】--openmv驱动

做小车常用的L298N驱动模块驱动直流电机介绍

模块总体图:
【L298N驱动模块学习笔记】--openmv驱动_第1张图片

输出A 输出B 分别接两个直流电机。

  1. 不使用PWM的话只需要改变IN1,IN2,IN3,IN4。若使用PWM则要拔掉使能跳帽并输入PWM信号
  2. 12V供电,这个是外部电源为驱动板供电的接口,一般驱动电压实际可以接受的输入范围是7~12V,此时可以使能板载的5V逻辑供电。当使用大于12V的驱动电压时,为了避免稳压芯片损坏,首先要拔掉板载5V输出使能的跳线帽,然后在5V输出端口外部接入5V电压对L298N内部逻辑供电。
  3. 5V供电 (引出5V电压接到单片机,给单片机供电)同时单片机也要引出一条GND线,连接到L298N的GND与外部电源共地
  4. ENA ENB通道A使能,通道B使能,当你不用PWM时不需要拔掉跳线帽,当你需要PWM时,将需要拔掉跳线帽
  5. IN1 IN2 IN3 IN4逻辑输出口,其中IN1 IN2 控制一个电机的转动,IN3 IN4 控制另一个电机的转动,只要一个置高
    一个置低,就可以让电机转动起来。改变PWM占空比来改变转速
    具体信号图:

【L298N驱动模块学习笔记】--openmv驱动_第2张图片

现在尝试用OpenMV来连接这个东西。

需要用到openMV的pwm IO口和拉高拉低操作
需要6个端口,P0-P3和P7-8(pwm) P9也行。

接线方式:
1. P0-P3连接逻辑输入口
2. PWM的P7-9选两个连接通道使能AB

OPENMV测试代码:

main.py ()

 Untitled - By: Acer - 周日 9月 16 2018
  from pyb import Pin, Timer
  import time,math,random
inverse_left=False  #change it to True to inverse left wheel
inverse_right=False #change it to True to inverse right wheel
 
ain1 =  Pin('P0', Pin.OUT_PP)#a电机引脚
ain2 =  Pin('P1', Pin.OUT_PP)#
bin1 =  Pin('P2', Pin.OUT_PP)#电机引脚
bin2 =  Pin('P3', Pin.OUT_PP)
ain1.low()#低电平初始化
ain2.low()
bin1.low()
bin2.low()
 
pwma = Pin('P7')#产生PWMd引脚
pwmb = Pin('P8')#产生PWM
tim = Timer(4, freq=1000)
ch1 = tim.channel(1, Timer.PWM, pin=pwma)
ch2 = tim.channel(2, Timer.PWM, pin=pwmb)
ch1.pulse_width_percent(0)#设置占空比为零
ch2.pulse_width_percent(0)
 
speed=50
lowspeed=30
 
x_range=20
h_range=50
 

def run(left_speed, right_speed):
    if inverse_left==True:
        left_speed=(-left_speed)
    if inverse_right==True:
        right_speed=(-right_speed)
    if left_speed < 0:
        ain1.low()
        ain2.high()
    else:
        ain1.high()
        ain2.low()
    ch1.pulse_width_percent(abs(left_speed))
    if right_speed < 0:
        bin1.low()
        bin2.high()
    else:
        bin1.high()
        bin2.low()
    ch2.pulse_width_percent(abs(right_speed))
 
 
while(True):
    run(40,40)#测试前进,速度为40

博客源地址:http://blog.ohhh.xyz/index.php/archives/15/
**

拓展:追小球的小车----OPENMV

**

你可能感兴趣的:(单片机,笔记,单片机)