为什么当我仅激活b电机(或仅激活a)时H桥仍持续燃烧

时间:2019-01-19 09:25:49

标签: python raspberry-pi gpio

我试图用gpio销子用4个电机和覆盆子制造一个很小的遥控车,但是只有当我将所有电机都设置为旋转时,当我只设置一个电机将其炸毁时,它才能工作

我的构建:https://i.imgur.com/4mza4fQ.png

当我按我的key.up来激活所有它们时,我试图使用两个h桥仅将A侧与A侧同时使用,将A侧与另一侧仅使用A侧。但是,当我向右或向左按下键时,电机转动了几秒钟,然后停止,但H桥上的LED仍保持正常照明,但我认为是因为12v。

    import RPi.GPIO as GPIO
import time
import json
from flask import Flask
from flask import request
import sys
app = Flask(__name__)
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)

MotorgauchePlus = 16
MotorgaucheMoin = 18
MotordroitePlus = 22
MotordroiteMoin = 24


GPIO.setup(MotorgauchePlus,GPIO.OUT)
GPIO.setup(MotorgaucheMoin,GPIO.OUT)
GPIO.setup(MotordroiteMoin,GPIO.OUT)
GPIO.setup(MotordroitePlus,GPIO.OUT)

def Avant():
    print ("Going forwards")
    GPIO.output(MotorgauchePlus,GPIO.HIGH)//IT WORK
    GPIO.output(MotorgaucheMoin,GPIO.LOW)
    GPIO.output(MotordroitePlus,GPIO.HIGH)
    GPIO.output(MotordroiteMoin,GPIO.LOW)


def Arriere():
    print ("Going backwards")
    GPIO.output(MotorgauchePlus,GPIO.LOW)//IT WORK
    GPIO.output(MotorgaucheMoin,GPIO.HIGH)
    GPIO.output(MotordroitePlus,GPIO.LOW)
    GPIO.output(MotordroiteMoin,GPIO.HIGH)
def Gauche():
    print ("Left")
    GPIO.output(MotorgauchePlus,GPIO.LOW)//ai caramba
    GPIO.output(MotorgaucheMoin,GPIO.HIGH)
    GPIO.output(MotordroitePlus,GPIO.LOW)
    GPIO.output(MotordroiteMoin,GPIO.LOW)
def Droite():
    print ("Right")
    GPIO.output(MotorgauchePlus,GPIO.LOW)//same
    GPIO.output(MotorgaucheMoin,GPIO.LOW)
    GPIO.output(MotordroitePlus,GPIO.HIGH)
    GPIO.output(MotordroiteMoin,GPIO.LOW)

def Stop():
    GPIO.output(MotorgauchePlus,GPIO.LOW)//That work
    GPIO.output(MotorgaucheMoin,GPIO.LOW)
    GPIO.output(MotordroitePlus,GPIO.LOW)
    GPIO.output(MotordroiteMoin,GPIO.LOW)

@app.route('/', methods=['POST'])
def AvanOuArriere():
    Alors = request.form['Alors']
    if Alors == "Quite":
        GPIO.output(MotorgauchePlus,GPIO.LOW)
        GPIO.output(MotorgaucheMoin,GPIO.LOW)
        GPIO.output(MotordroitePlus,GPIO.LOW)
        GPIO.output(MotordroiteMoin,GPIO.LOW)
        GPIO.cleanup()
        sys.exit()
        return("oklm")
    elif Alors == "Avant":
        Avant()
    elif Alors == "Gauche":
        Gauche()
    elif Alors == "Droite":
        Droite()
    elif Alors == "Arriere":
        Arriere()
    elif Alors == "Stop":
        Stop()
    else:
        pass
    return("oklm")
try:
    if __name__ == "__main__":
        app.run(host='0.0.0.0', port=5000)
except Exception as e:
    print(e)
    GPIO.output(MotorgauchePlus,GPIO.LOW)
    GPIO.output(MotorgaucheMoin,GPIO.LOW)
    GPIO.output(MotordroitePlus,GPIO.LOW)
    GPIO.output(MotordroiteMoin,GPIO.LOW)
    GPIO.cleanup()

我完全迷失了方向,因为要启动电动机,我只需要将一个引脚设置为高电平,将另一个引脚设置为低电平,这就是我为激活所有引脚所做的事情,它可以正常工作! 也许是因为我将MotordroitePlus设置为LOW,而MotordroiteMoin也设置为LOW,但它在Stop功能中也起作用,并且它也像它那样工作,因此我需要您的帮助,因为我缺少了一些东西。

0 个答案:

没有答案