Sie sind auf Seite 1von 60

EMBEDDED SYSTEM DEVELOPMENT

A SUMMER INTERN REPORT

Submitted by

AYUSH SULTANIA
Roll No: 00596402813

in partial fulfillment of Summer Internship for the award of the degree

of

BACHELOR OF TECHNOLOGY
IN
ELECTRONICS AND COMMUNICATION ENGINEERING

Maharaja Agrasen Institute of Technology

Guru Gobind Singh Indraprastha University,


Delhi
2013-2017

TABLE OF CONTENTS
Title Page (1)
Certificate by the Supervisor (2)
Acknowledgement (3)
List of Figures (4)
List of Tables (5)
List of Photographs (6)
ABSTRACT (7)

CHAPTER (1) INTRODUCTION


1.1 Aim of project
1.2 Outlines of report
1.3 Methodology

CHAPTER(2) LITERATURE REVIEW

2.4 Embedded system


2.5 Arduino uno

CHAPTER (3)ARDUINO UNO

3.1 Overview
3.2 Pin Diagram
3.3 Internal Description

CHAPTER(4) ARDUINO SOFTWARE

4.1 Arduino IDE


4.2 Serial Communication

CHAPTER (5)PROGRAMMES USING ARDUINO UNO


5.1 Glowing LEDs in sequence
5.2 Digital temperature sensor interfacing using LCD
5.3 keypad interfacing
5.4 GPS interfacing
5.5 RFID interfacing
5.6 Ultrasonic Sensors

CHAPTER(6) RESULTS AND DISCUSSIONS


6.1 Results and Conclusions
6.3 Uses and further scope

CHAPTER 7 REFERENCES
CERTIFICATE

This is to certify that this project report entitled Embedded system development by Ayush
Sultania (Roll no: 00596402813) , submitted in partial fulfillment of the requirements for the
degree of Bachelor of Technology in Electronics and Communication Engineering of the
Maharaja Agrasen Institute of technology, Delhi, during the academic year 2015, is a bonafide
record of work carried out under our guidance and supervision.

The results embodied in this report have not been submitted to any other University or Institution
for the award of any degree or diploma.

date : -------------------
Teacher in charge

Institution Rubber Stamp


ACKNOWLEDGEMENT

First of all I am indebted to almighty God . I have no words to say thanks to him.

I am thankful to our training company VMDD Technologies for providing


wonderful training platform.
We would like to express our special thanks of gratitude to our guide Mr. Deevanshu Shukla as
well as our director Prof. M. L. Goyal, our chairman Dr. Nand Kishore Garg and our HOD Dr.
Neelam Sharma who gave us the golden opportunity to do this wonderful research on the topic
Arduino which also helped us in doing a lot of research and we came to know about so many
new things that we are really thankful to them.

Secondly we would like to thank our parents and friends who helped us a lot in finalizing this
project within the time frame.

LIST OF FIGURES
LIST SN FIGU FIGURE DESCRIPTION PAG OF
O RE E
NO NO
1 3.1 Arduino Pin Diagram 16

2 3.2 ATmega 328P 17

3 3.3 ATmega Ports 18

4 4.1 Arduino Board 24

5 4.2 Driver Installation 24-


25

6 4.3 Launching Arduino IDE 25

7 4.4 Blink Example 26

8 4.5 Selecting Board 26

9 4.6 Selecting Port 27

10 4.7 Serial Communication 28

11 5.1 Glowing LEDs 29

12 5.2 Temperature Sensor interfacing 34

13 5.3 Hex keypad interfacing 37

14 5.4 GPS interfacing 44

15 5.5 Ultrasonic interfacing 49

16 6.1 Comparing Arduino with other 52


software
TABLES
S.No. Table No. Description Page No.
1 3.1 Comparison of ATmega 19
328P with others
2. 3.2 Arduino Specifications 22

LIST OF PHOTOGRAPHS
S.No. Photograph Description Page No.
No.
1. 2.1 Creator of 14
Arduino
2. 6.1 My custom 53
Board

ABSTRACT
This is a report about Arduino board and programming environment. It contains basic working of
Arduino , different types of Arduino boards, interfacing with Arduino programming environment,
how to program, basic instructions regarding that and interfacing of a few sensors is shown in the
content.

In fifth chapter different projects based on Arduino uno is explored. Few additional software
like visual studio was used.

Outcome of this report is learning to program in Arduino programming environment and


understanding concepts behind its working. Interfacing different sensor modules with Arduino is
also included.
This report will help you making your project much easier using Arduino.

CHAPTER 1 : INTRODUCTION
1.1 Aim of the project
The aim of the project is to develop some understanding
about what embedded system is and how we can design our
own modules using Arduino uno.

Apart from these it also provides knowledge about some


software platform.

1.2 Outlines of Report


This report contains a detailed information about all the
components used in this project. The components used are:

Arduino UNO
Temperature sensor

GPS module

Ultrasonic sensor

LCD

LED

Bluetooth module

Keypad interfacing

A detailed report about each and every component is


described in separate chapter.

