Das Raspberry Pi Motor Driver Board v1.0 ist ein Motortreiber, der auf dem Dual-H-Brücken-IC MC33932 von Freescale basiert und induktive Lasten bis zu 5,0 A pro Einzelbrücke steuern kann. Es ermöglicht Ihnen, zwei DC-Motoren mit einem Raspberry Pi B / B + / A + und Pi 2 Model B zu steuern und ihre Geschwindigkeit und Richtung unabhängig voneinander zu steuern.

 

Der Motorcontroller unterstützt einen sehr weiten Eingangsspannungsbereich von 6V ~ 28V. Darüber hinaus unterstützt der DC/DC-Wandler auf dem Board auch einen sehr weiten Eingangsspannungsbereich und versorgt den Raspberry Pi auch mit 5V bei einem maximalen Strom von 1000mA. Ein Netzteil reicht also aus, um sowohl die Motoren anzutreiben als auch den Raspberry Pi mit Strom zu versorgen.

kaufe jetzt

Charakteristisch

  • Ausgangskurzschlussschutz (VPWR oder GND)
  • Überstrombegrenzung (Regelung) durch internes PWM mit fester Ausschaltzeit
  • Reduzierung der temperaturabhängigen Stromgrenze
  • Kompatibel mit Raspberry Pi

Technische Spezifikationen

Charakteristisch Mindest Typisch max Einheit
Betriebsspannung 6 / 28 VDC
DC / DC-Ausgang / 5V / 1000mA /
Ausgangsstrom (für jeden Kanal) / 2 (Dauerbetrieb) 5 (Spitze) UND
PWM-Frequenz / / 11 kHz
Ausgangslastbereich 0 / 100 %
Logikeingangsspannung -0,3 / 7 v
Arbeitstemperatur -40 / 120 ° C
Maße 91 x 56,15 x 32 mm

Hardware-Übersicht

  • J1 : Eingangsanschluss.
  • J2 : Motortreiber-Ausgangsanschluss.
  • EN, FT : Jumper für EN-Steuerung und Fehlererkennung. Beim Kurzschließen des EN-Jumpers wird das EN-Signal auf Pin D4 abgebildet, Sie können den Ausgang der H-Brücke steuern oder den Fehler über Pin D4 zurücksetzen. Im Falle eines Kurzschlusses des FT-Jumpers wird das Fehlersignal auf den D3-Pin abgebildet, und der Fehler kann vom D3-Pin-Ether gelesen werden.
  • IO : Jumper zur Auswahl des logischen Spannungspegels.
  • Stromversorgung : Die Abschirmung wird von J1 (DC-Eingangsanschluss) mit Strom versorgt. Der Eingangsspannungsbereich kann auf 6 VDC ~ 28 VDC eingestellt werden. Der DC/DC-Wandler kann die DC-Eingangsspannung in eine 5-V-DC-Ausgangsspannung umwandeln, um Logikschaltungen mit Strom zu versorgen. Der DC/DC-Wandler kann auch das Mikrocontroller-Board (Arduino/Seeeduino) vom "5V"-Pin mit einem maximalen Strom von 100mA versorgen.
  • Motorschnittstelle : Out 1 und Out 2 (Out 3 und Out 4) verbinden Motor A (B) für DC-Motor.

Beachtung

Berühren Sie während des Betriebs nicht den H-Brücken-IC oder die Platine. Ihre Temperatur kann bei voller Beladung bis zu 100 Grad Celsius betragen.

Verwendungszweck

Diese Demo verwendet den Raspberry Pi B, um zu zeigen, wie das Raspberry Pi Motor Driver Board v1.0 verwendet werden kann, um einen Gleichstrommotor vorwärts und rückwärts zu steuern.

Hardware-Montage

  • Raspberry Pi B und Raspberry Pi Motortreiberplatine v1.0
  • Hardware-Montage wie im Bild gezeigt

An das Stromnetz und die Stromversorgung anschließen.

Software

 #! / usr / bin / python
RPi.GPIO als GPIO importieren
Importzeit
Signal importieren   

aus PiSoftPwm importieren *

#print 'Go_1 ...'
#Frequenz = 1.0 / self.sc_1.GetValue ()
#speed = self.sc_2.GetValue ()

