DEPARTMENT OF ELECTRICAL ENGG.
Session : Jan-June 2017
“Speed Control Of D.C. Motor Using ARDUINO microcontroller”
Guided By: Prepared By:
Dr H.K. Verma Aayushi Pandya (0801EE163D01)
Prof. & Head Abiral Bharill (0801EE163D02)
Aman Naikya (0801EE163D03)
Ms. Deepali Kothari Sandhya Chouhan (0801EE163D09)
Asst. Prof. Sourabh Sahu (0801EE163D11)
EED,SGSITS,Indore
Introduction
Block diagram of project
Hardware used
Software tools required
Circuit and Schematic diagram
Results
Application
Advantages and Limitations
Conclusion and Future Scope
Bibliography
This project is designed to control speed of a DC motor using an
Arduino development board. Speed of the DC motor is directly
proportional to the voltage applied across its terminals. Hence, if the
voltage across the motor terminal is varied, then the speed can also
be varied.
To achieve the speed control an electronic technique called Pulse
Width Modulation is used which generates High and Low pulses.
These pulses vary the speed in the motor.
For the generation of these pulses a microcontroller (ATmega328) is
used to set the speed ranges as per the requirement.
Fig. 1: Block diagram of proposed system
Hardware Used:
Arduino UNO
L293D Motor Driver IC
12V DC Motor
Push buttons
10KΩ Potentiometer
5V DC Adapter
Connecting wires
Software Tools Used:
Arduino 5.0.4(Example)
Arduino IDE – for programming Arduino UNO
The Arduino microcontroller is an easy to use yet powerful single board
computer that has gained considerable traction in the hobby and
professional market.
The Arduino is open-source, which means hardware is reasonably priced
and development software is free.
Fig. 2: The Arduino UNO Board
The electric and electromechanical methods are less adaptive
so electronic techniques are used for speed control.
One such technique is Pulse Width Modulation.
This technique can be applied in Microcontroller using
Arduino.
It is easy to compile program with this language.
The code written for the Arduino is executed by this controller and it is
directly connected to the input and output pins. The controller is
programmed via the Tx (transmitter) and Rx (receiver) pins connected to
the USB to serial controller and contains bootloader code. It can also be
programmed directly via the ICSP pin.
The advantage of Arduino is that you can use it to be a piece of hardware
to program the bootloader through ICSP pin. A Bootloader allows us to
upload code without using any additional hardware.
There is the power system, that chooses between the power jack and the
USB power and produces 5V and 3.3V for the rest of the system. There is
a USB to serial controller that that contains the bootloader which is used to
load programs into the ATMEGA328P.
A DC Motor is a type of electric motor that converts DC electrical
power to mechanical power i.e. a DC supply is converted to rotation
or movement. DC motors are one of the commonly used motors in
different applications like electronic toys, power tools, portable fans,
etc.
Fig. 3: A DC Motor
In this project, a small DC Motor is controlled with an Arduino and a
Motor Driver IC where both the speed of the motor and the direction
of rotation are controlled.
L293D is a typical Motor driver or Motor Driver IC which allows DC
motor to drive in either direction.
L293D is a 16-pin IC which can control a set of two DC motors
simultaneously in any direction.
It can controls two DC motor with a single L293D IC.
It has a Dual H-bridge Motor Driver integrated circuit(IC).
Fig. 4: L293D Motor Driver IC Pin Diagram
A push button is a momentary or non-latching switch which causes a temporary
change in the state of an electrical circuit only while the switch is physically
actuated. There are two types:
1) A push to make switch allows electricity to flow between its two contacts when
held in. When the button is released, the circuit is broken. This type of switch is
also known as a Normally Open (NO) Switch.
2) A push to break switch does the opposite, i.e. when the button is not pressed,
electricity can flow, but when it is pressed the circuit is broken. This type of
switch is also known as a Normally Closed (NC) Switch.
Fig. 5: Push Buttons
A potentiometer, informally a pot, is a three terminal resistor with a sliding or
rotating contact that forms an adjustable voltage divider. If only two terminals are
used, one end and the wiper, it acts as a variable resistor or rheostat.
The measuring instrument called a potentiometer, is essentially a voltage
divider used for measuring electric potential (voltage); the component is an
implementation of the same principle, hence its name.
Fig. 6: A Potentiometer
The open-source Arduino Software (IDE) makes it easy to write code
and upload it to the board. It runs on Windows, Mac OS X, and Linux. The
environment is written in Java and based on Processing and other open-
source software.
In fact, you already are; the Arduino language is merely a set
of C/C++ functions that can be called from your code. Your sketch
undergoes minor changes (e.g. automatic generation of function
prototypes) and then is passed directly to a C/C++ compiler(avr-g++).
The Code:
The code you write for your Arduino are known as sketches. They
are written in C++.Every sketch needs two void type
functions, setup() and loop(). A void type function doesn’t return any
value.The setup() method is ran once at the just after the Arduino is
powered up and the loop() method is ran continuously afterwards.
The setup() is where you want to do any initialisation steps, and
in loop() you want to run the code you want to run over and over again.
Fig. 5: Snapshot of the Arduino IDE
Fig: Circuit Diagram
Fig:Schematic
Voltage vs Speed Chart
350
300
250
200
150
100
50
0
Categ Categ Categ Categ Categ Categ
Categ Categ Categ Categ Categ
ory 1 ory 2 ory 3 ory 4 ory 6 ory 9
ory 5 ory 7 ory 8 ory 10 ory 11
Voltage 2.3 3 4 5 6 7 8 9 10 11 12
Speed 0 30 48.4 67.9 91.6 102.5 148.6 192.6 215 288.4 295
Microcontroller needs software like compiler to insert logics as
inputs.
It cannot interface high power devices directly.
It is susceptible to EMI (Electromagnetic Interference), sometimes
even produces audible noises.
Speed control is little bit slow due to delay of clock pulse.
The project can be enhanced by using power electronic devices such as
IGBTs to achieve the speed control higher capacity industrial motors and DC
Motor Controller.
Applications:
Wide supply-voltage range: 4.5V to 36V
Separate input- logic supply
Internal ESD protection
Thermal shutdown
High-Noise-Immunity input
Functional Replacements for SGS L293 and SGS L293D
The Circuit was designed and implemented successfully. This project
can be enhanced by using power electronic devices such as IGBTs to
achieve the speed control higher capacity industrial motors and DC
Motor Controller.
A motor-driver IC is interfaced to the Arduino board for receiving
PWM signals and delivering desired output for speed control of DC
motor.
Basics of Arduino, Available at:
https://en.m.wikipedia.org/wiki/Arduino
Arduino Details,Available at:
https://www.arduino.cc
https://learn.sparkfun.com/tutorials/what-is-
an-arduino
http://forefront.io/a/beginners-guide-to-
arduino/