Chapter 2 contains information about Embedded System.

Chapter 3 contains information about Arduino uno.

Chapter 4 contains information about Arduino software.

Chapter 5 contains information about Programmming using


Arduino.

Chapter 6 contains Results and discussions.


1.3 Methodologies
The idea of this project is to give information about the accident to the
ambulance and family members, so we have chose GSM technology to give
the information by sending SMS.

Sending SMS alone cant help the driver, if we send and an SMS saying
that accident had occurred where the ambulance will come without knowing
the location of the accident. So we include GPS location in the SMS which
we are sending so that the ambulance will have perfect information about
where and when the accident has occurred. For this we use GPS module to
extract the location of the accident, the GPS data will contain the latitude
and longitude values using which we can find the accurate position of the
accident place.

To run the GPS and GSM module we use Arduino UNO board which has
ATmega328 microcontroller. The Arduino is a very user friendly device
which can be easily interfaced with any sensors or modules and is very
compact in size.

Also we can make rfid card detector using Arduino UNO using which one
can make detect his own RFID card if available like if one wants to check
balance in metro card, attendance record in office, and many more.

Finally we can sense the room temperature and distance of any object.One
can also glow LEDs in some beautiful dancing patterns and display them
on LCD.
CHAPTER 2 : LITERATURE REVIEW
A literature review is collection of a critical, unbiased, and comprehensive
evaluation of published information in a chosen and specific area of study of
interest. It gives a general understanding of findings of the research work,
conclusions, and recommendations and thereby brings out their strengths
and weaknesses. This helps in identifying gaps, scope for further work and
generalized concepts in the existing body of knowledge.

2.1 Embedded System


An embedded system is some combination of hardware and software, either
fixed in capability or programmable, that is specifically designed for a
particular function. Industrial machines, automobiles, medical equipment,
cameras, household appliances, airplanes, vending machines and toys (as
well as the more obvious cellular phone and PDA) are among the myriad
possible hosts of an embedded system.

In embedded systems, software commonly known as firmware is hidden


inside the same hardware rather than in some other hardware. Basically
embedded systems are task specific devices. One of its most important
characteristic is gives the output within the time constraints or you can say
they are time bound systems. These embedded systems help to make the
work more convenient and accurate. So, we often use these embedded
systems in simple and complicated devices too. We use these embedded
systems in our real life for many devices and applications such as
Calculators, microwave, television remote control, home security and
neighborhood traffic control systems, etc.
Modern embedded systems are often based on microcontrollers (i.e. CPUs
with integrated memory or peripheral interfaces) but ordinary
microprocessors (using external chips for memory and peripheral interface
circuits) are also still common, especially in more complex systems. In
either case, the processor(s) used may be types ranging from general purpose
to those specialized in certain class of computations or even custom
designed for the application at hand. A common standard class of dedicated
processors is the digital signal processor (DSP).

Since the embedded system is dedicated to specific tasks, design engineers


can optimize it to reduce the size and cost of the product and increase the
reliability and performance. Some embedded systems are mass-produced,
benefiting from economies of scale.

Embedded systems range from portable devices such as digital


watches and MP3 players, to large stationary installations like traffic
lights, factory controllers, and largely complex systems like hybrid
vehicles, MRI, and avionics. Complexity varies from low, with a
single microcontroller chip, to very high with multiple units, peripherals and
networks mounted inside a large or enclosure.

Author Steve Heath

There are many definitions for this but the best way to define it is to describe
it in terms of what it is not and with examples of how it is used.

An embedded system is a microprocessor-based system that is built to


control a function or range of functions and is not designed to be
programmed by the end user in the same way that a PC is. Yes, a user can
make choices concerning functionality but cannot change the functionality
of the system by adding/replacing software. With a PC, this is exactly what a
user can do: one minute the PC is a word processor and the next its a games
machine simply by changing the software. An embedded system is designed
to perform one particular task albeit with choices and different options. The
last point is important because it differentiates itself from the world of the
PC where the end user does reprogram it whenever a different software
package is bought and run. However, PCs have provided an easily accessible
source of hardware and software for embedded systems and it should be no
surprise that they form the basis of many embedded systems. To reflect this,
a very detailed design example is included at the end of this book that uses a
PC in this way to build a sophisticated data logging system for a race car. If
this need to control the physical world is so great, what is so special about
embedded systems that has led to the widespread use of microprocessors?
There are several major reasons and these have increased over the years as
the technology has progressed and developed. Replacement for discrete
logic-based circuits The microprocessor came about almost by accident

2.2 Arduino UNO

Arduino is an open-source electronics platform based on easy-to-use


hardware and software. It's intended for anyone making interactive projects.
Arduino can take the input from many sensors attached to it & can give the
output to many lights, motors etc.

There is no prerequisite knowledge of Advance electronics for operating


Arduino. All you should know is basic electronics and C programming
language.

Arduino platform mainly contains a Hardware Board called Arduino Board


& software Arduino IDE to program it.

Other external hardware like Sensor Modules, Motors, lights etc. could be
attached with the board.
ARDUINO BOARDS:-

Arduino UNO. Arduino MEGA.

Arduino MINI. Arduino DUE.

Arduino YUN. Arduino Lily pad.

The most common Board used is Arduino UNO. UNO" means one in
Italian and was chosen to mark the release of Arduino Software (IDE) 1.0.
The Uno board and version 1.0 of Arduino Software (IDE) were the
reference versions of Arduino, now evolved to newer releases.

Who created Arduino UNO ?

Arduino started in 2005 as a project for students at the Interaction Design


Institute Ivrea in Ivrea, Italy. At that time program students used a "BASIC
Stamp" at a cost of $100, considered expensive for students. Massimo
Banzi, one of the founders, taught at Ivrea. The name "Arduino" comes
from a bar in Ivrea, where some of the founders of the project used to meet.
The bar, in turn, has been named after Arduin of Ivrea, who was
the margrave of Ivrea and king of Italy from 1002 to 1014.

Colombian student Hernando Barragan created the Wiring development


platform which served as the basis for Arduino. Following the completion of
the Wiring platform, its lighter, less expensive versions were created and
made available to the open-source community; associated researchers,
including David Cuartielles, promoted the idea. The Arduino's initial core
team consisted of Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca
Martino, and David Mellis.
CHAPTER 3 : ARDUINO UNO
3.1 Overview

Arduino is an open-source computer hardware and software company,


project and user community that designs and manufactures microcontroller-
based kits for building digital devices and interactive objects that can sense
and control the physical world.

The project is based on a family of microcontroller board designs


manufactured primarily by SmartProjects in Italy, and also by several other
vendors, using various 8-bit Atmel AVR microcontrollers or 32-bit
Atmel ARM processors. These systems provide sets of digital and
analog I/O pins that can be interfaced to various expansion boards
("shields") and other circuits. The boards feature serial communications
interfaces, including USB on some models, for loading programs from
personal computers. For programming the microcontrollers, the Arduino
platform provides an integrated development environment (IDE) based on
the Processing project, which includes support for C, C+
+ and Java programming languages.

The first Arduino was introduced in 2005, aiming to provide an inexpensive


and easy way for novices and professionals to create devices that interact
with their environment using sensors and actuators. Common examples of
such devices intended for beginner hobbyists include
simple robots, thermostats, and motion detectors.

Arduino boards are available commercially in preassembled form, or as do-


it-yourself kits. The hardware design specifications are openly available,
allowing the Arduino boards to be manufactured by anyone. Adafruit
Industries estimated in mid-2011 that over 300,000 official Arduinos had
been commercially produced, and in 2013 that 700,000 official boards were
in users' hands.

The Uno is a microcontroller board based on the ATmega328P . It has 14


digital input/output pins (of which 6 can be used as PWM outputs), 6 analog
inputs, a 16 MHz quartz crystal, a USB connection, a power jack, an ICSP
header and a reset button. It contains everything needed to support the
microcontroller; simply connect it to a computer with a USB cable or power
it with a AC-to-DC adapter or battery to get started.. You can tinker with
your UNO without worrying too much about doing something wrong, worst
case scenario you can replace the chip for a few dollars and start over again.

"Uno" means one in Italian and was chosen to mark the release of Arduino
Software (IDE) 1.0. The Uno board and version 1.0 of Arduino Software
(IDE) were the reference versions of Arduino, now evolved to newer
releases. The Uno board is the first in a series of USB Arduino boards, and
the reference model for the Arduino platform; for an extensive list of
current, past or outdated boards see the Arduino index of boards.

3.2 Pin Diagram

Arduino

Arduino/Genuino Uno is a microcontroller board based on


the ATmega328P . It has 14 digital input/output pins (of which 6 can be used
as PWM outputs), 6 analog inputs, a 16 MHz quartz crystal, a USB
connection, a power jack, an ICSP header and a reset button. It contains
everything needed to support the microcontroller; simply connect it to a
computer with a USB cable or power it with a AC-to-DC adapter or battery
to get started.. You can tinker with your UNO without worrying too much
about doing something wrong, worst case scenario you can replace the chip
for a few dollars and start over again.

Atmega 328p

The ATmega48PA/88PA/168PA/328P is a low-power CMOS 8-bit


microcontroller based on the AVR enhanced RISC architecture(RISC,
or Reduced Instruction Set Computer. is a type of microprocessor
architecture that utilizes a small, highly-optimized set of instructions). By
executing powerful instructions in a single clock cycle, the
ATmega48PA/88PA/168PA/328P achieves throughputs approaching 1 MIPS
per MHz allowing the system designer to optimize power consumption
versus processing speed.

