• Arduino UNO board • L293D driver • 12V DC motor • 10K ohm potentiometer • Pushbutton • 12V source • Breadboard • Jumper wires
The L293D quadruple half-H drivers chip allows us to drive 2 motors in both directions, with two PWM outputs from the Arduino we can easily control the speed as well as the direction of rotation of one DC motor. (PWM: Pulse Width Modulation). Arduino DC motor control circuit: Project circuit schematic diagram is the one below.
The speed of the DC motor (both directions) is controlled with the 10k potentiometer which is connected to analog channel 0 (A0) and the direction of rotation is controlled with the push button which is connected to pin 8 of the Arduino UNO board. If the button is pressed the motor will change its direction directly. The L293D driver has 2 VCCs: VCC1 is +5V and VCC2 is +12V (same as motor nominal voltage). Pins IN1 and IN2 are the control pins where:
As shown in the circuit diagram we need only 3 Arduino terminal pins, pin 8 is for the push button which toggles the motor direction of rotation. Pins 9 and 10 are PWM signal outputs, at any time there is only 1 active PWM, this allows us to control the direction as well as the speed by varying the duty cycle of the PWM signal. The active PWM pin decides the motor direction of rotation (one at a time, the other output is logic 0).
int in1=5;
int in2=6;
int en=3;
void setup()
{
pinMode(in1,OUTPUT);
pinMode(in2,OUTPUT);
pinMode(en,OUTPUT);
}
void loop()
{
analogWrite(en,255);
digitalWrite(in1,LOW);
digitalWrite(in2,HIGH);
delay(500);
}
Arduino uno interfacing DC motor using L293D driver ic H- bridge is learned and executed