云天 发表于 2020-2-4 22:22:23

树莓派 3 + L298N模块控制直流电机

1、树莓派 3Pin引脚

二、硬件连接连接原理图:
三、程序
# -*- coding: utf-8 -*-               #通过声明可以在程序中书写中文
import RPi.GPIO as GPIO               #引入RPi.GPIO库函数命名为GPIO
import time                           #引入计时time函数
# BOARD编号方式,基于插座引脚编号
GPIO.setmode(GPIO.BOARD)                #将GPIO编程方式设置为BOARD模式
#接口定义
INT1 = 11                               #将L298 INT1口连接到树莓派Pin11
INT2 = 12                               #将L298 INT2口连接到树莓派Pin12
INT3 = 13                               #将L298 INT3口连接到树莓派Pin13
INT4 = 15                               #将L298 INT4口连接到树莓派Pin15
#输出模式
GPIO.setup(INT1,GPIO.OUT)
GPIO.setup(INT2,GPIO.OUT)
GPIO.setup(INT3,GPIO.OUT)
GPIO.setup(INT4,GPIO.OUT)
GPIO.output(INT1,GPIO.HIGH)
GPIO.output(INT2,GPIO.LOW)
GPIO.output(INT3,GPIO.HIGH)
GPIO.output(INT4,GPIO.LOW)
四、控制电机转速
单片机或树莓派一般使用L298n 模块来驱动电机 。L298N的实物图如下# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
INT1 = 20
INT2 = 21
INT3 = 23
INT4 = 24
ENA = 16
ENB = 18
GPIO.setup(INT1,GPIO.OUT)
GPIO.setup(INT2,GPIO.OUT)
GPIO.setup(INT3,GPIO.OUT)
GPIO.setup(INT4,GPIO.OUT)
GPIO.setup(ENA,GPIO.OUT)
GPIO.setup(ENB,GPIO.OUT)
pwma = GPIO.PWM(16,80)
pwmb = GPIO.PWM(18,80)
pwma.start(90)#dc为占空比 0-100
pwmb.start(90)
GPIO.output(INT1,GPIO.HIGH)
GPIO.output(INT2,GPIO.LOW)
GPIO.output(INT3,GPIO.LOW)
GPIO.output(INT4,GPIO.HIGH)
while 1:
      pwma.ChangeDutyCycle(90)# 单位 Hz 更改占空比0-100
      pwmb.ChangeDutyCycle(90)
      time.sleep(3)
      pwma.ChangeDutyCycle(50)
      pwmb.ChangeDutyCycle(50)
      time.sleep(3)

DFrJ5KYVQaH 发表于 2020-2-6 09:24:42

看到标题我就兴奋,好想自己弄一下

kylinpoet 发表于 2020-2-18 03:34:48

楼主强大,多谢分享。

gray6666 发表于 2021-3-31 16:08:01

树莓派充电宝供电,同时连接L298的5V输入,模块不会烧毁吗?
页: [1]
查看完整版本: 树莓派 3 + L298N模块控制直流电机