A project that has been sitting with me for a while. I have tried some pre-made motorcontrollers on other projects, but none of them seemed to work the way I wanted (ESCs are not widely available for brushed DC motors). This home made motor controller is not perfect, no where near, but the fun part was learning along the way.
The motor controller consists of a “FlySky” 6 channel RC receiver which outputs 1-2ms wide servo pulses of 5 volts amplitude. Two of these signals are converted by the Atmega8 microcontroller to provide 0-100% PWM for the L293D chip to amplify. The controller can also reverse the motors, so the PWM is actually at 100% duty cycle at both endpoints of the RC throttle stick (1ms and 2ms pulses from Rx on board) and 0% duty cycle when throttle is in center position (1.5ms from Rx). 2 digital output pins from the Atmega8 tells the L293D chip which way the motor will spin.
When recording the video I was out of 9 volt batteries, so had to use external supply. That is why the car can just drive at my desk at the moment :)
This is the first sketch for the motor controller circuit. Later I have added caps to the 7805 voltage regulator, and decided I wanted a separate battery for the logic and the motor supply.
Here is a short movie of my car