树莓派小车L298N驱动

0.1 树莓派GPIO定义

ref: https://www.raspberrypi.org/documentation/usage/gpio/

树莓派小车L298N驱动_第1张图片
raspi-gpio.png

0.2 L298N端口定义

raspi-l298n.png
名称 符号 备注
电源 VCC 驱动电源,接+5V~+35V
GND 接地
5V 逻辑控制电源,5V 注1
控制端 ENA、ENB 两路 注2
IN1IN2、IN3IN4 高电平有效,接树莓派
输出端 OUT1~OUT4 接电机

注1:当驱动电压过高时(>12V),逻辑控制电源单独接5V电源。 一般悬空即可。
注2:使能端直接跳线与5V连接。这个5V是驱动电源经过78M05模块输出的。

1. 接线

  • IN1 -> PIN 11 # 左前进
  • IN2 -> PIN 12 # 左后退
  • IN3 -> PIN 16 # 右前进
  • IN4 -> PIN 15 # 右后退

2. 程序

import RPi.GPIO as GPIO
import time

IN1 = 11  # IN1, 左前进 
IN2 = 12  # IN2, 左后退 
IN3 = 16  # IN3, 右前进 
IN4 = 15  # IN4, 右后退 

# GPIO.setwarnings(False)

def init():
    
    GPIO.setmode(GPIO.BOARD)
    GPIO.setup(IN1,GPIO.OUT)
    GPIO.setup(IN2,GPIO.OUT)
    GPIO.setup(IN3,GPIO.OUT)
    GPIO.setup(IN4,GPIO.OUT)

def forward(sleep_time):
    init()
    GPIO.output(IN1,GPIO.HIGH)
    GPIO.output(IN2,GPIO.LOW)
    GPIO.output(IN3,GPIO.HIGH)
    GPIO.output(IN4,GPIO.LOW)
    time.sleep(sleep_time)
    GPIO.cleanup()
 
def back(sleep_time):
    init()
    GPIO.output(IN1,GPIO.LOW)
    GPIO.output(IN2,GPIO.HIGH)
    GPIO.output(IN3,GPIO.LOW)
    GPIO.output(IN4,GPIO.HIGH)
    time.sleep(sleep_time)
    GPIO.cleanup()
 
def left(sleep_time):
    init()
    GPIO.output(IN1,False)
    GPIO.output(IN2,False)
    GPIO.output(IN3,GPIO.HIGH)
    GPIO.output(IN4,GPIO.LOW)
    time.sleep(sleep_time)
    GPIO.cleanup()
 
def right(sleep_time):
    init()
    GPIO.output(IN1,GPIO.HIGH)
    GPIO.output(IN2,GPIO.LOW)
    GPIO.output(IN3,False)
    GPIO.output(IN4,False)
    time.sleep(sleep_time)
    GPIO.cleanup()

forward(1)

你可能感兴趣的:(树莓派小车L298N驱动)