Pular para o conteúdo principal

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.
cuidado

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

  1. 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)

  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.

  1. 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

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.

Loading Comments...