首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用覆盆子和L289n激活电机

如何利用覆盆子和L289n激活电机
EN

Stack Overflow用户
提问于 2019-10-20 19:16:15
回答 1查看 273关注 0票数 0

我的覆盆子Pi3B+有点麻烦。首先,我想控制两个电机使用树莓Pi和L289n MotorDriver。我的主要问题是马达发动不了..。如果我用我的万用表,上面写着马达上没有电。不过,可能是密码,甚至是电路,我真的不知道。所以我决定问她,上传不仅我的代码,而且我的电路作为一张照片。也许你能帮我。

代码语言:javascript
复制
import time
import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)

#Motor 1
GPIO.setup(17, GPIO.OUT)
GPIO.setup(27,GPIO.OUT)
GPIO.output(17, 0)
GPIO.output(27, 0)


#Motor 2
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24,GPIO.OUT)
GPIO.output(23, 0)
GPIO.output(24, 0)

#Control Motor 1
GPIO.output(27, 1)
GPIO.output(17, 0)

#Control Motor 2
GPIO.output(23, 0)
GPIO.output(24, 1)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-20 19:22:35

您可以尝试以下方法:

代码语言:javascript
复制
import RPi.GPIO as GPIO
from time import sleep

in1 = 17
in2 = 27
en = 25
temp1 = 1

GPIO.setmode(GPIO.BCM)
GPIO.setup(in1, GPIO.OUT)
GPIO.setup(in2, GPIO.OUT)
GPIO.setup(en, GPIO.OUT)
GPIO.output(in1, GPIO.LOW)
GPIO.output(in2, GPIO.LOW)
p = GPIO.PWM(en, 1000)
p.start(25)
print("\n")
print("The default speed & direction of motor is LOW & Forward.....")
print("r-run s-stop f-forward b-backward l-low m-medium h-high e-exit")
print("\n")

while True:
    x = raw_input()
    if x == 'r':
        print("run")
        if (temp1 == 1):
            GPIO.output(in1, GPIO.HIGH)
            GPIO.output(in2, GPIO.LOW)
            print("forward")
            x = 'z'
        else:
            GPIO.output(in1, GPIO.LOW)
            GPIO.output(in2, GPIO.HIGH)
            print("backward")
            x = 'z'
    elif x == 's':
        print("stop")
        GPIO.output(in1, GPIO.LOW)
        GPIO.output(in2, GPIO.LOW)
        x = 'z'
    elif x == 'f':
        print("forward")
        GPIO.output(in1, GPIO.HIGH)
        GPIO.output(in2, GPIO.LOW)
        temp1 = 1
        x = 'z'
    elif x == 'b':
        print("backward")
        GPIO.output(in1, GPIO.LOW)
        GPIO.output(in2, GPIO.HIGH)
        temp1 = 0
        x = 'z'
    elif x == 'l':
        print("low")
        p.ChangeDutyCycle(25)
        x = 'z'
    elif x == 'm':
        print("medium")
        p.ChangeDutyCycle(50)
        x = 'z'
    elif x == 'h':
        print("high")
        p.ChangeDutyCycle(75)
        x = 'z'
    elif x == 'e':
        GPIO.cleanup()
        break
    else:
        print("<<<  wrong data  >>>")
        print("please enter the defined data to continue.....")

如果您仔细地查看代码,您可以很容易地理解工作。运行脚本。

您将收到一条关于电机的默认速度和方向的消息。后面跟着一个命令列表,您必须使用这些命令来控制电机。下面给出了这些命令。

  • R-运行(运行或启动马达)
  • 停止(停止马达)
  • 前进(以前进方向运行马达)-默认方向
  • B-向后(扭转旋转方向)
  • L-低(将速度降低到25%) -默认速度
  • M-介质(以50%的中速运行马达)
  • H-高(将速度提高到75% )
  • 电子出口(停止马达和退出Python)

源- 树莓Pi L298N接口教程

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58476433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档