The AVR(Advanced Virtual RISC) core combines a rich instruction set with
32 general purpose working registers. All the 32 registers are directly
connected to the Arithmetic Logic Unit (ALU), allowing two independent
registers to be accessed in one single instruction executed in one clock cycle.
The resulting architecture is more code efficient while achieving throughputs
up to ten times faster than conventional CISC microcontrollers. The
ATmega48PA/88PA/168PA/328P provides the following features:
4/8/16/32K bytes of In System Programmable Flash with Read-While-Write
capabilities, 256/512/512/1K bytes EEPROM, 512/1K/1K/2K bytes SRAM,
23 general purpose I/O lines, 32 general purpose working registers, three
flexible Timer/Counters with compare modes, internal and external
interrupts, a serial programmable USART, a byte-oriented 2-wire Serial
Interface, an SPI serial port, a 6-channel 10-bit ADC , a programmable
Watchdog Timer with internal Oscillator, and five software selectable power
saving modes.
The Idle mode stops the CPU while allowing the SRAM, Timer/Counters,
USART, 2-wire Serial Interface, SPI port, and interrupt system to continue
functioning.

The Power-down mode saves the register contents but freezes the Oscillator,
disabling all other chip functions until the next interrupt or hardware reset.
In Power-save mode, the asynchronous timer continues to run, allowing the
user to maintain a timer base while the rest of the device is sleeping.

The ADC Noise Reduction mode stops the CPU and all I/O modules except
asynchronous timer and ADC, to minimize switching noise during ADC
conversions. In Standby mode, the crystal/resonator Oscillator is running
while the rest of the device is sleeping. This allows very fast start-up
combined with low power consumption.

The device is manufactured using Atmels high density non-volatile memory


technology. The On-chip ISP Flash allows the program memory to be
reprogrammed In-System through an SPI serial interface, by a conventional
non-volatile memory programmer, or by an On-chip Boot program running
on the AVR core. The Boot program can use any interface to download the
application program in the Application Flash memory.

Comparison Between ATmega48PA, ATmega88PA, ATmega168PA and


ATmega328P

The ATmega48PA, ATmega88PA, ATmega168PA and ATmega328P differ


only in memory sizes, boot loader support, and interrupt vector sizes. Table
summarizes the different memory and interrupt vector sizes for the three
devices.

Table: memory summary

DEVICE FLASH EEPROM RAM INTERRUPT SIZE


ATmega48PA 4K Bytes 256 Bytes 512 Bytes 1 instruction word/vector
ATmega88PA 8K Bytes 512 Bytes 1K Bytes 1 instruction word/vector
ATmega168PA 16K Bytes 512 Bytes 1K Bytes 2 instruction word/vector
ATmega328P 32K Bytes 1K Bytes 2K Bytes 2 instruction word/vector

3.3 Internal Description


Power

The Arduino/Genuino Uno board can be powered via the USB connection or
with an external power supply. The power source is selected automatically.

External (non-USB) power can come either from an AC-to-DC adapter


(wall-wart) or battery. The adapter can be connected by plugging a 2.1mm
center-positive plug into the board's power jack. Leads from a battery can be
inserted in the GND and Vin pin headers of the POWER connector.

The board can operate on an external supply from 6 to 20 volts. If supplied


with less than 7V, however, the 5V pin may supply less than five volts and
the board may become unstable. If using more than 12V, the voltage
regulator may overheat and damage the board. The recommended range is 7
to 12 volts.

The power pins are as follows:

Vin. The input voltage to the Arduino/Genuino board when it's using an
external power source (as opposed to 5 volts from the USB connection or
other regulated power source). You can supply voltage through this pin, or, if
supplying voltage via the power jack, access it through this pin.
5V.This pin outputs a regulated 5V from the regulator on the board. The
board can be supplied with power either from the DC power jack (7 - 12V),
the USB connector (5V), or the VIN pin of the board (7-12V). Supplying
voltage via the 5V or 3.3V pins bypasses the regulator, and can damage your
board. We don't advise it.

3V3. A 3.3 volt supply generated by the on-board regulator. Maximum


current draw is 50 mA.
GND. Ground pins.

IOREF. This pin on the Arduino/Genuino board provides the voltage


reference with which the microcontroller operates. A properly configured
shield can read the IOREF pin voltage and select the appropriate power
source or enable voltage translators on the outputs to work with the 5V or
3.3V.

Memory
The ATmega328 has 32 KB (with 0.5 KB occupied by the bootloader). It
also has 2 KB of SRAM and 1 KB of EEPROM (which can be read and
written with the EEPROM library).

Input and Output

Each of the 14 digital pins on the Uno can be used as an input or output,
using pinMode(),digitalWrite(), and digitalRead() functions. They operate at
5 volts. Each pin can provide or receive 20 mA as recommended operating
condition and has an internal pull-up resistor (disconnected by default) of
20-50k ohm. A maximum of 40mA is the value that must not be exceeded on
any I/O pin to avoid permanent damage to the microcontroller.

In addition , some pins have specialized functions:

Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL
serial data. These pins are connected to the corresponding pins of the
ATmega8U2 USB-to-TTL Serial chip.
External Interrupts: 2 and 3. These pins can be configured to trigger an
interrupt on a low value, a rising or falling edge, or a change in value. See
the attachInterrupt() function for details.

PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the
analogWrite() function.
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI
communication using the SPI library.

LED: 13. There is a built-in LED driven by digital pin 13. When the pin
is HIGH value, the LED is on, when the pin is LOW, it's off.

