Download Print this page

Advertisement

Quick Links

Motor Driver HAT
OVERVIE
This module is a motor driver board for Raspberry Pi. Use I2C interface, could be used
for Robot applications.
FEATURES
Compatible with Raspberry Pi
I2C interface. Slave address hardware configurable makes your pi able to connect
32 motors at the same time
Integrate PCA9685, supports 12bits PWM output
Integrate TB6612FNG, high performance
Integrate 5V regulator, output current up to 3A.
Pins out I2C interface, could connect to other development board
Come with sample codes and user manual
1 / 16
Motor Driver HAT
User Manual

Advertisement

loading

Summary of Contents for Waveshare Motor Driver HAT

  • Page 1 Motor Driver HAT Motor Driver HAT User Manual OVERVIE This module is a motor driver board for Raspberry Pi. Use I2C interface, could be used for Robot applications. FEATURES Compatible with Raspberry Pi ⚫ I2C interface. Slave address hardware configurable makes your pi able to connect ⚫...
  • Page 2: Specifications

    Motor Driver HAT SPECIFICATIONS Operating voltage: 6V~12V (VIN port) Logic voltage: 3.3V PWM controller: PCA9685 Interface: Motor controller: TBA6612FNG Dimension: 65mm x 30mm Holes size: 3.0mm INTERFACES 2 / 16...
  • Page 3 Motor Driver HAT Description 3.3V Ground I2C Data I2C Clock Driver voltage for motor(6-12V) positive pole of motor A negative pole of motor A positive pole of motor B negative pole of motor B 3 / 16...
  • Page 4 Motor Driver HAT HARDWARES The module includes three part in hardware: Power, PWM and Motor driver POWER MP1854 regulator is used to convert the input voltage (VIN_USER), has wide 4.5V to 28V input range, could provide 3A output. Even the chip supports 28V input, however, VIN_USER is also the power supply for motor, so the actual working voltage of this module is 6-12V.
  • Page 5 Motor Driver HAT Raspberry Pi only has one hardware PWM pin (GPIO.1), and the software PWM of WiringPi and Python will cost CPU resources. This module, we use PCA9685, I2C bus controlled, support 16-channel 12-bits PWM output. The frequency range of PWM is 40Hz to 1000Hz.
  • Page 6 The slave address of I2C bus is 7-bits, highest is fixed 1. A5-A0 are hardware selectable. This Motor Driver HAT, A5 is connected to ground (0) by default, you can change resistors of A0-A4 to configure the slave address. If you weld a resistor or short it, means 1, otherwise 0.
  • Page 7: Motor Driver

    Motor Driver HAT MOTOR DRIVER TB6612FNG is a driver IC for DC motor with high performance. VIN_USER is input voltage, in theory, motor speed up if this voltage is increased. Recommend input voltage is 6~12V PWMA and PWMB control speed of motors, AIN1 and AIN2, BIN1 and BIN2 control rotate direction of motors.
  • Page 8 Motor Driver HAT HOW TO USE ENABLE I2C INTERFACE To works with Raspberry Pi, you should first enable I2C interface as below: sudo raspi-config Then choose Interfacing Options -> I2C -> Yes 8 / 16...
  • Page 9: Libraries Installation

    Motor Driver HAT 【Note】If you get errors information after running demo code, please modify the modules file as below: sudo nano /etc/mdoules Append these statements to the end and save: i2c-dev i2c-bcm2708 DOWNLOAD DEMO CODE Demo code can be downloaded from Wiki: https://www.waveshare.com/wiki/Motor_Driver_HAT...
  • Page 10 Motor Driver HAT CODE ANALYSIS We provide three demo codes for Raspberry Pi, which are based on BCM2835, WiringPi and python libraries separately. BCM2835 PROJECT DIRECTORY AND FILES /bin: .o files generated by makefile Makefile: makefile is used to tell the compiler how to compile your project/code.
  • Page 11: Demo Codes

    Motor Driver HAT DEV_Config.c(h): Defines PINS used and communication type, different between BCM2835 and WiringPi. PCA9685.c(h): Drive code of PCA9685 chip. Could output 16-channel PWM signal via I2C interface MotorDriver.c(.h): Drive code of TB6612FNG chip, control two motors. main.c: main function DEMO CODES 1.
  • Page 12 Motor Driver HAT This project has Exception Handling. Generally, motor keeps moving even you stop project. value of control register doesn’t be clean even you use CTRL+c to stop code. signal(SIGINT, Handler); single is signal handling function of linux system. SIGINT signal generates when CTRL+c is executed to stop process, then Handler() function will run.
  • Page 13 Motor Driver HAT WIRINGPI PROJECT DIRECTORY AND FILES The files on WiringPi project directory are similar to BCM2835. Their only difference are: DEV_Config.c(h): functions called are different Makefile: linker is different. USING Demo code you download has no executable file moto, you need to run make generate it then execute command ./motor to run the demo code.
  • Page 14 Motor Driver HAT PYTHON PROJECT DIRECTORY AND FILES PCA9685.py is driver code, use I2C interface to output 16-channle PWM signals. mian.py: Motor driver code DEMO CODE 1. Instantiate PCA9685 library pwm = PCA9685(0x40, debug=True) Parameter 1: slave address of PCA9685, hardware configurable Parameter 2: enable/disable debug information pwm.setPWMFreq(50)
  • Page 15 Motor Driver HAT self.PWMB = 5 self.BIN1 = 3 self.BIN2 = 4 Motor = MotorDriver() Output PWM to channel 0~5 3. Control PWM pwm.setDutycycle(self.PWMA, speed) Parameter 1: output channel Parameter 2: Duty ratio, range 0~100 4. Control level pwm.setLevel(self.AIN1, 1)
  • Page 16 Motor Driver HAT MORE You can also control it via Bluetooth or WiFi. About how to use you can refer to Servo Driver HAT: https://www.waveshare.com/w/upload/1/1b/Servo_Driver_HAT_User_Manual_EN.pdf 16 / 16...