You are on page 1of 72

Abstract:

Block diagram:

Power 16x2 LCD


ARDUINO UNO

Voltage

Solar panel

LDR

Circuit diagram:
LCD1
LM016L

VDD
VSS

VEE
R2

RW
SOLAR PANEL

RS

D0
D1
D2
D3
D4
D5
D6
D7
E
30k

1
2
3

4
5
6

7
8
9
10
11
12
13
14
ARD1
R3
10k
-

10
11
12
4
5
6
7
9
ON
U1

Reset BTN

P0
P1
P2
P3
P4
P5
P6
P7
www.TheEngineeringProjects.com
PCF8574
AREF

SDA
SCL

INT
13

A0
A1
A2
PB5/SCK
12
PB4/MISO
RESET 11

14
15

13

1
2
3
~ PB3/MOSI/OC2A
10
~ PB2/OC1B
9
~ PB1/OC1A
8
PB0/ICP1/CLKO

ATMEGA328P-PU
1121
ANALOG IN 7
PD7/AIN1
6
A0 ~ PD7/AIN1
1.0 LDR1 A1
PC0/ADC0
~ PD5/T1/OC0B
5
PC1/ADC1 4
LDR A2 PD4/T0/XCK
PC2/ADC2 3
A3 ~ PD3/INT1/OC2B
2
PC3/ADC3 PD2/INT0
A4 1 +88.8
PC4/ADC4/SDA PD1/TXD
A5 0
PC5/ADC5/SCL PD0/RXD

R1 ARDUINO UNO
10k

R4 Q1
BC547
10k
RL1
12V

EMBEDDED SYSTEMS:

Introduction:

An embedded system is a system which is going to do a predefined specified task is the embedded
system and is even defined as combination of both software and hardware. A general-purpose
definition of embedded systems is that they are devices used to control, monitor or assist the operation
of equipment, machinery or plant. "Embedded" reflects the fact that they are an integral part of the
system. At the other extreme a general-purpose computer may be used to control the operation of a
large complex processing plant, and its presence will be obvious.