TWI: A4 or SDA pin and A5 or SCL pin. Support TWI communication


using the Wire library.

The Uno has 6 analog inputs, labeled A0 through A5, each of which provide
10 bits of resolution (i.e. 1024 different values). By default they measure
from ground to 5 volts, though is it possible to change the upper end of their
range using the AREF pin and the analogReference() function.

There are a couple of other pins on the board:


AREF. Reference voltage for the analog inputs. Used with
analogReference().
Reset. Bring this line LOW to reset the microcontroller. Typically used
to add a reset button to shields which block the one on the board.

Communication
Arduino/Genuino Uno has a number of facilities for communicating with a
computer, another Arduino/Genuino board, or other microcontrollers. The
ATmega328 provides UART TTL (5V) serial communication, which is
available on digital pins 0 (RX) and 1 (TX). An ATmega16U2 on the board
channels this serial communication over USB and appears as a virtual com
port to software on the computer. The 16U2 firmware uses the standard USB
COM drivers, and no external driver is needed. However, on Windows, a .inf
file is required. The Arduino Software (IDE) includes a serial monitor which
allows simple textual data to be sent to and from the board. The RX and TX
LEDs on the board will flash when data is being transmitted via the USB-to-
serial chip and USB connection to the computer (but not for serial
communication on pins 0 and 1).

Table: Arduino Specifications

Microcontroller ATmega328P
Operating Voltage 5V

Input Voltage (recommended) 7-12 V

Input Voltage (limit) 6-20 V

Digital I/O Pins 14 (of which 6 provide PWM Output)

PWM Digital I/O Pins 6

Analog Input Pins 6

DC Current per I/O pin 20 mA


DC Current for 3.3V Pin 50 mA

Flash Memory 32 KB (ATmega 328P) of which 0.5 KB used


by bootloader
SRAM 2 KB (ATmega 328P)

EEPROM 1 KB (ATmega328P)

Clock Speed 16 MHz

Length 68.6 mm

Width 53.4 mm

Weight 25 g
CHAPTER 4 : ARDUINO SOFTWARE
4.1 Arduino IDE
WHAT IS IDE?

The Arduino integrated development environment (IDE) is a cross-


platform application written in Java, and derives from the IDE for the
Processing programming language and the Wiring projects.

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. A
program or code written for Arduino is called a "sketch

Arduino programs are written in C or C++. The Arduino IDE comes


with a software library called "Wiring" from the original Wiring
project, which makes many common input/output operations much
easier.

The source code for the IDE is available and released under the GNU
General Public License, version 2.

How to start Arduino software?

1. Get an Arduino board and USB cable


2. Download the Arduino Software (IDE)

Download Arduino IDE from

https://www.arduino.cc/en/Main/Software

3. Connect the board

Connect your Arduino UNO hardware to PC or Laptop via USB


cable.

4. Install the drivers

Step 1:Open Device Manager

Step 2:Double click the unknown Arduino Uno device, a property window
pops up
Step 3 : Choose the 'Driver' tab, and select 'Update Driver...'

Step 4: Select drivers folder and click OK

5. Launch the Arduino application


6. Open the blink example

7. Select
your
board
8. Select your serial port

9. Upload the program

4.2 Serial Communication

Used for communication between theArduino and a computer or other


devices. All Arduino boards have at least one serial port (also known as a
UART or USART): Serial. It communicates on digital pins 0 (RX) and 1
(TX) as well as with the computer via USB. Thus, if one use these functions,
one cannot also use pins 0 and 1 for digital input or output.

One can use the Arduino environment's built-in serial monitor to


communicate with an Arduino board. Click the serial monitor button in the
toolbar and select the same baud rate used in the call to begin().
Information passes between the computer and Arduino through USB cable.
Information is transmitted as 0s and 1s , also known as bits.

Compiling turns your program into binary data (ones and zeros)
Uploading sends the bits through USB cable to the Arduino

The two LEDs near the USB connector blink when data is
transmitted

RX blinks when the Arduino is receiving data

TX blinks when the Arduino is transmitting data


CHAPTER 5 : PROGRAMMES USING ARDUINO UNO
5.1 Glowing LEDs in sequence

This program glows Leds in sequence according to character typed from


keyboard

and also display that character on LCD screen.

Code

#include<LiquidCrystal.h>

LiquidCrystal lcd(12,11,5,4,3,2);

int thisPin;

void setup()

