【L298N驱动模块学习笔记】--openmv驱动
做小车常用的L298N驱动模块驱动直流电机介绍
模块总体图:
输出A 输出B 分别接两个直流电机。
- 不使用PWM的话只需要改变IN1,IN2,IN3,IN4。若使用PWM则要拔掉使能跳帽并输入PWM信号
- 12V供电,这个是外部电源为驱动板供电的接口,一般驱动电压实际可以接受的输入范围是7~12V,此时可以使能板载的5V逻辑供电。当使用大于12V的驱动电压时,为了避免稳压芯片损坏,首先要拔掉板载5V输出使能的跳线帽,然后在5V输出端口外部接入5V电压对L298N内部逻辑供电。
- 5V供电 (引出5V电压接到单片机,给单片机供电)同时单片机也要引出一条GND线,连接到L298N的GND与外部电源共地。
- ENA ENB通道A使能,通道B使能,当你不用PWM时不需要拔掉跳线帽,当你需要PWM时,将需要拔掉跳线帽。
- IN1 IN2 IN3 IN4逻辑输出口,其中IN1 IN2 控制一个电机的转动,IN3 IN4 控制另一个电机的转动,只要一个置高 一个置低,就可以让电机转动起来。改变PWM占空比来改变转速 具体信号图:
现在尝试用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
博客源地址: **
**