All embedded systems are including computers or microprocessors. Some of these computers are
however very simple systems as compared with a personal computer.
The very simplest embedded systems are capable of performing only a single function or set of
functions to meet a single predetermined purpose. In more complex systems an application program
that enables the embedded system to be used for a particular purpose in a specific application
determines the functioning of the embedded system. The ability to have programs means that the same
embedded system can be used for a variety of different purposes. In some cases a microprocessor may
be designed in such a way that application software for a particular purpose can be added to the basic
software in a second process, after which it is not possible to make further changes. The applications
software on such processors is sometimes referred to as firmware.
The simplest devices consist of a single microprocessor (often called a "chip”), which may itself be
packaged with other chips in a hybrid system or Application Specific Integrated Circuit (ASIC). Its
input comes from a detector or sensor and its output goes to a switch or activator which (for example)
may start or stop the operation of a machine or, by operating a valve, may control the flow of fuel to an
engine.

As the embedded system is the combination of both software and hardware

Embedded
System

Software Hardware

ALP Processor
C Peripherals
VB memory
Etc.,

Figure: Block diagram of Embedded System

Software deals with the languages like ALP, C, and VB etc., and Hardware deals with Processors,
Peripherals, and Memory.
Memory: It is used to store data or address.
Peripherals: These are the external devices connected
Processor: It is an IC which is used to perform some task
Applications of embedded systems
 Manufacturing and process control

 Construction industry
 Transport
 Buildings and premises
 Domestic service
 Communications
 Office systems and mobile equipment
 Banking, finance and commercial
 Medical diagnostics, monitoring and life support
 Testing, monitoring and diagnostic systems

Processors are classified into four types like:


 Micro Processor (µp)
 Micro controller (µc)
 Digital Signal Processor (DSP)
 Application Specific Integrated Circuits (ASIC)
Micro Processor (µp):
A silicon chip that contains a CPU. In the world of personal computers, the terms microprocessor and
CPU are used interchangeably. At the heart of all personal computers and most workstations sits a
microprocessor. Microprocessors also control the logic of almost all digital devices, from clock radios
to fuel-injection systems for automobiles.

Three basic characteristics differentiate microprocessors:

 Instruction set: The set of instructions that the microprocessor can execute.
 Bandwidth : The number of bits processed in a single instruction.
 Clock speed : Given in megahertz (MHz), the clock speed determines how many instructions
per second the processor can execute.
In both cases, the higher the value, the more powerful the CPU. For example, a 32-bit microprocessor
that runs at 50MHz is more powerful than a 16-bit microprocessor that runs at 25MHz. In addition to
bandwidth and clock speed, microprocessors are classified as being either RISC (reduced instruction
set computer) or CISC (complex instruction set computer).

A microprocessor has three basic elements, as shown above. The ALU performs all arithmetic
computations, such as addition, subtraction and logic operations (AND, OR, etc). It is controlled by the
Control Unit and receives its data from the Register Array. The Register Array is a set of registers
used for storing data. These registers can be accessed by the ALU very quickly. Some registers have
specific functions - we will deal with these later. The Control Unit controls the entire process. It
provides the timing and a control signal for getting data into and out of the registers and the ALU and it
synchronizes the execution of instructions (we will deal with instruction execution at a later date).

Three Basic Elements of a Microprocessor

Micro Controller (µc):


A microcontroller is a small computer on a single integrated circuit containing a processor core,
memory, and programmable input/output peripherals. Program memory in the form of NOR flash or
OTP ROM is also often included on chip, as well as a typically small amount of RAM.
Microcontrollers are designed for embedded applications, in contrast to the microprocessors used in
personal computers or other general purpose applications.
ALU

CU

Timer, Counter, serial


Memory
communication ROM,
ADC, DAC, Timers,
USART, Oscillators
Etc.,

Figure: Block Diagram of Micro Controller (µc)


Digital Signal Processors (DSPs):
Digital Signal Processors is one which performs scientific and mathematical operation. Digital Signal
Processor chips - specialized microprocessors with architectures designed specifically for the types of
operations required in digital signal processing. Like a general-purpose microprocessor, a DSP is a
programmable device, with its own native instruction code. DSP chips are capable of carrying out
millions of floating point operations per second, and like their better-known general-purpose cousins,
faster and more powerful versions are continually being introduced. DSPs can also be embedded within
complex "system-on-chip" devices, often containing both analog and digital circuitry.
Application Specific Integrated Circuit (ASIC)
ASIC is a combination of digital and analog circuits packed into an IC to achieve the desired
control/computation function

ASIC typically contains

 CPU cores for computation and control


 Peripherals to control timing critical functions
 Memories to store data and program
 Analog circuits to provide clocks and interface to the real world which is analog in nature
 I/Os to connect to external components like LEDs, memories, monitors etc.
Computer Instruction Set

There are two different types of computer instruction set there are:
1. RISC (Reduced Instruction Set Computer) and

2. CISC (Complex Instruction Set computer)

Reduced Instruction Set Computer (RISC)

A RISC (reduced instruction set computer) is a microprocessor that is designed to perform a smaller
number of types of computer instruction so that it can operate at a higher speed (perform more million
instructions per second, or millions of instructions per second). Since each instruction type that a
computer must perform requires additional transistors and circuitry, a larger list or set of computer
instructions tends to make the microprocessor more complicated and slower in operation.

Besides performance improvement, some advantages of RISC and related design improvements are:

 A new microprocessor can be developed and tested more quickly if one of its aims is to be less
complicated.
 Operating system and application programmers who use the microprocessor's instructions will
find it easier to develop code with a smaller instruction set.
 The simplicity of RISC allows more freedom to choose how to use the space on a
microprocessor.
Higher-level language compilers produce more efficient code than formerly because they have always
tended to use the smaller set of instructions to be found in a RISC computer.

RISC characteristics

 Simpleinstructionset:
In a RISC machine, the instruction set contains simple, basic instructions, from which more complex
instructions can be composed.
 Samelengthinstructions.
Each instruction is the same length, so that it may be fetched in a single operation.
 1machine-cycleinstructions.
Most instructions complete in one machine cycle, which allows the processor to handle several
instructions at the same time. This pipelining is a key technique used to speed up RISC machines.

Complex Instruction Set Computer (CISC)

CISC, which stands for Complex Instruction Set Computer, is a philosophy for designing chips that
are easy to program and which make efficient use of memory. Each instruction in a CISC instruction
set might perform a series of operations inside the processor. This reduces the number of instructions
required to implement a given program, and allows the programmer to learn a small but flexible set of
instructions.

TheadvantagesofCISC
At the time of their initial development, CISC machines used available technologies to optimize
computer performance.

 Microprogramming is as easy as assembly language to implement, and much less expensive


than hardwiring a control unit.
 The ease of micro-coding new instructions allowed designers to make CISC machines upwardly
compatible: a new computer could run the same programs as earlier computers because the new
computer would contain a superset of the instructions of the earlier computers.
 As each instruction became more capable, fewer instructions could be used to implement a
given task. This made more efficient use of the relatively slow main memory.
 Because micro program instruction sets can be written to match the constructs of high-level
languages, the compiler does not have to be as complicated.
ThedisadvantagesofCISC
Still, designers soon realized that the CISC philosophy had its own problems, including:

 Earlier generations of a processor family generally were contained as a subset in every new
version --- so instruction set & chip hardware become more complex with each generation of
computers.
 So that as many instructions as possible could be stored in memory with the least possible
wasted space, individual instructions could be of almost any length---this means that different
instructions will take different amounts of clock time to execute, slowing down the overall
performance of the machine.
 Many specialized instructions aren't used frequently enough to justify their existence ---
approximately 20% of the available instructions are used in a typical program.
 CISC instructions typically set the condition codes as a side effect of the instruction. Not only
does setting the condition codes take time, but programmers have to remember to examine the
condition code bits before a subsequent instruction changes them.
Memory Architecture

There two different type’s memory architectures there are:

 Harvard Architecture
 Von-Neumann Architecture

Harvard Architecture

Computers have separate memory areas for program instructions and data. There are two or more
internal data buses, which allow simultaneous access to both instructions and data. The CPU fetches
program instructions on the program memory bus.

The Harvard architecture is a computer architecture with physically separate storage and signal
pathways for instructions and data. The term originated from the Harvard Mark I relay-based computer,
which stored instructions on punched tape (24 bits wide) and data in electro-mechanical counters.
These early machines had limited data storage, entirely contained within the central processing unit,
and provided no access to the instruction storage as data. Programs needed to be loaded by an operator,
the processor could not boot itself.

Figure: Harvard Architecture

Modern uses of the Harvard architecture:


The principal advantage of the pure Harvard architecture - simultaneous access to more than one
memory system - has been reduced by modified Harvard processors using modern CPU cache systems.
Relatively pure Harvard architecture machines are used mostly in applications where tradeoffs, such as
the cost and power savings from omitting caches, outweigh the programming penalties from having
distinct code and data address spaces.
 Digital signal processors (DSPs) generally execute small, highly-optimized audio or video
processing algorithms. They avoid caches because their behavior must be extremely reproducible. The
difficulties of coping with multiple address spaces are of secondary concern to speed of execution. As a
result, some DSPs have multiple data memories in distinct address spaces to facilitate SIMD and
VLIW processing. Texas Instruments TMS320 C55x processors, as one example, have multiple
parallel data busses (two write, three read) and one instruction bus.
 Microcontrollers are characterized by having small amounts of program (flash memory) and
data (SRAM) memory, with no cache, and take advantage of the Harvard architecture to speed
processing by concurrent instruction and data access. The separate storage means the program and data
memories can have different bit depths, for example using 16-bit wide instructions and 8-bit wide data.
They also mean that instruction pre-fetch can be performed in parallel with other activities. Examples
include, the AVR by Atmel Corp, the PIC by Microchip Technology, Inc. and the ARM Cortex-M3
processor (not all ARM chips have Harvard architecture).
Even in these cases, it is common to have special instructions to access program memory as data for
read-only tables, or for reprogramming.
Von-Neumann Architecture

A computer has a single, common memory space in which both program instructions and data are
stored. There is a single internal data bus that fetches both instructions and data. They cannot be
performed at the same time

The von Neumann architecture is a design model for a stored-program digital computer that uses a
central processing unit (CPU) and a single separate storage structure ("memory") to hold both
instructions and data. It is named after the mathematician and early computer scientist John von
Neumann. Such computers implement a universal Turing machine and have a sequential architecture.

A stored-program digital computer is one that keeps its programmed instructions, as well as its data,
in read-write, random-access memory (RAM). Stored-program computers were advancement over the
program-controlled computers of the 1940s, such as the Colossus and the ENIAC, which were
programmed by setting switches and inserting patch leads to route data and to control signals between
various functional units. In the vast majority of modern computers, the same memory is used for both
data and program instructions. The mechanisms for transferring the data and instructions between the
CPU and memory are, however, considerably more complex than the original von Neumann
architecture.

The terms "von Neumann architecture" and "stored-program computer" are generally used
interchangeably, and that usage is followed in this article.
Figure: Schematic of the Von-Neumann Architecture.

Basic Difference between Harvard and Von-Neumann Architecture

 The primary difference between Harvard architecture and the Von Neumann architecture is in
the Von Neumann architecture data and programs are stored in the same memory and managed by the
same information handling system.
 Whereas the Harvard architecture stores data and programs in separate memory devices and
they are handled by different subsystems.
 In a computer using the Von-Neumann architecture without cache; the central processing unit
(CPU) can either be reading and instruction or writing/reading data to/from the memory. Both of these
operations cannot occur simultaneously as the data and instructions use the same system bus.
 In a computer using the Harvard architecture the CPU can both read an instruction and access
data memory at the same time without cache. This means that a computer with Harvard architecture
can potentially be faster for a given circuit complexity because data access and instruction fetches do
not contend for use of a single memory pathway.
 Today, the vast majority of computers are designed and built using the Von Neumann
architecture template primarily because of the dynamic capabilities and efficiencies gained in
designing, implementing, operating one memory system as opposed to two. Von Neumann architecture
may be somewhat slower than the contrasting Harvard Architecture for certain specific tasks, but it is
much more flexible and allows for many concepts unavailable to Harvard architecture such as self
programming, word processing and so on.
 Harvard architectures are typically only used in either specialized systems or for very specific
uses. It is used in specialized digital signal processing (DSP), typically for video and audio processing
products. It is also used in many small microcontrollers used in electronics applications such as
Advanced RISK Machine (ARM) based products for many vendors.
HARDWARE

ARDUINO Board Layout

Figure 1 ARDUINO board layout

2.1.2 ARDUINO pin diagram


Figure 2 ARDUINO pin diagram
2.1.2.1 ATmega8(Microcontroller)

 16 MHz
 8 Kbyte Flash RAM(1K taken by the boot loader)
 1 Kbyte RAM(eg.for auto/local variables and stack)
 14 digital Input/Output Ports

Figure 3 ATmega8

2.1.2.2 Single chip USB to async. Serial data transfer interface

 USB 2.0 compatible


 Transmit and receive LED frive signals
 256 Byte receive,128 Byte transmit buffer
 Data transfer rate from 300bits/sec to 2 Mb/sec

Fig2.1 Android Software Architecture


2.1.3 EXTERNAL power
Figure 4 AC adapter can be used
Figure 5 ARDUINO can run off with USB or EXTERNAL
power source

The power requirement for ARDUINO is 9 to 12V Figure 6 An easier way to connect a battery

DC,250mA or more,2.1mm plug,centre pin positive.


The OFF-the shelf adapter
 must be a DC adapter (i.e. it has to put out DC, not AC)
 should be between 9V and 12V DC
 must be rated for a minimum of 250mA current output,
although you will likely want something more like 500mA
or 1A output, as it gives you the current necessary to
power a servo or twenty LEDs if you want to.
 must have a 2.1mm power plug on the Arduino end, and
 the plug must be "centre positive", that is, the middle pin of the plug has to be the + connection.
Current rating: Since you'll probably be connecting other things to the Arduino (LEDs, LCDs,
servos) you should get an adapter that can supply at least 500mA, or even 1000 mA (1 ampère). That
way you can be sure you have enough juice to make each component of the circuit function reliably.

The Arduino's on-board regulator can actually handle up to 20V or more, so you can actually use an adapter that
puts out 20V DC. The reasons you don't want to do that are twofold: you'll lose most of that voltage in heat,
which is terribly inefficient. Secondly, the nice 9V pin on the Arduino board will actually be putting out 20V or so,
which could lead to potential disaster when you connect something expensive to what you thought was the 9V
pin. Our advice is to stick with the 9V or 12V DC adapter.

2.1.4 ARDUINO flavors!!


