In this project, we will learn how to control the speed and direction of a DC motor via I/O ports with PWM output capability, a L293D quad half-h drivers IC and 4D Workshop widgets.
In its simplest form, a DC motor has two wires which is connected to a power supply. Depend on whichever way current flows in the DC motor, this will determine the direction in which the motor will spin.
Motors are often used in conjunction with a motor driver to allow speed and direction control via a microcontroller. To fully explain the functionality of the motor driver, we will have a look at a screenshot of the datasheet below. (From Texas Instruments)
There are four input and output channels in the IC itself (1A, 1Y makes one channel). To drive a motor in forward and reverse we would require the use of two channels. You would use the #A pins to input signals from your microcontroller to the driver, while the #Y pins will output an amplified signal. The EN pins are used to open and close two channels at one time, and their main purpose is to stop any currents going to the motor completely. The EN pin in this project will be connected to a PWM enabled pin on the 4Duino to control the speed of the motor.
How it works
- 1 x DC motor rated between 4.5V – 12V (N20 Micro Metal Gear Motor used in this project)
- 1 x L293D IC
- Jumper cables
- AA batteries (about 4 – 6 will be sufficient)
- Battery holder
- Micro USB cable
- µSD card
Step 1: Build
Build the circuit as shown in the following diagram and schematic.
Workshop 4 – 4Duino Basic Graphics environment is used to program this project.
This project requires the Arduino IDE to be installed, as Workshop calls the Arduino IDE for compiling the Arduino sketches. The Arduino IDE, however is not required to be opened or modified to program the 4Duino.
Open this file using Workshop 4.
Note: Download the code here.
Connect the 4Duino to the PC using µUSB cable.
Then navigate to the Comms tab and select the Comms port to which the 4Duino connected.
Finally, go back to “Home” tab and now click on the “Comp’nLoad” button.
The Workshop 4 IDE will prompt you to insert a micro SD card to the PC in order to save the widget images. Insert micro SD card, select the appropriate drive and press button “OK”.
If the SD card has the widget images you can click button “No Thanks”
After uploading the program in to the 4Duino, it will try to mount the µSD card. If the µSD card is not present it will prints an error message. Once µSD card is mounted, you will see the screen displayed in the image on the right.
All you need to do is insert the micro SD card you saved the image files into the 4Duino.
Now using the touch sliders on the 4Duino Display, you can control the speed and direction of the motor.