{
lcd.begin(16,2);

Serial.begin(9600);

Serial.println("-----------Main Menu--------------");

Serial.println("Press a for LED1");

Serial.println("Press b for LED2");

Serial.println("Press c for LED3");

Serial.println("Press d for LED4");

Serial.println("Press e for LED5");

Serial.println("press any key to switch off the LED");

Serial.println("-------------------------------------");

for( thisPin=2;thisPin<7;thisPin++);

pinMode(thisPin,OUTPUT);

void loop()

if(Serial.available()>0)

char rx=Serial.read();

switch(rx)
{

case 'a':

Serial.println("LED1 is ON");

lcd.setCursor(0,1);

lcd.print("LED1");

digitalWrite(2,HIGH);

break;

case 'b':

Serial.println("LED2 is ON");

lcd.setCursor(5,1);

lcd.print("LED2");

digitalWrite(3,HIGH);

break;

case 'c':

Serial.println("LED3 is ON");

lcd.setCursor(11,1);

lcd.print("LED3");

digitalWrite(4,HIGH);

break;

case 'd':

Serial.println("LED4 is ON");
lcd.setCursor(0,2);

lcd.print("LED4");

digitalWrite(5,HIGH);

break;

case 'e':

Serial.println("LED5 is ON");

lcd.setCursor(8,2);

lcd.print("LED5");

digitalWrite(6,HIGH);

break;

default:

for(int thisPin=2;thisPin<7;thisPin++)

digitalWrite(thisPin,LOW);

Serial.println("All LEDs are off");

lcd.clear();

}
5.2 Digital temperature sensor interfacing using LCD

Components Required:

1 ) Developments board.

2) 2*16 LCD

3) Digital Temperature Sensor

4) Pot-Meter (10k)

5) Resistor 560 ohm

6) Bread Board

7) Couple of Jumper Wire

Temperature Sensor - Waterproof (DS18B20)

Description:

This sealed digital temperature probe lets you precisely measure


temperatures in wet environments with a simple 1-Wire interface. The
DS18B20 provides 9 to 12-bit (configurable) temperature readings over a 1-
Wire interface,so that only one wire (and ground) needs to be connected
from a central microprocessor.

What is 2*16 LCD

LCD (Liquid Crystal Display) screen is an electronic display module


and find a wide range of applications. A 16x2 LCD display is very
basic module and is very commonly used in various devices and
circuits.
A 16x2 LCD means it can display 16 characters per line and there
are 2 such lines. In this LCD each character is displayed in 5x7 pixel
matrix. This LCD has two registers, namely, Command and Data.

Circuit Connection of Temperature Sensors Using LCD and


Atmega

Code :

#include<OneWire.h>

#include<DallasTemperature.h>

#include<LiquidCrystal.h>

LiquidCrystal lcd(12,11,5,4,3,2);

#define singleWire 6
OneWire ourWire(singleWire);

DallasTemperature sensors(&ourWire);

void setup()

Serial.begin(9600);

Serial.print("Temperature value");

lcd.begin(16,2);

lcd.print("***Temperature***");

sensors.begin();

void loop()

sensors.requestTemperatures();

Serial.print(sensors.getTempCByIndex(0));

Serial.println(" C");

lcd.setCursor(0,1);

lcd.print(sensors.getTempCByIndex(0));

lcd.print(" C,");

Serial.print(sensors.getTempFByIndex(0));

Serial.println(" F");

lcd.setCursor(8,1);
lcd.print(sensors.getTempFByIndex(0));

lcd.print(" F");

5.3 keypad interfacing

Components Required:

1.) Custom Board

2.) LED RED

3.) LED GREEN

4.) POT-METER(10k)

5.) 2 x 16 LCD

6.) Breadboard

7.) Resistor 560 ohm

8.) Couple of Jumper Wire

9.) Hex-Keypad

Interfacing hex keypad to Atmega-328p

This article is about how to interface a hex keypad to Atmega-328. Hex


keypad is a very important component in embedded systems and the typical
applications are code locks, calculators, automation systems or simply any
thing that requires a character or numeric input.

Hex keypad.
Hex key pad is simply an arrangement 0f 16 push button switches in a 4X4
matrix form. Typically a hex keypad will have keys for number 0, 1, 2, 3, 4,
5, 6, 7, 8, 9 and letters A, B, C, D, *, #. The hex keypad will have 8
connection wires namely R1, R2, R3, R4 and C1, C2, C3, C4 representing
the rows and columns respectively. The schematic diagram and photo of a
typical hex keypad is shown in the figure below.

Code :

#include<Password.h>

#include<Keypad.h>

#include<LiquidCrystal.h>

Password password=Password("1#3*5");

int len=5;//size of password


int ledRed=11;//for Wrong

int ledGreen=12;//for Success

int ilosc;//number of clicks

LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);

const byte ROWS=4;

const byte COLS=4;

char keys[ROWS][COLS]={

{'1','2','3','A'},

{'4','5','6','B'},

{'7','8','9','C'},

{'*','0','#','D'}

};

byte rowPins[ROWS]={5,4,3,2};

byte colPins[COLS]={9,8,7,6};

Keypad
keypad=Keypad(makeKeymap(keys),rowPins,colPins,ROWS,COLS);

void setup()

keypad.addEventListener(keypadEvent);

Serial.begin(9600);

pinMode(ledRed,OUTPUT);
pinMode(ledGreen,OUTPUT);

lcd.begin(16,2);

lcd.setCursor(1,0);

lcd.print("PLEASE ENTER PIN");

void loop()

keypad.getKey();

void keypadEvent(KeypadEvent eKey)

switch(keypad.getState())