There have been many revisions of the USB Arduino.some of them are
1. Arduino UNO:
This is the latest revision of the basic Arduino USB
board. It connects to the computer with a standard USB
cable and contains everything else you need to program
and use the board. It can be extended with a variety of
shields: custom daughter-boards with specific features.
It is similar to the Duemilanove, but has a different
USB-to-serial chip the ATMega8U2, and newly
designed labeling to make inputs and outputs easier to
identify.
2. Arduino Mega 2560:
A larger, more powerful Arduino board. Has
extra digital pins, PWM pins, analog inputs,
serial ports, etc. The version of the Mega
released with the Uno, this version features the
Atmega2560, which has twice the memory, and
uses the ATMega 8U2 for USB-to-serial
communication.
3. Arduino Duemilanove:
The Duemilanove automatically selects the
appropriate power supply (USB or external
power), eliminating the need for the power
selection jumper found on previous boards. It
also adds an easiest to cut trace for disabling the auto-reset, along with a solder jumper for re-
enabling it.
Note: around March 1st, 2009, the
Duemilanove started to ship with
the ATmega328p instead of
theATmega168.

4. Arduino Fio:
An Arduino intended for use as a wireless node.
Has a header for an XBee radio, a connector for
a LiPobattery, and a battery chargingcircuit.
5. LilyPad Arduino:

A stripped-down, circular Arduino board


designed for stitching into clothing and other
fabric/flexible applications. Needs an
additional adapter to communicate with a
computer.

6. Arduino Diecimila:

The main change in the Arduino Diecimila is


that it can be reset from the computer, without
the need to physically press the reset button on
the board. The Diecimila uses a low dropout
voltage regulator which lowers the board's
power consumption when powered by an
external supply (AC/DC adapter or battery). A
resettable polyfuse protects your computer's
USB ports from shorts and surges. It also
provides pin headers for the reset line and for
3.3V. There is a built-in LED on pin 13. Some
blue Diecimila boards say "Prototype - Limited
Edition" but are in fact fully-tested production
boards (the actual prototypes are red).

7. Lilypad Arduino 03

This revision has a 6-pin programming header


that's compatible with FTDI USB cables and the
Sparkfun FTDI Basic Breakout. It adds support
for automatic reset, allowing sketches to be
uploaded without pressing the reset button on the
board. The header is surface mounted, meaning that
the board has no pokey bits sticking out the back.

8. Arduino NG Rev.C

Revision C of the Arduino NG does not have a built-in


LED on pin 13 - instead you'll see two small unused
solder pads near the labels "GND" and "13". There is,
however, about 1000 ohms of resistance on pin 13, so you can connect an LED without external
resistor.

9. Arduino Extreme

The Arduino Extreme uses many more surface mount components than previous USB Arduino
boards and comes with female pin headers. It also has RX and TX LEDs that indicate when data is
being sent to or from the board.
10. Arduino Mini 04

On this version of the Arduino Mini, two of the pins changed. The third pin became reset (instead
of ground) and fourth pin became ground (instead of being unconnected). These boards are labelled
"Mini 04".

Still there

are ,Arduino Serial,Arduino Serial v2.0,Arduino Nano 3.0,Arduino Nano


2.x,Serverino(S3V3),Arduino Stamp 02,Mini USB adapter 03,Mini USB Adapter,Arduino
Bluetooth.

Figure 7 Different Flavours Of ARDUINO with their Configuration

2.1.5 Basic Terminologies in ARDUINO:


1.Analog to digital converter(ADC)
The process of Analog to digital conversion is shown in figure.
The Arduino has 10 bits of Resolution when reading analog signals.
2 power 10=1024 increments
Influence also by how fast you sample

2.Pulse width modulation (PWM)


The Arduino has 8bit of resolution,when outputting a signal using PWM.The range of output voltage
is from 0 to 5 Volts
2power 8=255 Increments
Average of on/off(digital signals to make an average voltage),Duty cycle in 100% of 5Volts.
2.3 LANGUAGE REFERENCES:
The Microcontroller on the board is programmed using the Arduino programming language(based
on wiring) and the arduino development environment(based on processing).
2.3.1 Arduino Programming Language(APL)(based on wiring)
The Arduino programming language is an implementation of Wiring, a similar physical computing
platform, which is based on the Processing multimedia programming environment.
2.3.1.1 Wiring
Wiring is an open-source programming framework for microcontrollers. Wiring allows writing
cross-platform software to control devices attached to a wide range of microcontroller boards to create
all kinds of creative coding, interactive objects, spaces or physical experiences. The framework is
thoughtfully created with designers and artists in mind to encourage a community where beginners
through experts from around the world share ideas, knowledge and their collective experience. There
are thousands of students, artists, designers, researchers, and hobbyists who use Wiring for learning,
prototyping, and finished professional work production.
2.3.2 Arduino development environment(based on processing)
2.3.2.1 Processing
Processing is an open source programming language and environment for people who want to
create images, animations, and interactions. Initially developed to serve as a software sketchbook and
to teach fundamentals of computer programming within a visual context, Processing also has evolved
into a tool for generating finished professional work. Today, there are tens of thousands of students,
artists, designers, researchers, and hobbyists who use Processing for learning, prototyping, and
production.

2.3.3 Software
The software used by the arduino is Arduino IDE.
he Arduino IDE is a cross-platform application written in Java, and is derived from the IDE for the Processing
programming language and the Wiringproject. It is designed to introduce programming to artists and other
newcomers unfamiliar with software development. It includes a code editor with features such as syntax
highlighting, brace matching, and automatic indentation, and is also capable of compiling and uploading
programs to the board with a single click. There is typically no need to edit makefiles or run programs on
acommand-line interface. Although building on command-line is possible if required with some third-party tools
such as Ino.

The Arduino IDE comes with a C/C++ library called "Wiring" (from the project of the same name), which makes
many common input/output operations much easier. Arduino programs are written in C/C++, although users only
need define two functions to make a runnable program:

 setup() – a function run once at the start of a program that can initialize settings
 loop() – a function called repeatedly until the board powers off

ARDUINO IDE

you decided to go and buy yourself an Arduino, but once it arrived, you realized you have no idea
what to do with it. Do not panic, for help is at hand! In this how-to, we will look at how to get started
with Arduino microcontroller boards. We’ll cover software installation, as well as connecting and
configuring the Arduino IDE.

You Will Need

 USB B Cable
 Windows 10, Windows 8, Windows 7, Mac, or Linux OS
 Arduino IDE
 About 15 minutes
Step 1: Download and Install the IDE

You can download the IDE from the official Arduino website. Since the Arduino uses a USB to
serial converter (which allow it to communicate with the host computer), the Arduino board is
compatible with most computers that have a USB port. Of course, you will need the IDE first.
Luckily, the Arduino designers have released multiple versions of the IDE for different operating
systems, including Windows, Mac, and Linux. In this tutorial, we will use Window 10, so ensure that
you download the correct version of the IDE if you do not have Windows 10.
Once downloaded, install the IDE and ensure that you enable most (if not all) of the options,
INCLUDING the drivers.

Step 2: Get the Arduino COM Port Number

Next, you’ll need to connect the Arduino Uno board to the computer. This is done via a USB B
connection. Thanks to the wonderful world of USB, we do not need to provide power to the Arduino,
as the USB provides 5V up to 2A. When the Arduino is connected, the operating system should
recognize the board as a generic COM port (for example, my Arduino Uno uses a CH340G, which is
an RS-232 serial to USB converter). Once it’s recognized, we will need to find out what port number
it has been assigned. The easiest way to do this is to type “device manager” into Windows Search
and select Device Manager when it shows.

in the Device Manager window, look for a device under “Ports (COM & LPT)”, and chances are the
Arduino will be the only device on the list. In my Device Manager, the Arduino shows up as COM7
(I know this because CH340 is in the device name).

Be warned, the Arduino won’t always be recognized automatically. If your Arduino is not
recognized. then uninstall the driver, remove the Arduino, reinsert the Arduino, find the
unrecognized device, right click “Update driver”, and then click “Search automatically”. This should
fix 99 out of 100 problems.

If the Arduino is not recognized, update the driver.


In the window that appears, click “Search automatically”.

Windows can be a real pain sometimes with COM ports, as it can magically change their numbers
between connections. In other words, one day, your Arduino may be on port 7 (as shown here), but
then on other days, Windows may shift it to a different port number. As I understand it, this happens
when you connect other COM ports to your system (which I do frequently).

