Motor Control Shield For Arduino

About the project

Are you looking for a board, that can be used to control strong DC motors as well as highspeed brushless motors? Here you've found it.

Project info

Difficulty: Easy

Platforms: ArduinoInfineon

Estimated time: 1 hour

License: MIT license (MIT)

Items used in this project

Hardware components

Infineon BLDC Shield IFX007T Infineon BLDC Shield IFX007T x 1
Arduino UNO Arduino UNO x 1

Software apps and online services

Arduino IDE Arduino IDE

Story

If you already realized a project with a brushless motor (so called BLDC) you may have wondered about the "magic box", the brushless controller you always have to plug to your motor. Because the motor has three wires, your battery only two - mhm, obviously this doesn't mach. And as much combinations you try to attach your wires, nothing would happen apart from having one brushless motor less and smoke coming out of your battery (so just don't try it). Here I will show you such a BLDC controller shield for Arduino by Infineon, which you can use for normal DC motors as well.

1. Usage

To give you an overview, what you can do with this board, regard the following table:

Possible applications

Possible applications

Possible applications

Half bridge Mode

One IFX007T is a Half bridge. As there are three IFX007T on the board, you can control up to three DC motors with independent speed, but only in one direction. The second pin of each motor therefore must be tied to ground.

driving three motors unidirectional

driving three motors unidirectional

driving three motors unidirectional

H-bridge mode

If you combine two Half bridges, you get an H-bridge. The name derives from the schematics, if you would realize it with four switches, because it then forms an 'H'. Now you have the possibility to plug a motor with one wire to the output U, the other one to V and control the motor in both directions with variable speed. As you have one Half bridge left (channel W), you can attach another motor there with one wire, the second wire to ground and you can control this motor as well with independent speed, but only in one direction.

Due to a new feature in V1.1.0 of the lib, you can also drive two DC motors independent in both directions by using the middle 'V' connector as a common supply for both motors.

driving one motor bidirectional

driving one motor bidirectional

driving one motor bidirectional

BLDC mode(BEMF)

Quite nice so far, but the main feature is the application as a BLDC (Brushless DC motor) controller. Simply attach the three wires of our BLDC with the three outputs of the shield. The order doesn't really matter, it would only change the initial direction of rotation. The Arduino library supports BEMF-mode, this means a sensor less application, where you don't need a hall-sensor for position feedback. BEMF means Back Electromotive Force and is explained more detailed in the Readme of the BLDC-example sketch.

driving a BLDC motor - ramping up the speed

driving a BLDC motor - ramping up the speed

driving a BLDC motor - ramping up the speed

Hall-sensor mode

Hall-sensor BLDC motors are supported as well. These have more wires (usually three for the motor and five for the sensors), are more expensive but in exchange much more accurate than sensor less BLDC motors. You can even choose if you want to drive a hall-sensor BLDCM in "normal mode" or "field weakening range". The latter means double speed but less torque to the motor.

Terminals U,V,W to connect the different motors

Terminals U,V,W to connect the different motors

Terminals U,V,W to connect the different motors

2. Software

Once you've set up your motor-to-shield wiring and attached a voltage source suited to your motor (maximum 24V), stack the BLDC shield on your Arduino UNO and download the Infineon IFX007T-motor-control-shield library. For each use case you will find an example sketch in the examples folder.

Last but not least: For brushless motor applications, you often have to know the amount of magnetic pole pairs used in your motor. Therefore you find an Arduino sketch called "BLDC_Find_Polepairs", that tells you everything about your motor, even when you don't have a datasheet available.

Check out the repository as well for information about compatibility with other boards like the Infineon XMC series.

3. Online Simulation

Not sure if this board fits your application? We offer an online simulation with tourque simulation for:

- one unidirectional motor (half bridge) -> click HERE!
- one bidirectional motor (full bridge) -> click HERE!

online simulation

online simulation

online simulation


Code

Github Repository

Install the library by downloading the Software in this repo or install it directly via the Arduino library manager (type "IFX007" in the search bar)

Download

Credits

Photo of Infineon Technologies

Infineon Technologies

Our semiconductor and system solutions contribute to a better future – making our world easier, safer and greener.

   

Leave your feedback...