case PRESSED:

Serial.print("pressed: ");

Serial.println(eKey);

Serial.println(ilosc);

if(ilosc == 1)

lcd.clear();
lcd.setCursor(1,0);

lcd.print(" <PIN> ");

lcd.setCursor(0,1);

lcd.print("*_");

if(ilosc == 2)

lcd.clear();

lcd.setCursor(1,0);

lcd.print(" <PIN> ");

lcd.setCursor(0,1);

lcd.print("**_");

if(ilosc == 3)

lcd.clear();

lcd.setCursor(1,0);

lcd.print(" <PIN> ");

lcd.setCursor(0,1);

lcd.print("***_");

}
if(ilosc==4)

lcd.clear();

lcd.setCursor(1,0);

lcd.print(" <PIN> ");

lcd.setCursor(0,1);

lcd.print("****_");

if(ilosc==5)

lcd.clear();

lcd.setCursor(1,0);

lcd.print(" <PIN> ");

lcd.setCursor(0,1);

lcd.print("*****_");

if(ilosc == len)

delay(250);

checkPassword();

ilosc=0;
}

void checkPassword()

if(password.evaluate())

ilosc = 0;

Serial.println("Success");

digitalWrite(ledRed,LOW);

digitalWrite(ledGreen,HIGH);

lcd.clear();

lcd.setCursor(0,1);

lcd.print("<<SUCCESS>>");

else

ilosc = 0;

password.reset();

Serial.println("Wrong");

digitalWrite(ledGreen,LOW);

lcd.clear();
lcd.setCursor(1,0);

lcd.print(" :WELCOME:");

lcd.setCursor(0,1);

lcd.print("PLEASE ENTER PIN");

5.4 GPS interfacing

Components Required:

1.) Custom Board

2.) POT-METER(10k)

3.) 2 x 16 LCD

4.) Breadboard

5.) Resistor 560 ohm

6.) Couple of Jumper Wire

7.) Ublox GPS Module

What is GPS?

The Global Positioning System (GPS) is a satellite-based navigation system


made up of a network of 24 satellites placed into orbit by the U.S.
Department of Defense. GPS was originally intended for military
applications, but in the 1980s, the government made the system available for
civilian use. GPS works in any weather conditions, anywhere in the world,
24 hours a day. There are no subscription fees or setup charges to use GPS.

How Does GPS Work:


The GPS system currently has 31 active satellites in orbits inclined 55
degrees to the equator. The satellites orbit about 20,000km from the earth's
surface and make two orbits per day.The orbits are designed so that there are
always 6 satellites in view, from most places on the earth. The GPS receiver
can determine your position in three dimensions - east, north and altitude.

GPS Receiver:

GPS Receiver received the information in string format, transmitted by


Satellites, which uses this information to calculate different parameters
between it and satellites. With information from satellites, a GPS receiver
can fix it location on the ground from the known position of the satellites.
Now I want to drag your attention on the purpose of this project. In this
project, we are going to display Latitude & Longitude used for positioning
of an object on the earth. So lets talk about how a GPS receiver fixes its
location on the ground, as i above said and the find the location of an object
on the earth.

Pin Configuration of U-Blox GPS:

1.VCC: +5v Power Supply

2.TX : Data Transmission

3.RX : Data Receiver

4.GND: Ground
Code :

#include<TinyGPS.h>

#include<SoftwareSerial.h>

long lat,lon;

TinyGPS gps;

SoftwareSerial gpsSerial(3,4);

void setup()

{
Serial.begin(9600);

gpsSerial.begin(9600);

void loop()

while(gpsSerial.available())

if(gps.encode(gpsSerial.read()))

gps.get_position(&lat,&lon);

Serial.print("Receive GPS signal is:");

Serial.println("Position:");

Serial.print("Longitude:");

Serial.print(lon);

Serial.print(" ");

Serial.print("Latitude:");

Serial.print(lat);

}
5.5 RFID interfacing

Code :

//add libraries to your project

#include<AddicoreRFID.h>

#include<LiquidCrystal.h>

#include<SPI.h>

#define uchar unsigned char

#define uint unsigned int

//class to include functions of rfid

AddicoreRFID myRFID;

int chipSelectPin=10;

#define MAX_LEN 16

void setup(){

//led

lcd.begin(16,2);

lcd.println("RFID World");

pinMode(6,OUTPUT);

//convert binary to human readable form

SPI.begin();

//initialise or activate rfid

//as setup execute only once


digitalWrite(6,LOW);

//initialise the rfid

myRFID.AddicoreRFID_Init();

unsigned char structure[16];

unsigned char status;

void loop(){

uchar status;

uchar str[MAX_LEN];

status=myRFID.AddicoreRFID_Request(PICC_REQIDL,str);

status=myRFIDAddicoreRFID_Anticoll(str);

if(status==MI_OK){

lcd.setCursor(0,1);

lcd.print("Tag ID:");

lcd.setCursor(8,1);

lcd.print(str[0]);

digitalWrite(6,HIGH);

delay(1000);

digitalWrite(6,LOW);

myRFID.AddicoreRFID_Halt();
}

5.6 Ultrasonic Sensors


Components Required:
1.) Custom Board
2.) POT-METER(10k)
3.) 2 x 16 LCD
4.) Breadboard
5.) Resistor 560 ohm
6.) Couple of Jumper Wire
7.) HC-SR04
Interfacing of ultrasonic Sensors withAtmega-328p

