Kart/DC motor controller
The DC motor is a Modelcraft RB350018-2A723R".
It is powered with 12 V and draws a maximal current of 0.7 A.
To begin with, the design environment has to be downloaded.
It comprises the
dcMotorController block which contains the provided I2C bus interface
and an empty
dcMotorPwm block which is to be designed.
The block receives a
speed signed number and has to drive the DC motor with a
pwm and a
These signals are sent to the daughterboard in order to drive an H-bridge.
The daughterboard logic drives the bridge's power transistors from the two signals.
The mean amplitude of the DC motor's voltage is controlled by Pulse Width Modulation (PWM).
forwards signal is derived from the sign of the
pwm signal is derived from the absolute value of
The PWM signal is implemented with the help of a free-running counter and a comparator. However:
- the power transistors cannot switch at too high frequencies
- there is a need for a dead time where all power transistors are open between the PWM transitions
Because of this, the PWM period is limited to a minimal value.
This is achieved with the help of an
en signal generated by a counter dividing the clock frequency.
The counter only increments when this
en signal is '1'.
The mechanical design can either lead the Kart to drive forwards or backwards when a positive voltage is applied to the DC motor.
In order to cope with this, a setup signal,
normalDirection, is provided to the block.
normalDirection being '1' means that a positive voltage applied to the DC motor lets the kart drive forwards.
The setup bit is configured in the hardware control register.
When the Bluetooth connection is lost, the DC motor should not turn.
In order to cope with this, a control signal,
btConnected, is provided to the block.
btConnecred is '0', the DC motor must stop.
The BT connection bit is configured in the hardware control register.