So, if you can’t find your Arduino on the port that you usually use, just go to your Device Manager
and check what port it’s actually on and, if necessary, update your driver.

Step 3: Configure the IDE

Now that we have determined the COM port that the Arduino is on, it’s time to load the Arduino IDE
and configure it to use the same device and port. Start by loading the IDE. Once it’s loaded, navigate
to Tools > Board > Arduino Uno. However, if you are using a different board (i.e., not the Arduino
Uno), you must select the proper board!
Tell the IDE which board you are using.

Next, you must tell the IDE which COM port the Arduino is on. To do this, navigate to Tools > Port
> COM7. Obviously, if your Arduino is on a different port, select that port instead.

Step 4: Loading a Basic Example

For the sake of simplicity, we will load an example project that the Arduino IDE comes with. This
example will make the onboard LED blink for a second continuously. To load this example, click
File > Examples > 01.Basics > Blink.

Load the blink example.


With the example loaded, it’s time to verify and upload the code. The verify stage checks the code
for errors, then compiles the ready-for-uploading code to the Arduino. The upload stage actually
takes the binary data, which was created from the code, and uploads it to the Arduino via the serial
port.

To verify and compile the code, press the check mark button in the upper left window.

The “Verify” button will compile the Arduino code.


If the compilation stage was successful, you should see the following message in the output window
at the bottom of the IDE. You might also see a similar message—just it’s one that does not have
words like “ERROR” and “WARNING”.

This is a successful compilation.

With the code compiled, you must now upload it the Arduino Uno. To do this, click the arrow next to
the check mark.

The “Upload” button will program the Arduino with your code.

LCD (Liquid Cristal Display):


A liquid crystal display (LCD) is a thin, flat display device made up of any number of
color or monochrome pixels arrayed in front of a light source or reflector. Each pixel
consists of a column of liquid crystal molecules suspended between two transparent
electrodes, and two polarizing filters, the axes of polarity of which are perpendicular to
each other. Without the liquid crystals between them, light passing through one would
be blocked by the other. The liquid crystal twists the polarization of light entering one
filter to allow it to pass through the other.

A program must interact with the outside world using input and output devices that
communicate directly with a human being. One of the most common devices attached
to an controller is an LCD display. Some of the most common LCDs connected to the
contollers are 16X1, 16x2 and 20x2 displays. This means 16 characters per line by 1 line
16 characters per line by 2 lines and 20 characters per line by 2 lines, respectively.

Many microcontroller devices use 'smart LCD' displays to output visual information.
available.
LCD displays designed around LCD NT-C1611 module, are inexpensive, easy to use, andLine lengths
it is even possible to produce a readout using the 5X7 dots plus cursor of the display. of 8,

They have a standard ASCII set of characters and mathematical symbols. For an 8-bit 16,

data bus, the display requires a +5V supply plus 10 I/O lines (RS RW D7 D6 D5 D4 D3 D2 20,

D1 D0). For a 4-bit data bus it only requires the supply lines plus 6 extra lines(RS RW 24, 32

D7 D6 D5 D4). When the LCD display is not enabled, data lines are tri-state and they do and

not interfere with the operation of the microcontroller. 40


chara
Features:
cters
are all
stand
(1) Interface with either 4-bit or 8-bit microprocessor.
ard,
(2) Display data RAM in

(3) 80x8 bits (80 characters). one,


two
(4) Character generator ROM

(5). 160 different 5 7 dot-matrix character patterns.

(6). Character generator RAM

(7) 8 different user programmed 5 7 dot-matrix patterns.

(8).Display data RAM and character generator RAM may be

Accessed by the microprocessor.

(9) Numerous instructions

(10) .Clear Display, Cursor Home, Display ON/OFF, Cursor ON/OFF,

Blink Character, Cursor Shift, Display Shift.

(11). Built-in reset circuit is triggered at power ON.

(12). Built-in oscillator.

Description Of 16x2:

This is the first interfacing example for the Parallel Port. We will start with
something simple. This example doesn't use the Bi-directional feature found on
newer ports, thus it should work with most, if no all Parallel Ports. It however
doesn't show the use of the Status Port as an input. So what are we interfacing?
A 16 Character x 2 Line LCD Module to the Parallel Port. These LCD Modules
are very common these days, and are quite simple to work with, as all the logic
required to run them is on board.

Schematic Diagram:
o Above is the quite simple schematic. The LCD panel's Enable and Register
Select is connected to the Control Port. The Control Port is an open
collector / open drain output. While most Parallel Ports have internal pull-
up resistors, there are a few which don't. Therefore by incorporating the
two 10K external pull up resistors, the circuit is more portable for a wider
range of computers, some of which may have no internal pull up resistors.
o We make no effort to place the Data bus into reverse direction. Therefore
we hard wire the R/W line of the LCD panel, into write mode. This will
cause no bus conflicts on the data lines. As a result we cannot read back the
LCD's internal Busy Flag which tells us if the LCD has accepted and
finished processing the last instruction. This problem is overcome by
inserting known delays into our program.
o The 10k Potentiometer controls the contrast of the LCD panel. Nothing
fancy here. As with all the examples, I've left the power supply out. You
can use a bench power supply set to 5v or use a onboard +5 regulator.
Remember a few de-coupling capacitors, especially if you have trouble
with the circuit working properly.
 The 2 line x 16 character LCD modules are available from a wide range of
manufacturers and should all be compatible with the HD44780. The one I
used to test this circuit was a Power tip PC-1602F and an old Philips
LTN211F-10 which was extracted from a Poker Machine! The diagram to
the right, shows the pin numbers for these devices. When viewed from the
front, the left pin is pin 14 and the right pin is pin 1

16 x 2 Alphanumeric LCD Module Features:

 Intelligent, with built-in Hitachi HD44780 compatible LCD controller and RAM
providing simple interfacing
 61 x 15.8 mm viewing area
 5 x 7 dot matrix format for 2.96 x 5.56 mm characters, plus cursor line
 Can display 224 different symbols
 Low power consumption (1 mA typical)
 Powerful command set and user-produced characters
 TTL and CMOS compatible
 Connector for standard 0.1-pitch pin headers

16 x 2 Alphanumeric LCD Module Specifications:


Pin Symbol Level Function

1 VSS - Power, GND

2 VDD - Power, 5V

3 Vo - Power, for LCD Drive

4 RS H/L Register Select Signal


H: Data Input
L: Instruction Input

H: Data Read (LCD->MPU)


5 R/W H/L
L: Data Write (MPU->LCD)

6 E H,H->L Enable

7-14 DB0-DB7 H/L Data Bus; Software selectable 4- or 8-bit mode

15 NC - NOT CONNECTED

16 NC - NOT CONNECTED

FEATURES:

• 5 x 8 dots with cursor

• Built-in controller (KS 0066 or Equivalent)

• + 5V power supply (Also available for + 3V)

• 1/16 duty cycle

• B/L to be driven by pin 1, pin 2 or pin 15, pin 16 or A.K (LED)

• N.V. optional for + 3V power supply

Data can be placed at any location on the LCD. For 16×1 LCD, the address locations
are:
Fig :15: Address locations for a 1x16 line LCD

Even limited to character based modules, there is still a wide variety of shapes and
sizes available. Line lengths of 8,16,20,24,32 and 40 characters are all standard, in one,
two and four line versions.

Several different LC technologies exists. “supertwist” types, for example, offer


Improved contrast and viewing angle over the older “twisted nematic” types. Some
modules are available with back lighting, so that they can be viewed in dimly-lit
conditions. The back lighting may be either “electro-luminescent”, requiring a high
voltage inverter circuit, or simple LED illumination.

Electrical Block Diagrm

Power supply for LCD driving:


Fig: 18:power supply for LCD

PIN DESCRIPTION:

Most LCDs with 1 controller has 14 Pins and LCDs with 2 controller has 16 Pins (two
pins are extra in both for back-light LED connections).

Fig 19: pin diagram of 1x16 lines LCD


Fig 17: Pin specifications

CONTROL LINES:

EN: Line is called "Enable." This control line is used to tell the LCD that you
are sending it data. To send data to the LCD, your program should make sure
this line is low (0) and then set the other two control lines and/or put data on the
data bus. When the other lines are completely ready, bring EN high (1) and wait
for the minimum amount of time required by the LCD datasheet (this varies from
LCD to LCD), and end by bringing it low (0) again.

RS:

