background image

Motor Driver HAT 

   

 

5

  / 

16

 

PWM 

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. 

It is very simply to use, to output PWM signal you only need to control corresponding 

registers value of chip. 

Refer the recommend circuit, LED0-LED5 are motor control pins. 

From Page6 to Page8 of datasheet: 

Summary of Contents for Motor Driver HAT

Page 1: ...RES 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 TB661...

Page 2: ...tor Driver HAT 2 16 SPECIFICATIONS Operating voltage 6V 12V VIN port Logic voltage 3 3V PWM controller PCA9685 Interface I2C Motor controller TBA6612FNG Dimension 65mm x 30mm Holes size 3 0mm INTERFAC...

Page 3: ...16 PIN Description 5V 5V 3V3 3 3V GND Ground SDA I2C Data SCL I2C Clock VIN Driver voltage for motor 6 12V A1 positive pole of motor A A2 negative pole of motor A B1 positive pole of motor B B2 negati...

Page 4: ...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 th...

Page 5: ...urces This module we use PCA9685 I2C bus controlled support 16 channel 12 bits PWM output The frequency range of PWM is 40Hz to 1000Hz It is very simply to use to output PWM signal you only need to co...

Page 6: ...ure the slave address If you weld a resistor or short it means 1 otherwise 0 The address range from 0x40 to 0x5F For example 1 A5 is 0 A0 A4 are disconnected don t weld so they are 0 as well The final...

Page 7: ...IN_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 directi...

Page 8: ...Motor Driver HAT 8 16 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...

Page 9: ...save i2c dev i2c bcm2708 DOWNLOAD DEMO CODE Demo code can be downloaded from Wiki https www waveshare com wiki Motor_Driver_HAT Extract on your PC and copy to Raspberry Pi LIBRARIES INSTALLATION Befo...

Page 10: ...M2835 PROJECT DIRECTORY AND FILES bin o files generated by makefile Makefile makefile is used to tell the compiler how to compile your project code motor executable file which you can execute to run t...

Page 11: ...Driver c h Drive code of TB6612FNG chip control two motors main c main function DEMO CODES 1 initialize BCM2835 libraries if DEV_ModuleInit exit 0 2 Initialize motor and PCA9685 Motor_Init 3 Control m...

Page 12: ...al generates when CTRL c is executed to stop process then Handler function will run In this function motors are stopped Motor_Stop MOTORA Motor_Stop MOTORB DEV_ModuleExit exit 0 USING Demo code you do...

Page 13: ...g 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 to generate it then execute command motor to run the dem...

Page 14: ...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 se...

Page 15: ...eed Parameter 1 output channel Parameter 2 Duty ratio range 0 100 4 Control level pwm setLevel self AIN1 1 Parameter 1 output channel Parameter 2 level 1 is high and 0 is low 5 Control motor Motor Mot...

Page 16: ...Motor Driver HAT 16 16 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...

Reviews: