Skip to main content

Raspberry Pi Motor Driver Board v1.0

Raspberry Pi Motor Driver Board v1.0 está basado en el IC de potencia dual H-Bridge MC33932 de Freescale, que puede controlar cargas inductivas con corrientes de hasta 5.0A pico por puente individual. Te permite controlar dos motores DC con tu Raspberry Pi B/B+/A+ y Pi 2 Model B, controlando la velocidad y dirección de cada uno independientemente.

Raspberry Pi Motor Driver Board v1.0 soporta un rango muy amplio de voltaje de entrada de 6V~28V. Además, el convertidor DC/DC integrado soporta un rango muy amplio de voltaje de entrada, y puede proporcionar una fuente de alimentación de 5V para la Raspberry Pi con una corriente máxima de 1000mA. Por lo tanto, solo necesitas una fuente de alimentación para controlar los motores y alimentar la Raspberry Pi.

Características

  • Protección contra cortocircuito de salida (cortocircuito a VPWR o GND)
  • Limitación de sobrecorriente (regulación) mediante PWM interno de tiempo de apagado constante
  • Reducción del umbral de límite de corriente dependiente de la temperatura
  • Compatible con Raspberry Pi 3B/3B+/4

Especificaciones

Elemento

Mín

Típico

Máx

Unidad

Voltaje de Operación

6

/

28

VDC

Salida DC/DC:

/

5V/1000mA

/

Corriente de Salida (Para Cada Canal)

/

2 (operación continua)

5 (pico)

A

Frecuencia PWM

/

/

11

kHz

Rango de Ciclo de Trabajo de Salida

0

/

100

%

Voltaje de Entrada Lógica

-0.3

/

7

V

Temperatura de Operación

-40

/

120

Dimensiones

91.20 56.15 32

mm

Descripción General del Hardware

  • J1: Conector de entrada DC.
  • J2: Conector de salida del controlador de motor.
  • EN,FT: Puentes para control EN y detección de bandera de falla. Si cortocircuitas el puente EN, la señal EN se mapea al pin D4, puedes controlar la deshabilitación de salida del puente H o restablecer la bandera de falla mediante el pin D4. Si cortocircuitas el puente FT, la señal de bandera de falla se mapea al pin D3, también puedes leer la bandera de falla desde el pin D3.
  • IO: Puente selector de nivel de voltaje lógico. Puedes elegir el nivel de voltaje lógico de control desde este puente.
  • Fuente de Alimentación: Tienes que alimentar el shield desde J1 (conector de entrada DC). El rango de voltaje de entrada puede configurarse hasta 6Vdc ~ 28Vdc. El convertidor DC/DC a bordo puede convertir el voltaje de entrada DC a voltaje de salida de 5Vdc para alimentar el circuito lógico. El convertidor DC/DC también puede alimentar la placa del microcontrolador (Arduino/Seeeduino) desde el pin "5V" para un máximo de 100mA de corriente.
  • Interfaz del Motor: Out 1 y Out 2 (Out 3 y Out 4) conectan el Motor A(B) para motor DC.
caution

No toques el IC del puente H o la placa PCB durante el funcionamiento. Su temperatura puede alcanzar hasta 100 grados en el caso de operación a carga completa.

Uso

Esta demostración utiliza Raspberry Pi B para mostrar que la Placa Controladora de Motor Raspberry Pi v1.0 puede usarse para controlar el motor DC hacia adelante y hacia atrás.

Instalación del Hardware

  • Raspberry Pi B & Placa Controladora de Motor Raspberry Pi v1.0
  • Conexión del hardware como se muestra

Conectar a la red y alimentación.

Parte del Software

  1. Descarga Motor_Driver.py y PiSoftPwn.py en la misma carpeta. Aquí está el 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)

2.Ejecuta este programa. LED1, LED2 en Raspberry Pi Motor Driver Board v1.0 se encenderán alternativamente; LED3, LED4 también se encenderán alternativamente.

Esto significa que Out 1 y Out 2 (Out 3 y Out 4) conectan el Motor A(B) hacia adelante y hacia atrás.

3.Puedes ver el fenómeno como sigue:

Consola serie:

Raspberry Pi Motor Driver Board v1.0: LED verde y LED azul se encienden alternativamente.

Visor de Esquemas en Línea

Recursos

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...