Line is the "Register Select" line. When RS is low (0), the data is to be
treated as a command or special instruction (such as clear screen, position
cursor, etc.). When RS is high (1), the data being sent is text data which sould
be displayed on the screen. For example, to display the letter "T" on the screen
you would set RS high.

RW:
Line is the "Read/Write" control line. When RW is low (0), the information
on the data bus is being written to the LCD. When RW is high (1), the program
is effectively querying (or reading) the LCD. Only one instruction ("Get LCD
status") is a read command. All others are write commands, so RW will almost
always be low.

Finally, the data bus consists of 4 or 8 lines (depending on the mode of


operation selected by the user). In the case of an 8-bit data bus, the lines are
referred to as DB0, DB1, DB2, DB3, DB4, DB5, DB6, and DB7.

Logic status on control lines:

• E - 0 Access to LCD disabled

- 1 Access to LCD enabled

• R/W - 0 Writing data to LCD

- 1 Reading data from LCD

• RS - 0 Instructions

- 1 Character
Writing data to the LCD:

1) Set R/W bit to low

2) Set RS bit to logic 0 or 1 (instruction or character)

3) Set data to data lines (if it is writing)

4) Set E line to high

5) Set E line to low

Read data from data lines (if it is reading) on LCD:


1) Set R/W bit to high

2) Set RS bit to logic 0 or 1 (instruction or character)

3) Set data to data lines (if it is writing)

4) Set E line to high

5) Set E line to low

Entering Text:

First, a little tip: it is manually a lot easier to enter characters and commands in
hexadecimal rather than binary (although, of course, you will need to translate
commands from binary couple of sub-miniature hexadecimal rotary switches is a simple
matter, although a little bit into hex so that you know which bits you are setting).
Replacing the d.i.l. switch pack with a of re-wiring is necessary.

SWITCHES:

The switches must be the type where On = 0, so that when they are turned to the zero
position, all four outputs are shorted to the common pin, and in position “F”, all four
outputs are open circuit.

All the available characters that are built into the module are shown in Table 3. Studying
the table, you will see that codes associated with the characters are quoted in binary
and hexadecimal, most significant bits (“left-hand” four bits) across the top, and least
significant bits (“right-hand” four bits) down the left.
Most of the characters conform to the ASCII standard, although the Japanese and Greek
characters (and a few other things) are obvious exceptions. Since these intelligent
modules were designed in the “Land of the Rising Sun,” it seems only fair that their
Katakana phonetic symbols should also be incorporated. The more extensive Kanji
character set, which the Japanese share with the Chinese, consisting of several
thousand different characters, is not included!

Using the switches, of whatever type, and referring to Table 3, enter a few characters
onto the display, both letters and numbers. The RS switch (S10) must be “up” (logic 1)
when sending the characters, and switch E (S9) must be pressed for each of them. Thus
the operational order is: set RS high, enter character, trigger E, leave RS high, enter
another character, trigger E, and so on.

The first 16 codes in Table 3, 00000000 to 00001111, ($00 to $0F) refer to the CGRAM.
This is the Character Generator RAM (random access memory), which can be used to
hold user-defined graphics characters. This is where these modules really start to show
their potential,

offering such capabilities as bar graphs, flashing symbols, even animated characters.
Before the user-defined characters are set up, these codes will just bring up strange
looking symbols.

Codes 00010000 to 00011111 ($10 to $1F) are not used and just display blank
characters. ASCII codes “proper” start at 00100000 ($20) and end with 01111111 ($7F).
Codes 10000000 to 10011111 ($80 to $9F) are not used, and 10100000 to 11011111
($A0 to $DF) are the Japanese characters.
Fig 20: character details in LCD

Initialization by Instructions:
Fig 21: flow chart of lcd

If the power conditions for the normal operation of the internal reset circuit are not
satisfied, then executing a series of instructions must initialize LCD unit. The procedure
for this initialization process is as above show.
FLOWCHART:
MOTORS

DEFINITION

Motor is a device that creates motion, not an engine; it usually refers to either an electrical motor or an
internal combustion engine.

It may also refer to:

 Electric motor, a machine that converts electricity into a mechanical motion


o AC motor, an electric motor that is driven by alternating current
 Synchronous motor, an alternating current motor distinguished by a rotor
spinning with coils passing magnets at the same rate as the alternating current
and resulting magnetic field which drives it
 Induction motor, also called a squirrel-cage motor, a type of asynchronous
alternating current motor where power is supplied to the rotating device by
means of electromagnetic induction
o DC motor, an electric motor that runs on direct current electricity
 Brushed DC electric motor, an internally commutated electric motor designed to
be run from a direct current power source
 Brushless DC motor, a synchronous electric motor which is powered by direct
current electricity and has an electronically controlled commutation system,
instead of a mechanical commutation system based on brushes
o Electrostatic motor, a type of electric motor based on the attraction and repulsion of
electric charge
o Servo motor, an electric motor that operates a servo, commonly used in robotics
o Internal fan-cooled electric motor, an electric motor that is self-cooled by a fan,
typically used for motors with a high energy density

TYPES OF MOTORS

Industrial motors come in a variety of basic types. These variations are suitable for many different
applications. Naturally, some types of motors are more suited for certain applications than other motor
types are. This document will hopefully give some guidance in selecting these motors.

AC Motors

The most common and simple industrial motor is the three phase AC induction motor, sometimes
known as the "squirrel cage" motor. Substantial information can be found about any motor by checking
its (nameplate).
Advantages

 Simple Design
 Low Cost
 Reliable Operation
 Easily Found Replacements
 Variety of Mounting Styles
 Many Different Environmental Enclosures

Simple Design

The simple design of the AC motor -- simply a series of three windings in the exterior (stator) section
with a simple rotating section (rotor). The changing field caused by the 50 or 60 Hertz AC line voltage
causes the rotor to rotate around the axis of the motor.

The speed of the AC motor depends only on three variables:

1. The fixed number of winding sets (known as poles) built into the motor, which determines the
motor's base speed.
2. The frequency of the AC line voltage. Variable speed drives change this frequency to change
the speed of the motor.
3. The amount of torque loading on the motor, which causes slip.

Low Cost

The AC motor has the advantage of being the lowest cost motor for applications requiring more than
about 1/2 hp (325 watts) of power. This is due to the simple design of the motor. For this reason, AC
motors are overwhelmingly preferred for fixed speed applications in industrial applications and for
commercial and domestic applications where AC line power can be easily attached. Over 90% of all
motors are AC induction motors. They are found in air conditioners, washers, dryers, industrial
machinery, fans, blowers, vacuum cleaners, and many, many other applications.

Reliable Operation

The simple design of the AC motor results in extremely reliable, low maintenance operation. Unlike
the DC motor, there are no brushes to replace. If run in the appropriate environment for its enclosure,
the AC motor can expect to need new bearings after several years of operation. If the application is
well designed, an AC motor may not need new bearings for more than a decade.

Easily Found Replacements

The wide use of the AC motor has resulted in easily found replacements. Many manufacturers adhere
to either European (metric) or American (NEMA) standards. (For Replacement Motors)

Variety of Mounting Styles

AC Motors are available in many different mounting styles such as:

 Foot Mount
 C-Face
 Large Flange
 Vertical
 Specialty

DC Motors

The brushed DC motor is one of the earliest motor designs. Today, it is the motor of choice in the
majority of variable speed and torque control applications.

Advantages

 Easy to understand design


 Easy to control speed
 Easy to control torque
 Simple, cheap drive design

Easy to understand design


The design of the brushed DC motor is quite simple. A permanent magnetic field is created in the stator
by either of two means:

 Permanent magnets
 Electro-magnetic windings

If the field is created by permanent magnets, the motor is said to be a "permanent magnet DC motor"
(PMDC). If created by electromagnetic windings, the motor is often said to be a "shunt wound DC
motor" (SWDC). Today, because of cost-effectiveness and reliability, the PMDC motor is the motor of
choice for applications involving fractional horsepower DC motors, as well as most applications up to
about three horsepower.

At five horsepower and greater, various forms of the shunt wound DC motor are most commonly used.
This is because the electromagnetic windings are more cost effective than permanent magnets in this
power range.

Caution: If a DC motor suffers a loss of field (if for example, the field power connections are broken),
the DC motor will immediately begin to accelerate to the top speed which the loading will allow. This
can result in the motor flying apart if the motor is lightly loaded. The possible loss of field must be
accounted for, particularly with shunt wound DC motors.

Opposing the stator field is the armature field, which is generated by a changing electromagnetic flux
coming from windings located on the rotor. The magnetic poles of the armature field will attempt to
line up with the opposite magnetic poles generated by the stator field. If we stopped the design at this
point, the motor would spin until the poles were opposite one another, settle into place, and then stop --
which would make a pretty useless motor!

However, we are smarter than that. The section of the rotor where the electricity enters the rotor
windings is called the commutator. The electricity is carried between the rotor and the stator by
conductive graphite-copper brushes (mounted on the rotor) which contact rings on stator. Imagine
power is supplied:

The motor rotates toward the pole alignment point. Just as the motor would get to this point, the
brushes jump across a gap in the stator rings. Momentum carries the motor forward over this gap.
When the brushes get to the other side of the gap, they contact the stator rings again and -- the polarity
of the voltage is reversed in this set of rings! The motor begins accelerating again, this time trying to
get to the opposite set of poles. (The momentum has carried the motor past the original pole alignment
point.) This continues as the motor rotates.

In most DC motors, several sets of windings or permanent magnets are present to smooth out the
motion.

Easy to control speed

Controlling the speed of a brushed DC motor is simple. The higher the armature voltage, the faster the
rotation. This relationship is linear to the motor's maximum speed.

The maximum armature voltage which corresponds to a motor's rated speed (these motors are usually
given a rated speed and a maximum speed, such as 1750/2000 rpm) are available in certain standard
voltages, which roughly increase in conjuntion with horsepower. Thus, the smallest industrial motors
are rated 90 VDC and 180 VDC. Larger units are rated at 250 VDC and sometimes higher.

Specialty motors for use in mobile applications are rated 12, 24, or 48 VDC. Other tiny motors may be
rated 5 VDC.

Most industrial DC motors will operate reliably over a speed range of about 20:1 -- down to about 5-
7% of base speed. This is much better performance than the comparible AC motor. This is partly due to
the simplicity of control, but is also partly due to the fact that most industrial DC motors are designed
with variable speed operation in mind, and have added heat dissipation features which allow lower
operating speeds.

Easy to control torque

In a brushed DC motor, torque control is also simple, since output torque is proportional to current. If
you limit the current, you have just limited the torque which the motor can achieve. This makes this
motor ideal for delicate applications such as textile manufacturing.

Simple, cheap drive design

The result of this design is that variable speed or variable torque electronics are easy to design and
manufacture. Varying the speed of a brushed DC motor requires little more than a large enough
potentiometer. In practice, these have been replaced for all but sub-fractional horsepower applications
by the SCR and PWM drives, which offer relatively precisely control voltage and current. Common
DC drives are available at the low end (up to 2 horsepower) for under US$100 -- and sometimes under
US$50 if precision is not important.

