以前曾用L298N改进板驱动直流电机,文章链接:https://www.shumeijiang.com/2020/05/04/直流电机驱动变速实验.html;现在尝试L298N驱动板如何接线以及如何使用。
其中改进型和这个板子的明显区别在于,改进型将调速直接作用于高电平引脚输出即可;这个板子,在ENA和ENB上面作用;如果安装跳帽则表示固定速度,如果连接树莓派引脚,则可以通过PWM调速。
#接线示例
#代码示例
#!/usr/bin/env python
#coding:utf-8
'''
from JiuJiang
树莓酱的操作实例
https:://www.shumeijiang.com
'''
import RPi.GPIO as GPIO ##引入GPIO模块
import time ##引入time库
motorA1 = 17 ##定义电机A的IN1引脚
motorA2 = 18 ##定义电机A的IN2引脚
enA = 21 #引脚21接ENA,调速电机A
GPIO.setmode(GPIO.BCM) ##此处采用BCM编码
GPIO.setup(motorA1, GPIO.OUT) ##设置引脚为输出模式
GPIO.setup(motorA2, GPIO.OUT)
GPIO.setup(enA, GPIO.OUT)
#enA决定速度
pwm = GPIO.PWM(enA, 80)
pwm.start(70) ##初始化占空比 即单位时间高电平的时间占比
#设置正反方向
GPIO.output(motorA1, GPIO.HIGH) ##设置A1 引脚为高电平
GPIO.output(motorA2, GPIO.LOW) ##设置A2 引脚为低电平 如此可控制电机A正转,反之电机A反转
##通过一定时间间隔设置占空比,可见电机间隔一定时间后会发生速度变化 其中0则电机停止转动
try:
while True:
pwm.ChangeDutyCycle(30)
time.sleep(2)
pwm.ChangeDutyCycle(70)
time.sleep(2)
pwm.ChangeDutyCycle(0) ##电机停止转动
time.sleep(2) ##持续时间
except KeyboardInterrupt:
pass
pwm.stop()
GPIO.cleanup()
#视频效果: