Bootstrap

L298N引脚以及跳帽问题---树莓派4B+python开发

我最近采用树莓派4B开发,连接L298N对电机进行驱动,开始,我认为L298N上的三个跳帽都是没用的然后我直接拔了,然后我正常接线,IN1-4接4个通用的GPIO引脚,然后输出AB口接两个电机的(后来我尝试了,只要电压正常,是可以驱动四个电机的),12V电压接电源,GND接电源地线,然后5V接树莓派4B上的5V引脚,最后两个使能端给高电平。

测试用例:

import RPi.GPIO as GPIO
import time
 
#设置GPIO模式
GPIO.setmode(GPIO.BOARD)
 
#设置接口
IN1 = 11
IN2 = 12
IN3 = 13
IN4 = 15
 
#初始化接口
def init():
    GPIO.setup(IN1,GPIO.OUT)
    GPIO.setup(IN2,GPIO.OUT)
    GPIO.setup(IN3,GPIO.OUT)
    GPIO.setup(IN4,GPIO.OUT)
 
#前进
def forward(sleep_time):
    GPIO.output(IN1,GPIO.LOW)
    GPIO.output(IN2,GPIO.HIGH)
    GPIO.output(IN3,GPIO.HIGH)
    GPIO.output(IN4,GPIO.LOW)
    time.sleep(sleep_time)
    GPIO.cleanup()
 
#后退
def backward(sleep_time):
    GPIO.output(IN1,GPIO.HIGH)
    GPIO.output(IN2,GPIO.LOW)
    GPIO.output(IN3,GPIO.LOW)
    GPIO.output(IN4,GPIO.HIGH)
    time.sleep(sleep_time)
    GPIO.cleanup()
 
#左转
def turnleft(sleep_time):
    GPIO.output(IN1,GPIO.LOW)
    GPIO.output(IN2,GPIO.LOW)
    GPIO.output(IN3,GPIO.HIGH)
    GPIO.output(IN4,GPIO.LOW)
    time.sleep(sleep_time)
    GPIO.cleanup()
 
#右转
def turnright(sleep_time):
    GPIO.output(IN1,GPIO.LOW)
    GPIO.output(IN2,GPIO.HIGH)
    GPIO.output(IN3,GPIO.LOW)
    GPIO.output(IN4,GPIO.LOW)
    time.sleep(sleep_time)
    GPIO.cleanup()
 
init()
turnright(1)

就上面的过程而言,我开始是怎么想都没问题,但是我犯了以下错误:

第一,跳帽的去除,经过我查看大量的资料可知,使能a和使能b上的两个跳帽不去除时便相当于置于1使能状态,此时最好。由于我去除了这两个跳帽,导致我运行后的结果和真值表不同。

第二,树莓派的地线和L298N的GND要接,相对电压。没接的的结果就是,我直接将树莓派的5V电压接到L298N后只有一个轮子被驱动,但事实上如果此时电源给的电压足够,完全不需要接5V电压就可以驱动连个轮子。

总结一下,对于新学者而言,跳帽都可以不拔,记得相对电压的问题。

参考:

https://www.cnblogs.com/FBsharl/p/17215473.html

https://my.oschina.net/u/2340880/blog/5123429

https://blog.csdn.net/m0_47278454/article/details/117792924

https://blog.csdn.net/kallyshall/article/details/49982091

https://blog.csdn.net/weixin_41195886/article/details/128408743

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;