In this post we are going to construct a circuit which can control the speed of 3 individual DC motors using 3 potentiometers wirelessly over a 2.4 GHz communication link.
The speed control for DC motors has enormous application in commercial,scientific and industrial sectors.
Even radio control toys like RC cars,RC helicopters and drones etc. has to control its speed of the DC motor so that the toys move as per users command.
The proposed project is a general purpose wireless DC motor speed control circuit which may be customized according to readers need.
This project can control only three DC motors that’s because of limited PWM pins available in Arduino boards. But,three DC motor controls might be enough for most of the small projects.
The project has a remote and receiver.
The remote consists of an Arduino, 3 potentiometers for controlling 3 individual motors independently at the receiver side.
A 2.4 GHz transceiver module which is the heart of the project connected at the remote and receiver which makes communication between two Arduinos possible.
At the receiver, we have 3 MOSFETs for driving three DC motors, an Arduino and a 2.4 GHz transceiver module.
The 2.4 GHz communication module is NRF24L01. Its pin configuration is illustrated below.
It works on SPI communication protocol. It can transmit data ranging from 250KBPS to 2 MBPS. It has 125 channels for communication. It has theoretical maximum range of 100 meters.
It works on the same band of your WI-FI.
Care must be taken while powering this NRF24L01 module as it works on 3.3 V and 5 V will kill the module.
Now let’s move on to remote controller circuit:
The Remote controller schematic:
The three 10K ohm potentiometers are connected to analog pins of arduino A0, A1 and A2.
The remote can be powered from a 9V battery by connecting via DC jack.
If you have any confusion regarding the wiring between Arduino and NRF24L01 module, please refer the table given beside the circuit.
Please download the library file here: https://github.com/nRF24/
Download Program for remote:
That concludes the remote controller circuit.
Now let’s see the receiver circuit.
The receiver schematic:
NOTE: The connection between NRF24L01 and Arduino is not shown in the above diagram; please connect NRF24L01 to Arduino as shown in the remoter controller circuit diagram.
The three MOSFETs are connected to PWM pins of Arduino board which are 6, 5 and 3. You can’t use non PWM pins for generating PWM signals in Arduino.
You may use any N-channel MOSFET whose gate threshold is less than 4 V. You must power the motors separately as per the motor’s voltage specification.
The Arduino board can be powered from 9V battery via the DC jack or from USB.
Download Program for receiver:
receiver
That concludes the receiver.
The potentiometer connected to A0 controls the motor at pin #3, the potentiometer connected to A1 controls the motor at pin #5 and the potentiometer connected to A2 controls the motor at pin #6 at the receiver.
The DC motors can be varied from full stop to maximum speed by rotating those10K ohm potentiometers.
Note 1:
if you are not using all the three motors for your project, please ground the unused potentiometer pins in the remote.
For example, if are using only one motor for your project; connect motor and MOSFET at pin #3 at receiver.
Connect the potentiometer to pin A0 and ground pins A1 and A2. Do nothing to pins PWM pins 5 and 6 at receiver side. Similarly ground only the A2 pinif you are using 2 motors.
Note 2:
You can connect the Arduino of either remote or receiver to computer and open the serial monitor; you can see some parameter such as the voltage level at analog pins, PWM level (0 to 255) and which motor is currently controlled.
If you have any quires regarding this project, please leave in the comment section, you may receive a quick reply.