Email Address:

Lost your password?

This is the legacy website; please use the new website.

12V-24V High-Current DC Motor Speed Controller, Pt.1

This 12V or 24V high-current DC Motor Speed Controller is rated at up to 40A (continuous) and is suitable for heavy-duty motor applications. All control tasks are monitored by a microcontroller and as a result, the list of features is extensive.

Pt.1: By Mauro Grassi

This completely new speed controller is based on a PIC16F88 microcontroller. This micro provides all the fancy features such as battery monitoring, soft-start and speed regulation. It also monitors the speed setting potentiometer and drives a 4-digit display board which includes two pushbuttons.

Main Features

  • Good speed regulation under load

  • Automatic soft-start and fast switch-off

  • Eight memory settings

  • 4-digit 7-segment display

  • Variable frequency for pulse width modulation (PWM)

  • Battery level meter

  • Low-battery alarm

  • Persistent settings & defaults

  • Rated up to 40A continuous current

  • 12-24V DC input voltage

  • The 4-digit display board is optional but we strongly recommend that you build it, even if you only use it for the initial set-up. It unlocks the full features of the speed controller and allows all settings to be adjusted. The microcontroller will detect whether the display board is connected and if not, the speed controller will support only the basic functions. In this simple mode, it will function as a simple speed regulated controller with automatic soft-start and with the speed being directly controlled by a pot (VR1). All the other settings will be the initial defaults or as last set (with the display board connected).

    When connected, the 4-digit display allows you to monitor the speed and the input voltage (useful when running from a battery). It also enables you to navigate through the various menus to adjust the settings.

    The circuit can run from 12V or 24V batteries and can drive motors (or resistive loads) up to 40A. Furthermore, this is our first DC speed controller (except for out train controllers) incorporating speed regulation under load. In other words, a given motor speed is maintained, regardless of whether the motor is driving a heavy load or not.

    Monitoring the back-EMF

    In speed controllers which do not have good speed regulation (ie, the vast majority of designs), the more a motor is loaded, the more it slows down. In order to provide speed regulation, the circuit must monitor the back-EMF of the motor, since this parameter is directly proportional to its speed.

    As a result, our new speed controller monitors the back-EMF of the motor. "Back-EMF" is the voltage generated by any motor to oppose the current through the windings. EMF stands for "electromotive force" and is an obsolete term for voltage. Back-EMF is directly proportional to the motor speed and so by monitoring this parameter, we have a means of controlling and maintaining the motor speed.

    In practice, the main control loop of the microcontroller tries to match the speed of the motor (back-EMF) to the speed set by the pot or recalled from a preset memory. If the measured speed is lower than the set speed, the duty cycle of the pulse width modulation (PWM) signal used to drive the power Mosfets that control the motor is gradually increased. In other words, if the speed tends to drop, more power is fed to the motor and vice versa.

    The frequency of the pulse width modulation can be set from 488Hz to 7812Hz. This is a useful feature since different motors will have different frequency responses, as well as different resonant frequencies. This is important to reduce the audible buzzing from the pulse width modulation, as these frequencies are well within the range of hearing.

    By now you’re probably wondering how the microcontroller monitors the back-EMF of the motor, considering that the motor is continuously driven with pulse-width modulated DC. The answer is that the micro periodically turns off the PWM signal to the motor for just enough time for the back-EMF to stabilise. This "window" needs to be wide enough to ensure that we are measuring back-EMF and not the spike generated by the last PWM pulse. On the other hand, we don’t want the window so wide that the maximum power to the motor is significantly reduced or that the motor noticeably slows.

    The compromise value is that the motor is monitored for 200ms every 7.4ms (ie, about 135 times a second), as shown in the scope diagrams in this article. As a result, the fact that we do monitor the back-EMF around 135 times a second means that the power applied to the motor is slightly less than the theoretical maximum, although this effect is negligible.

    A low-battery alarm is also incorporated to warn when the battery level drops below a preset value. This is especially useful for applications like electric wheelchairs.

    There are also eight memory speed settings. All settings are persistent, meaning they are retained in non-volatile memory.

    Click for larger image
    Fig.1: the circuit uses PIC16F88 microcontroller IC1 to provide PWM drive to power-Mosfets Q5-Q8 which in turn control the motor. The microcontroller also monitors the back-EMF from the motor, to provide speed regulation. IC2 is a DC-DC switchmode converter and this provides a +5V rail to power IC1.

    Share this Article: 

    Privacy Policy  |  Advertise  |  Contact Us

    Copyright © 1996-2022 Silicon Chip Publications Pty Ltd All Rights Reserved