如何使用Raspberry和L289n激活电动机

时间:2019-10-20 19:16:15

标签: python raspberry-pi

我的Raspberry Pi3B +遇到了一些麻烦。首先,我想使用Raspberry Pi和L289n MotorDriver控制2个电机。我的主要问题是电动机无法启动... 如果使用万用表,则说明电动机上没有电。但是,我可能不知道这可能是代码,甚至是电路。 所以我决定问她,不仅上传我的代码,而且上传我的电路作为图片。也许你可以帮我。

extern int absolute(int);

1 个答案:

答案 0 :(得分:1)

您可以尝试以下操作:


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 –运行(运行或启动电动机)
  • s –停止(以停止电动机)
  • f –前进(以正向运行电动机)–默认方向
  • b –向后(以反转旋转方向)
  • l –低(将速度降低到25%)–默认速度
  • m –中(以50%的中速运行电动机)
  • h –高(将速度提高到75%的水平)
  • e –退出(停止电动机并退出Python)

来源-Raspberry Pi L298N Interface Tutorial