Large DC drives are available up to hundreds of horsepower. However, over about 10 horsepower
careful consideration should be given to the price/performance tradeoffs with AC inverter systems,
since the AC systems show a price advantage in the larger systems. (But they may not be capable of the
application's performance requirments).

Disadvantages

 Expensive to produce
 Can't reliably control at lowest speeds
 Physically larger
 High maintenance
 Dust

WORKING OF DC MOTOR

In any electric motor, operation is based on simple electromagnetism. A current-carrying


conductor generates a magnetic field; when this is then placed in an external magnetic field, it will
experience a force proportional to the current in the conductor, and to the strength of the external
magnetic field. As you are well aware of from playing with magnets as a kid, opposite (North and
South) polarities attract, while like polarities (North and North, South and South) repel. The internal
configuration of a DC motor is designed to harness the magnetic interaction between a current-carrying
conductor and an external magnetic field to generate rotational motion.

Principle

When a rectangular coil carrying current is placed in a magnetic field, a torque acts on the coil which rotates it
continuously.
When the coil rotates, the shaft attached to it also rotates and thus it is able to do mechanical work.

Every DC motor has six basic parts -- axle, rotor (a.k.a., armature), stator, commutator, field magnet(s),
and brushes. In most common DC motors (and all that BEAMers will see), the external magnetic field
is produced by high-strength permanent magnets 1. The stator is the stationary part of the motor -- this
includes the motor casing, as well as two or more permanent magnet pole pieces. The rotor (together
with the axle and attached commutator) rotate with respect to the stator. The rotor consists of windings
(generally on a core), the windings being electrically connected to the commutator. The above diagram
shows a common motor layout -- with the rotor inside the stator (field) magnets.

The geometry of the brushes, commentator contacts, and rotor windings are such that when power is
applied, the polarities of the energized winding and the stator magnet(s) are misaligned, and the rotor
will rotate until it is almost aligned with the stator's field magnets. As the rotor reaches alignment, the
brushes move to the next commentator contacts, and energize the next winding. Given our example
two-pole motor, the rotation reverses the direction of current through the rotor winding, leading to a
"flip" of the rotor's magnetic field, driving it to continue rotating.

In real life, though, DC motors will always have more than two poles (three is a very common number).
In particular, this avoids "dead spots" in the commutator. You can imagine how with our example two-
pole motor, if the rotor is exactly at the middle of its rotation (perfectly aligned with the field magnets),
it will get "stuck" there. Meanwhile, with a two-pole motor, there is a moment where the commutator
shorts out the power supply (i.e., both brushes touch both commutator contacts simultaneously). This
would be bad for the power supply, waste energy, and damage motor components as well. Yet another
disadvantage of such a simple motor is that it would exhibit a high amount of torque "ripple" (the
amount of torque it could produce is cyclic with the position of the rotor).
Construction and Working

Parts of a DC Motor

Armature

A D.C. motor consists of a rectangular coil made of insulated copper wire wound on a soft iron core. This coil
wound on the soft iron core forms the armature. The coil is mounted on an axle and is placed between the
cylindrical concave poles of a magnet.

Commutator

A commutator is used to reverse the direction of flow of current. Commutator is a copper ring split into two parts
C1 and C2. The split rings are insulated form each other and mounted on the axle of the motor. The two ends of
the coil are soldered to these rings. They rotate along with the coil. Commutator rings are connected to a battery.
The wires from the battery are not connected to the rings but to the brushes which are in contact with the rings.
Brushes

Two small strips of carbon, known as brushes press slightly against the two split rings, and the split rings rotate
between the brushes.

The carbon brushes are connected to a D.C. source.

Working of a DC Motor

When the coil is powered, a magnetic field is generated around the armature. The left side of the armature is
pushed away from the left magnet and drawn towards the right, causing rotation.
When the coil turns through 900, the brushes lose contact with the commutator and the current stops flowing
through the coil.

However the coil keeps turning because of its own momentum.

Now when the coil turns through 1800, the sides get interchanged. As a result the commutator ring C 1 is now in
contact with brush B2 and commutator ring C2 is in contact with brush B1. Therefore, the current continues to flow
in the same direction.

PARAMETRS OF THE DC MOTRS

1. Direction of rotation
2. Motor Speed
3. Motor Torque
4. Motor Start and Stop

Direction of Rotation
A DC Motor has two wires. We can call them the positive terminal and the negative terminal, although
these are pretty much arbitrary names (unlike a battery where these polarities are vital and not to be
mixed!). On a motor, we say that when the + wire is connected to + terminal on a power source, and
the - wire is connected to the - terminal source on the same power source, the motor rotates clockwise
(if you are looking towards the motor shaft). If you reverse the wire polarities so that each wire is
connected to the opposing power supply terminal, then the motor rotates counter clockwise. Notice this
is just an arbitrary selection and that some motor manufacturers could easily choose the opposing
convention. As long as you know what rotation you get with one polarity, you can always connect in
such a fashion that you get the direction that you want on a per polarity basis.

DC Motor Rotation vs Polarity

Facts:

 DC Motor rotation has nothing to do with the voltage magnitude or the current magnitude
flowing through the motor.
 DC Motor rotation does have to do with the voltage polarity and the direction of the current
flow.

DC Motor Speed

Whereas the voltage polarity controls DC motor rotation, voltage magnitude controls motor speed.
Think of the voltage applied as a facilitator for the strengthening of the magnetic field. In other words,
the higher the voltage, the quicker will the magnetic field become strong. Remember that a DC motor
has an electromagnet and a series of permanent magnets. The applied voltage generates a magnetic
field on the electromagnet portion. This electromagnet field is made to oppose the permanent magnet
field. If the electromagnet field is very strong, then both magnetic entities will try to repel each other
from one side, as well as atract each other from the other side. The stronger the induced magnetic field,
the quicker will this separation/attaction will try to take place. As a result, motor speed is directly
proportional to applied voltage.

Motor Speed Curve

One aspect to have in mind is that the motor speed is not entirely lineal. Each motor will have their
own voltage/speed curve. One thing I can guarantee from each motor is that at very low voltages, the
motor will simply not move. This is because the magnetic field strength is not enough to overcome
friction. Once friction is overcome, motor speed will start to increase as voltage increase.

The following video shows the concept of speed control and offers some ideas on how this can be
achieved.

Motor Torque

In the previous segment I kind of described speed as having to do with the strength of the magnetic
field, but this is in reality misleading. Speed has to do with how fast the magnetic field is built and the
attraction/repel forces are installed into the two magnetic structures. Motor strength, on the other hand,
has to do with magnetic field strength. The stronger the electromagnet attracts the permanent magnet,
the more force is exerted on the motor load.

Per example, imagine a motor trying to lift 10 pounds of weight. This is a force that when multiplied
by a distance (how much from the ground we are lifting the load) results in WORK. This WORK when
exerted through a predetermined amount of time (for how long we are lifting the weight) gives us
power. But whatever power came in, must come out as energy can not be created or destroyed. So that
you know, the power that we are supplying to the motor is computed by

P = IV

Where P is power, I is motor current and V is motor voltage

Hence, if the voltage (motor speed) is maintained constant, how much load we are moving must come
from the current. As you increase load (or torque requirements) current must also increase.

Motor Loading

One aspect about DC motors which we must not forget is that loading or increase of torque can not be
infinite as there is a point in which the motor simply can not move. When this happens, we call this
loading “Stalling Torque”. At the same time this is the maximum amount of current the motor will see,
and it is refer to Stalling Current. Stalling deserves a full chapter as this is a very important scenario
that will define a great deal of the controller to be used. I promise I will later write a post on stalling
and its intricacies.

Motor Start and Stop

You are already well versed on how to control the motor speed, the motor torque and the motor
direction of rotation. But this is all fine and dandy as long as the motor is actually moving. How about
starting it and stopping it? Are these trivial matters? Can we just ignore them or should we be careful
about these aspects as well? You bet we should!

Starting a motor is a very hazardous moment for the system. Since you have an inductance whose
energy storage capacity is basically empty, the motor will first act as an inductor. In a sense, it should
not worry us too much because current can not change abruptly in an inductor, but the truth of the
matter is that this is one of the instances in which you will see the highest currents flowing into the
motor. The start is not necessarily bad for the motor itself as in fact the motor can easily take this
Inrush Current. The power stage, on the other hand and if not properly designed for, may take a
beating.

Once the motor has started, the motor current will go down from inrush levels to whatever load the
motor is at. Per example, if the motor is moving a few gears, current will be proportional to that load
and according to torque/current curves.

Stopping the motor is not as harsh as starting. In fact, stopping is pretty much a breeze. What we do
need to concern ourselves is with how we want the motor to stop. Do we want it to coast down as
energy is spent in the loop, or do we want the rotor to stop as fast as possible? If the later is the option,
then we need braking. Braking is easily accomplished by shorting the motor outputs. The reason why
the motor stops so fast is because as a short is applied to the motor terminals, the Back EMF is shorted.
Because Back EMF is directly proportional to speed, making Back EMF = 0, also means making speed
= 0.

MOTORDRIVER CIRCUIT

The name "H-Bridge" is derived from the actual shape of the switching circuit which control the
motoion of the motor. It is also known as "Full Bridge". Basically there are four switching elements in
the H-Bridge as shown in the figure below.
As you can see in the figure above there are four switching elements named as "High side left", "High
side right", "Low side right", "Low side left". When these switches are turned on in pairs motor
changes its direction accordingly. Like, if we switch on High side left and Low side right then motor
rotate in forward direction, as current flows from Power supply through the motor coil goes to ground
via switch low side right. This is shown in the figure below.
Similarly, when you switch on low side left and high side right, the current flows in opposite direction
and motor rotates in backward direction. This is the basic working of H-Bridge. We can also make a
small truth table according to the switching of H-Bridge explained above.

Truth Table
High Left High Right Low Left Low Right Description
On Off Off On Motor runs clockwise
Off On On Off Motor runs anti-clockwise
On On Off Off Motor stops or decelerates
Off Off On On Motor stops or decelerates

As already said, H-bridge can be made with the help of trasistors as well as MOSFETs, the only thing
is the power handling capacity of the circuit. If motors are needed to run with high current then lot of
dissipation is there. So head sinks are needed to cool the circuit.

Now you might be thinkin why i did not discuss the cases like High side left on and Low side left on or
high side right on and low side right on. Clearly seen in the diagra, you don't want to burn your power
supply by shorting them. So that is why those combinations are not discussed in the truth table.
Relays

A relay is an electrically operated switch. These are remote control electrical switches
that are controlled by another switch, such as a horn switch or a computer as in a power
train control module, devices in industries, home based applications. Relays allow a
small current pin, 4-pin, 5-pin, and 6-pin, single switch or dual switches. Relays are
used throughout the automobile. Relays which come in assorted sizes, ratings, and
applications, are used as remote control switches. A typical vehicle can have 20 relays
or more.

BASICS ON RELAY HANDLING


 To maintain initial performance, care should be taken to avoid dropping or hitting
the relay.
 Under normal use, the relay is designed so that the case will not detach. To
maintain initial performance, the case should not be removed. Relay
characteristics cannot be guaranteed if the case is removed.
 Use of the relay in an atmosphere at standard temperature and humidity with
minimal amounts of dust, SO 2, H 2 S, or organic gases is recommended.
 Please avoid the use of silicon-based resins near the relay, because doing so may
result in contact failure. (This applies to plastic sealed type relays, too.)
 Care should be taken to observe correct coil polarity (+, –) for polarized relays.
 Proper usage requires that the rated voltage be impressed on the coil. Use
rectangular waves for DC coils and sine waves for AC coils.
 Be sure the coil impressed voltage does not continuously exceed the maximum
allowable voltage.
 Absolutely avoid using switching voltages and currents that exceed the designated
values.
 The rated switching power and life are given only as guides. The physical
phenomena at the contacts and contact life greatly vary depending on the type of
load and the operating conditions. Therefore, be sure to carefully check the
 type of load and operating conditions before use.
 Do not exceed the usable ambient temperature values listed in the catalog.
 Use the flux-resistant type or sealed type if automatic soldering is to be used.
 Use alcohol based cleaning solvents when cleaning is to be performed using a
sealed type relay.
 Avoid ultrasonic cleaning of all types of relays.
 Avoid bending terminals, because it may cause malfunction.
 As a guide, use a Faston mounting pressure of 40 to 70N {4 to 7kgf}for relays
with tab terminals.

A relay is used to isolate one electrical circuit from another. It allows a low current
control circuit to make or break an electrically isolated high current circuit path. The
basic relay consists of a coil and a set of contacts. The most common relay coil is a
length of magnet wire wrapped around a metal core. When voltage is applied to the coil,
current passes through the wire and creates a magnetic field. This magnetic field pulls
the contacts together and holds them there until the current flow in the coil has stopped.
The diagram below shows the parts of a simple relay.
Figure: Relay

Operation:

When a current flows through the coil, the resulting magnetic field attracts an armature
that is mechanically linked to a moving contact. The movement either makes or breaks a
connection with a fixed contact. When the current is switched off, the armature is
usually returned by a spring to its resting position shown in figure 6.6(b). Latching
relays exist that require operation of a second coil to reset the contact position.

By analogy with the functions of the original electromagnetic device, a solid-state relay
operates a thyristor or other solid-state switching device with a transformer or light-
emitting diode to trigger it.

Pole and throw

Since relays are switches the terminology applied to switches is also applied to relays. A
relay will switch one or more poles, each of whose contacts can be thrown by energizing
the coil in one of three ways:

 Normally-open (NO) contacts connect the circuit when the relay is activated; the
circuit is disconnected when the relay is inactive. It is also called a Form A
contact or "make" contact.
 Normally-closed (NC) contacts disconnect the circuit when the relay is activated;
the circuit is connected when the relay is inactive. It is also called a Form B
contact or "break" contact.
 Change-over (CO), or double-throw (DT), contacts control two circuits: one
normally-open contact and one normally-closed contact with a common terminal.
It is also called a Form C contact or "transfer" contact ("break before make"). If
this type of contact utilizes a "make before break" functionality, then it is called a
Form D contact.

SPST

SPST relay stands for Single Pole Single Throw relay. Current will only flow through
the contacts when the relay coil is energized.

Figure: SPST Relay

SPDT Relay

SPDT Relay stands for Single Pole Double Throw relay. Current will flow between the
movable contact and one fixed contact when the coil is De-energized and between the
movable contact and the alternate fixed contact when the relay coil is energized. The
most commonly used relay in car audio, the Bosch relay, is a SPDT relay.

Figure: SPDT Relay


DPST Relay

DPST relay stands for Double Pole Single Throw relay. When the relay coil is
energized, two separate and electrically isolated sets of contacts are pulled down to
make contact with their stationary counterparts. There is no complete circuit path when
the relay is De-energized.

Figure: DPST Relay

DPDT Relay

DPDT relay stands for Double Pole Double Throw relay. It operates like the SPDT relay
but has twice as many contacts. There are two completely isolated sets of contacts.

Figure: DPDT Relay

This is a 4 Pole Double Throw relay. It operates like the SPDT relay but it has 4 sets of
isolated contacts.
Figure: 4 Pole Double Throw relay

Types of relay:

1. Latching Relay
2. Reed Relay
3. Mercury Wetted Relay
4. Machine Tool Relay
5. Solid State Relay (SSR)

Latching relay
Latching relay, dust cover removed, showing pawl and ratchet mechanism. The ratchet
operates a cam, which raises and lowers the moving contact arm, seen edge-on just
below it. The moving and fixed contacts are visible at the left side of the image.

A latching relay has two relaxed states (bi-stable). These are also called "impulse",
"keep", or "stay" relays. When the current is switched off, the relay remains in its last
state. This is achieved with a solenoid operating a ratchet and cam mechanism, or by
having two opposing coils with an over-center spring or permanent magnet to hold the
armature and contacts in position while the coil is relaxed, or with a remanent core. In
the ratchet and cam example, the first pulse to the coil turns the relay on and the second
pulse turns it off. In the two coil example, a pulse to one coil turns the relay on and a
pulse to the opposite coil turns the relay off. This type of relay has the advantage that it
consumes power only for an instant, while it is being switched, and it retains its last
setting across a power outage. A remanent core latching relay requires a current pulse of
opposite polarity to make it change state.

Figure: Latching relay

Reed relay

A reed relay has a set of contacts inside a vacuum or inert gas filled glass tube,
which protects the contacts against atmospheric corrosion. The contacts are
closed by a magnetic field generated when current passes through a coil around
the glass tube. Reed relays are capable of faster switching speeds than larger
types of relays, but have low switch current and voltage ratings.

Mercury-wetted relay

A mercury-wetted reed relay is a form of reed relay in which the contacts are
wetted with mercury. Such relays are used to switch low-voltage signals (one
volt or less) because of their low contact resistance, or for high-speed counting
and timing applications where the mercury eliminates contact bounce. Mercury
wetted relays are position-sensitive and must be mounted vertically to work
properly. Because of the toxicity and expense of liquid mercury, these relays are
rarely specified for new equipment. See also mercury switch.
Machine tool relay

A machine tool relay is a type standardized for industrial control of machine


tools, transfer machines, and other sequential control. They are characterized
by a large number of contacts (sometimes extendable in the field) which are
easily converted from normally-open to normally-closed status, easily
replaceable coils, and a form factor that allows compactly installing many relays
in a control panel. Although such relays once were the backbone of automation
in such industries as automobile assembly, the programmable logic controller
(PLC) mostly displaced the machine tool relay from sequential control
applications.

Solid-state relay

A solid state relay (SSR) is a solid state electronic component that provides a similar
function to an electromechanical relay but does not have any moving components,
increasing long-term reliability. With early SSR's, the tradeoff came from the fact that
every transistor has a small voltage drop across it. This voltage drop limited the amount
of current a given SSR could handle. As transistors improved, higher current SSR's, able
to handle 100 to 1,200 Amperes, have become commercially available. Compared to
electromagnetic relays, they may be falsely triggered by transients.

Figure: Solid relay, which has no moving parts


Specification

 Number and type of contacts – normally open, normally closed, (double-throw)


 Contact sequence – "Make before Break" or "Break before Make". For example,
the old style telephone exchanges required Make-before-break so that the
connection didn't get dropped while dialing the number.
 Rating of contacts – small relays switch a few amperes, large contactors are rated
for up to 3000 amperes, alternating or direct current
 Voltage rating of contacts – typical control relays rated 300 VAC or 600 VAC,
automotive types to 50 VDC, special high-voltage relays to about 15 000 V
 Coil voltage – machine-tool relays usually 24 VAC, 120 or 250 VAC, relays for
switchgear may have 125 V or 250 VDC coils, "sensitive" relays operate on a few
milli-amperes

Applications:

Relays are used:

 To control a high-voltage circuit with a low-voltage signal, as in some types of


modems,
 To control a high-current circuit with a low-current signal, as in the starter
solenoid of an automobile,
 To detect and isolate faults on transmission and distribution lines by opening and
closing circuit breakers (protection relays),
 To isolate the controlling circuit from the controlled circuit when the two are at
different potentials, for example when controlling a mains-powered device from a
low-voltage switch. The latter is often applied to control office lighting as the low
voltage wires are easily installed in partitions, which may be often moved as
needs change. They may also be controlled by room occupancy detectors in an
effort to conserve energy,
 To perform logic functions. For example, the boolean AND function is realized
by connecting relay contacts in series, the OR function by connecting contacts in
parallel. Due to the failure modes of a relay compared with a semiconductor, they
are widely used in safety critical logic, such as the control panels of radioactive
waste handling machinery.
 As oscillators, also called vibrators. The coil is wired in series with the normally
closed contacts. When a current is passed through the relay coil, the relay operates
and opens the contacts that carry the supply current. This stops the current and
causes the contacts to close again. The cycle repeats continuously, causing the
relay to open and close rapidly. Vibrators are used to generate pulsed current.
 To generate sound. A vibrator, described above, creates a buzzing sound because
of the rapid oscillation of the armature. This is the basis of the electric bell, which
consists of a vibrator with a hammer attached to the armature so it can repeatedly
strike a bell.
 To perform time delay functions. Relays can be used to act as an mechanical time
delay device by controlling the release time by using the effect of residual
magnetism by means of a inserting copper disk between the armature and moving
blade assembly.

VoltageDetectionSensorModule25V
Basics
The Arduino analoginput is limited toa 5 VDC input.If you wish to measure higher voltages,you will
need to resort to another means.One way is to use a voltage divider. Theonediscussedhereis
found all over Amazon and eBay.

Itisfundamentallya5:1voltagedividerusinga30Kanda7.5KOhmresistor.

Keepinmind,youarerestrictedtovoltagesthatarelessthan25volts.Morethanthatandyouwill exceed the


voltage limit of your Arduino input.

Basic Connection

Inputs

 GND–Thisiswhereyou connectthelowsideofthevoltageyouaremeasuring.Caution!:Thisis the same


electrical point as your Arduino ground.
 VCC:Theiswhereyouconnectthehighsideofthevoltageyouare measuring

Outputs

 S:Thisconnectstoyour Arduinoanaloginput.
 –(orminus):ThisconnectstoyourArduinoground.
 +:Thisisnotconnected.Itdoesabsolutelynothing…zilch…nada…jackdiddlydoodoo.

Schematic
Theschematicforthisisprettystraightforward.Aspreviouslymentioned,itsjustacoupleof resistors.In fact,
you could build your own in a pinch.

Tutorial

TheConnections

Find yourselfa9voltbatteryandconnectit,yourvoltagesensormoduleandArduinoasshown below.


TheSketch

Enterthefollowingsketch,uploaditandgototown.Ifyouopen yourArduinoserialmonitoryou will


be able to see the voltage.

//Robu.in

intanalogInput=A1;

float vout = 0.0;

float vin = 0.0;

floatR1=30000.0;//

float R2 = 7500.0; //

int value = 0;

void setup(){

pinMode(analogInput, INPUT);

Serial.begin(9600);

Serial.print("DCVOLTMETER");

voidloop(){

//readthevalueatanaloginput value =

analogRead(analogInput);

vout=(value*5.0)/1024.0;//seetext vin = vout

/ (R2/(R1+R2));

Serial.print("INPUTV=");

Serial.println(vin,2);

delay(500);
CODE:

You might also like