Klasse Motor ():
    def __init __ (selbst):
    # MC33932-Stifte
        self.PWMA = 25  
        self.PWMB = 22
        selbst._IN1 = 23  
        self._IN2 = 24 
        selbst._IN3 = 17
        self._IN4 = 27

    # PWMA PWMB initialisieren 
        GPIO.setmode (GPIO.BCM)
        GPIO.setup (selbst.PWMA, GPIO.OUT)
        GPIO.setup (selbst.PWMB, GPIO.OUT)
        GPIO.output (selbst.PWMA, True)
        GPIO.output (self.PWMB, True)

    # PWM-Ausgänge initialisieren
        self.OUT_1 = PiSoftPwm (0.1, 100, self._IN1, GPIO.BCM)
        self.OUT_2 = PiSoftPwm (0.1, 100, self._IN2, GPIO.BCM)
        self.OUT_3 = PiSoftPwm (0.1, 100, self._IN3, GPIO.BCM)
        self.OUT_4 = PiSoftPwm (0.1, 100, self._IN4, GPIO.BCM)

        # PWM-Ausgabe schließen
        self.OUT_1.start (0)
        self.OUT_2.start (0)
        self.OUT_3.start (0)
        selbst.OUT_4.start (0)

        Eigenfrequenz = 0,01
        self.duty = 60

    def Einstellung (self, frequency, duty):
        self.frequency = Frequenz
        self.duty = Pflicht

    def Go_1 (selbst):
        self.OUT_1.changeBaseTime (selbst.Frequenz)
        self.OUT_2.changeBaseTime (selbst.Frequenz)
        self.OUT_1.changeNbSlicesOn (self.duty)
        self.OUT_2.changeNbSlicesOn (0)

    def Back_1 (selbst):
        self.OUT_1.changeBaseTime (selbst.Frequenz)
        self.OUT_2.changeBaseTime (selbst.Frequenz)
        self.OUT_1.changeNbSlicesOn (0)
        self.OUT_2.changeNbSlicesOn (self.duty)

    def Go_2 (selbst):
        self.OUT_3.changeBaseTime (selbst.Frequenz)
        self.OUT_4.changeBaseTime (selbst.Frequenz)
        self.OUT_3.changeNbSlicesOn (0)
        self.OUT_4.changeNbSlicesOn (self.duty)

    def Back_2 (selbst):
        self.OUT_3.changeBaseTime (selbst.Frequenz)
        self.OUT_4.changeBaseTime (selbst.Frequenz)
        self.OUT_3.changeNbSlicesOn (self.duty)
        self.OUT_4.changeNbSlicesOn (0)

    def Stop (selbst):
        self.OUT_1.changeNbSlicesOn (0)
        self.OUT_2.changeNbSlicesOn (0)
        self.OUT_3.changeNbSlicesOn (0)
        self.OUT_4.changeNbSlicesOn (0)

if __name __ == "__ main__":
    Motor = Motor ()
    # Wird bei Prozessunterbrechung aufgerufen. Stellen Sie alle Pins auf den Standardmodus "Input" ein.
    def endProcess (signalnum = None, handler = None):
        motor.OUT_1.stop ()
        motor.OUT_2.stop ()
        motor.OUT_3.stop ()
        motor.OUT_4.stop ()
        motor.GPIO.cleanup ()
        Ausgang (0)

    # Handler für den Prozessausgang vorbereiten
    signal.signal (signal.SIGTERM, endProcess)
    signal.signal (signal.SIGINT, endProcess)
    signal.signal (signal.SIGHUP, endProcess)
    signal.signal (signal.SIGQUIT, endProcess)

    Motor.Einstellung (0.01, 60)
    print 'Motorstart ...'
    während wahr:
        print 'Motor A dreht vorwärts ...'
        motor.Go_1 ()
        time.sleep (1)
        print 'Motor A dreht rückwärts ...'
        motor.Zurück_1 ()
        time.sleep (1)
        print 'Motor A stop ...'
        motor.Stopp ()
        time.sleep (1)
        print 'Motor B dreht vorwärts ...'
        motor.Go_2 ()
        time.sleep (1)
        print 'Motor B dreht rückwärts ...'
        motor.Zurück_2 ()
        time.sleep (1)
        print 'Motor B stop ...'
        motor.Stopp ()
        time.sleep (1)
  • Schalten Sie dieses Programm ein. LED1, LED2 auf dem Raspberry Pi Motor Driver Board v1.0 blinken abwechselnd; LED3, LED4 leuchten ebenfalls abwechselnd.

Das bedeutet, dass Out 1 und Out 2 (Out 3 und Out 4) Motor A (B) vorwärts und rückwärts verbinden.

  • Das Phänomen ist wie folgt:

Serielle Konsole:

Raspberry Pi Motor Driver Board v1.0: Die grüne LED und die blaue LED blinken abwechselnd.

Verknüpfungen

Wir freuen uns auf die Zusammenarbeit mit Ihnen!