This is the software application created with the Arduino IDE 1.8.3 to run the test platform.
This application is specific for the hardware building but can be easily modified to run with different kind of brushed motors and other inductive components.
The test platform has been created to manage interactively most (almost all) of the features and functions of the motor controller shield. This version uses 6 brushed geared micro motors running at 6V max (power is set to 5.5V).
The platform has a LCD display to interactively show the motor settings. Every single motor can be set separately or all together. The TLE94112LE shield motors are powered by a 5.5V regulated DC-DC small board while a potentiometer connected to the Arduino channel A0 is used to dynamically modify the PWM duty cycle.
Please note that the duty cycle configuration is related to the PWM even also the software permit setting different duty cycle values for every single motor it is not working due the limitation of the board. The duty cycle setting should be used selecting all the motors together. This issue will be updated in future versions.
This software is compatible with Arduino UNO R3, Genuino 101 and Arduino 101 but the best performances can be obtained with the Infineon XMC1100 Boot kit Arduino compatible board.
Excluding the potentiometer on the board all the controls are sent via terminal through a USB-to-serial connection. When the system is in running mode it can accept configuration commands that will be effective after a stop and start call.
If errors occur while the system is running these are shown in detail on the serial terminal and are notified on the LCD screen
The available commands are listed below:
- cw : clockwise rotation
- ccw : counterclockwise rotation
- accel : enable the acceleration when motor start
- noaccel : disable the acceleration when motor start
- start : start all motors
- stop : stop all motors
- reset : reset the system to the default
- dcmanual : Set the duty cycle value depending on the pot
- dcauto : Set the duty cycle current limits
- dcmin : Set the min duty cycle value via pot
- dcmax : Set the max duty cycle value via pot
- dcinfo : Shows the duty cycle range for the selected PWM channel
- dc80 : Set the duty cycle to the PWM channel 80Hz
- dc100 : Set the duty cycle to the PWM channel 100Hz
- dc200 : Set the duty cycle to the PWM channel 200Hz
- dcPWM : Set the duty cycle to all the PWM channels
- all : Select and enable all motors
- none : Disble all motors
- m1 : select motor 1
- m2 : select motor 2
- m3 : select motor 3
- m4 : select motor 4
- m5 : select motor 5
- m6 : select motor 6
- m1+ : enable motor 1
- m2+ : enable motor 2
- m3+ : enable motor 3
- m4+ : enable motor 4
- m5+ : enable motor 5
- m6+ : enable motor 6
Enabling motors does not change their status nor the enabling
- noPWM : No PWM
- 80 : PWM 80 Hz
- 100 : PWM 100 Hz
- 200 : PWM 200 Hz
- fwactive : Fereewheeling active
- fwpassive : Freewheeling passive
- conf : Dump the current settings
Below the default settings in the tables shown on the terminal after a conf command call.
Motor | Enabled | Active FW | Dir | PWM |
---|---|---|---|---|
M1 | No | Yes | CW | No |
M2 | No | Yes | CW | No |
M3 | No | Yes | CW | No |
M4 | No | Yes | CW | No |
M5 | No | Yes | CW | No |
M6 | No | Yes | CW | No |
PWM Chan | DC Min | DC Max | DC Man | Accel |
---|---|---|---|---|
80 Hz | 50 | 255 | No | No |
100 Hz | 50 | 255 | No | No |
200 Hz | 50 | 255 | No | No |