Placa Controladora de Motor para Raspberry Pi v1.0

A Placa Controladora de Motor para Raspberry Pi v1.0 é baseada no CI de potência H-Bridge duplo Freescale MC33932, que pode controlar cargas indutivas com correntes de até 5,0A de pico por ponte. Ela permite controlar dois motores CC com sua Raspberry Pi B/B+/A+ e Pi 2 Model B, controlando a velocidade e a direção de cada um de forma independente.
A Placa Controladora de Motor para Raspberry Pi v1.0 suporta uma faixa muito ampla de tensão de entrada de 6V~28V. Além disso, o conversor DC/DC onboard suporta uma faixa muito ampla de tensão de entrada e pode fornecer uma alimentação de 5V para a Raspberry Pi com corrente máxima de 1000mA. Assim, você só precisa de uma fonte de alimentação para acionar os motores e energizar a Raspberry Pi.
Recursos
- Proteção de curto-circuito na saída (curto para VPWR ou GND)
- Limitação de sobrecorrente (regulação) via PWM interno de tempo-desligado constante
- Redução dependente da temperatura do limite de corrente
- Compatível com Raspberry Pi 3B/3B+/4
Especificações
Item | Mín | Típico | Máx | Unidade |
|---|---|---|---|---|
Tensão de Operação | 6 | / | 28 | VDC |
Saída DC/DC: | / | 5V/1000mA | / | |
Corrente de Saída (Para Cada Canal) | / | 2 (operação contínua) | 5 (pico) | A |
Frequência PWM | / | / | 11 | kHz |
Faixa de Duty Cycle de Saída | 0 | / | 100 | % |
Tensão de Entrada Lógica | -0.3 | / | 7 | V |
Temperatura de Operação | -40 | / | 120 | ℃ |
Dimensões | 91.20 56.15 32 | mm | ||
Visão Geral de Hardware

- J1: Conector de Entrada DC.
- J2: Conector de saída do Driver de Motor.
- EN,FT: Jumpers para controle de EN e detecção de sinal de falha (Fault). Se o jumper EN estiver em curto, o sinal EN será mapeado para o pino D4; você pode controlar a desativação da saída da ponte H ou resetar o sinal de falha pelo pino D4. Se o jumper FT estiver em curto, o sinal de falha será mapeado para o pino D3; você também pode ler o sinal de falha a partir do pino D3.
- IO: Jumper de Seleção do Nível de Tensão Lógica. Você pode escolher o nível de tensão de lógica de controle por meio deste jumper.
- Fonte de Alimentação: Você deve energizar o shield a partir de J1 (conector de entrada DC). A faixa de tensão de entrada pode ser ajustada entre 6Vdc ~ 28Vdc. O conversor DC/DC onboard pode converter a tensão DC de entrada em tensão de saída de 5Vdc para alimentar o circuito lógico. O conversor DC/DC também pode energizar a placa microcontroladora (Arduino/Seeeduino) a partir do pino "5V" com corrente máxima de 100mA.
- Interface do Motor:Out 1 e Out 2 (Out 3 e Out 4) conectam o Motor A(B) para motor DC.
Não toque no CI da ponte H ou na placa de PCB durante o funcionamento. Sua temperatura pode alcançar até 100 graus no caso de operação em plena carga.
Uso
Este demo usa um Raspberry Pi B para mostrar que a Placa Controladora de Motor para Raspberry Pi v1.0 pode ser usada para controlar o motor DC para frente e para trás.
Instalação de Hardware
- Raspberry Pi B & Placa Controladora de Motor para Raspberry Pi v1.0
- Conexão de hardware conforme mostrado
Conecte à rede e à alimentação.

Parte de Software
- Baixe Motor_Driver.py e PiSoftPwn.py para a mesma pasta. Aqui está o código de Motor_Driver.py.
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
import signal
from PiSoftPwm import *
#print 'Go_1...'
#frequency = 1.0 / self.sc_1.GetValue()
#speed = self.sc_2.GetValue()
class Motor():
def __init__(self):
# MC33932 pins
self.PWMA = 25
self.PWMB = 22
self._IN1 = 23
self._IN2 = 24
self._IN3 = 17
self._IN4 = 27
# Initialize PWMA PWMB
GPIO.setmode(GPIO.BCM)
GPIO.setup(self.PWMA, GPIO.OUT)
GPIO.setup(self.PWMB, GPIO.OUT)
GPIO.output(self.PWMA, True)
GPIO.output(self.PWMB, True)
# Initialize PWM outputs
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)
# Close pwm output
self.OUT_1.start(0)
self.OUT_2.start(0)
self.OUT_3.start(0)
self.OUT_4.start(0)
self.frequency = 0.01
self.duty = 60
def Setting(self, frequency, duty):
self.frequency = frequency
self.duty = duty
def Go_1(self):
self.OUT_1.changeBaseTime(self.frequency)
self.OUT_2.changeBaseTime(self.frequency)
self.OUT_1.changeNbSlicesOn(self.duty)
self.OUT_2.changeNbSlicesOn(0)
def Back_1(self):
self.OUT_1.changeBaseTime(self.frequency)
self.OUT_2.changeBaseTime(self.frequency)
self.OUT_1.changeNbSlicesOn(0)
self.OUT_2.changeNbSlicesOn(self.duty)
def Go_2(self):
self.OUT_3.changeBaseTime(self.frequency)
self.OUT_4.changeBaseTime(self.frequency)
self.OUT_3.changeNbSlicesOn(0)
self.OUT_4.changeNbSlicesOn(self.duty)
def Back_2(self):
self.OUT_3.changeBaseTime(self.frequency)
self.OUT_4.changeBaseTime(self.frequency)
self.OUT_3.changeNbSlicesOn(self.duty)
self.OUT_4.changeNbSlicesOn(0)
def Stop(self):
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()
# Called on process interruption. Set all pins to "Input" default mode.
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()
exit(0)
# Prepare handlers for process exit
signal.signal(signal.SIGTERM, endProcess)
signal.signal(signal.SIGINT, endProcess)
signal.signal(signal.SIGHUP, endProcess)
signal.signal (signal.SIGQUIT, endProcess)
motor.Setting(0.01, 60)
print 'motor start...'
while True:
print 'motor A turning forward...'
motor.Go_1()
time.sleep(1)
print 'motor A turning backward...'
motor.Back_1()
time.sleep(1)
print 'motor A stop...'
motor.Stop()
time.sleep(1)
print 'motor B turning forward...'
motor.Go_2()
time.sleep(1)
print 'motor B turning backward...'
motor.Back_2()
time.sleep(1)
print 'motor B stop...'
motor.Stop()
time.sleep(1)
- Execute este programa. Os LEDs 1 e 2 na Placa Controladora de Motor para Raspberry Pi v1.0 acenderão alternadamente; os LEDs 3 e 4 também acenderão alternadamente.
Isso significa que Out 1 e Out 2 (Out 3 e Out 4) conectam o Motor A(B) para frente e para trás.
- Você pode ver o fenômeno a seguir:
Console serial:

Placa Controladora de Motor para Raspberry Pi v1.0: LED verde e LED azul acendem alternadamente.

Visualizador Online de Esquemático
Recursos
- Arquivo Eagle Raspberry Pi Motor Driver Board v1.0
- PDF Raspberry Pi Motor Driver Board v1.0
- MC33932VW Datasheet
- TD1519A Datasheet
Suporte Técnico & Discussão de Produto
Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.