HC-SR04 Ultrasonic distance sensors is a popular and low cost


solution for non-contact
distance measurement function. It is able to measure distances from
1cm to 400cm with an accuracy of about 3mm. This module includes
ultrasonic transmitter, ultrasonic receiver and its control circuit.
HC-SR04 module has 4 pins :
VCC 5V power supply
TRIG Trigger Pin
ECHO Echo Pin
GND Ground power supply
Code :

#include<LiquidCrystal.h>

LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);

const int trigPin=2;

const int echoPin=4;

void setup()

lcd.begin(16,2);

Serial.begin(9600);

Serial.print("Distance Between Object and Sensors");


}

void loop()

long inches,cm,duration;

pinMode(trigPin,OUTPUT);

digitalWrite(trigPin,LOW);

delayMicroseconds(2);

digitalWrite(trigPin,HIGH);

delayMicroseconds(10);

digitalWrite(trigPin,LOW);

pinMode(echoPin,INPUT);

duration=pulseIn(echoPin,HIGH);//time

inches=microsecondsToInches(duration);

cm=microsecondsToCentimeter(duration);

lcd.clear();

lcd.print("Distance Finder:");

lcd.setCursor(0,1);

lcd.print("INCHES");

lcd.setCursor(7,1);

lcd.print(inches);

Serial.print("INCHES");
lcd.setCursor(10,1);

lcd.print("CM:");

lcd.setCursor(13,1);

lcd.print(cm);

Serial.print(cm);

Serial.println("centimeter");

long microsecondsToInches(long microseconds)

return microseconds /74/2;

long microsecondsToCentimeter(long microseconds)

return microseconds /29/2;

CHAPTER 6 : RESULTS AND DISCUSSIONS

6.1 Results and Conclusions

Over the years,Arduino has went out to become a huge success


and a common name among students.With google deploying
it,peoples imagination has went out to much higher level than
before.A developer in the annual GOOGLE IO conference said
when Arduino and Android coming together,this really proves
INFINITY EXISTS in the future.I think a study on arduino and
practical experiments on arduino must be added for UG courses of
engineering,to help students to leverage their talents,and
imagination.
Before Arduino, the largest players in the design/hobbyist market segment
were the PIC microcontroller family (made by Microchip) and the BASIC
Stamp (made by Parallax). Since the introduction of the Arduino, other large
companies have tried to enter the hobbyist market, including Texas
Instruments , and even Microsoft . However, the open-sourced tools
of the Arduino and the size of its community are large barriers for new
platforms to overcome.

Figure 1 GOOGLE trends comparing ARDUINO with its


biggest competitors

6.3 Uses and further scope


Arduino was basically designed to make the process of using electronics in
multidisciplinary projects more accessible. It is intended for artists,
designers , hobbyists ,and anyone interested in creating interactive objects or
environments.
Arduino is used by all class of people in a different way. Some students use
it in their projects,some using arduino for fun,some went out to become
entreupreuners.This only shows how useful is this tiny device.

ARDUINO is spreading rapidly across the globe. Arduino is actually an


open source hardware project that can be programmed to read temperatures,
control a motor, and sense touch.

The Arduino board is for anyone who wants to build a basic level of
intelligence into an object. Once programmed, it can read sensors, make
simple decisions, and control myriad devices in the real world. Using it is a
snap: first, hook up a few sensors and output devices to the Arduino, then
program it using the free developers software. Next, debug your code and
disconnect the Arduino.Then,the little blue Arduino becomes a standalone
computer.

Thousands of projects have been done worldwide using this tiny little
device. Some of which to mention are:
Simple room temperature readout
Interactive real-time auditory feedback system
GPS receiver Module
Ultrasonic Sensor
Infrared detectors
SONAR
Various sensor projects like
Keypad security code
Sensor tube for heart monitor
Pulse rate monitor
Various light projects like
Multicolor light display
Seven-segment LED display
Double seven-segment LED dice
LED array
LCD module
Various sound projects like
Oscilloscope
Light harp
VU meter
Various power projects like
LCD Thermostat
Computer controlled fan
The hypnotizer
Miscellaneous Projects like
Lie detector
Magnetic door lock
Infrared remote

CHAPTER 7 REFERENCES

1. http://www.arduino.cc -Arduino Official webpage

2. http://en.wikipedia.org/wiki/Arduino -wikipedia

3. http://www.google.co.in

4. http://forum.arduino.cc/index.php?topic=146315.0

5. http://www.circuitstoday.com/interfacing-hex-keypad-to-arduino
6. http://read.pudn.com - steve heath

7. hackveda-VMDD Technologies

Das könnte Ihnen auch gefallen