embedded system design using arduino
TRANSCRIPT
![Page 1: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/1.jpg)
EMBEDDED SYSTEM DESIGN USING ARDUINO
Santosh Kumar Verma
Department of Computer Science and Information TechnologyJaypee Institute of Information Technology, Noida
![Page 2: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/2.jpg)
Content
1. Introduction of µp and µc2. Introduction of 8051 µc3. Introduction of Arduino4. Atmega328 : Basics and internal Architecture5. Atmega328 : Instruction Set6. Arduino programming interface7. Analog/Digital components and its application
with arduino8. References
![Page 3: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/3.jpg)
Do you know computer organization?Arithmetic Logic Unit
Memory
OutputInput Control Unit
![Page 4: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/4.jpg)
- How does it work?- Map it’s units in personal computer –
InputOutputMemoryALU
Software – System software & Application software
![Page 5: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/5.jpg)
Introduction to Microprocessor
ARITHMATIC LOGIC UNIT
CONTROL UNIT
MEMORY
INPUT OUTPUT
MICROCOMPUTER
MICROPROCESSOR
![Page 6: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/6.jpg)
Microprocessor Based System
INPUT µP OUTPUT
MEMORY
INPUT µC OUTPUT
MEMORYExternal memory in addition to internal memory may be desired
MEMORY
![Page 7: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/7.jpg)
Address, Data and Control Bus• Bus - defined pathway for transfer of digital information between
different units.• To write data to memory or output device.
- µp needs to send . Address of memory location or port address of device.. Data . Write control signal
• To read data from memory or Input device - µp needs to send . Address and . Read Control Signal- Memory/device sends – data.
![Page 8: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/8.jpg)
Thus three pathways (buses) for 3 types of digital information.Address Bus - From µp to devices - Unidirectional.Data Bus - From µp to devices & devices to µp - BidirectionalControl - From µp to devices & from devices to µp [Interrupt, DMA] - Bidirectional
Now let us redraw the computer organization diagram
![Page 9: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/9.jpg)
Address Bus
I/ODevice
I/ODevice
I/ODevice Memory
µp Control Bus
Data Bus
![Page 10: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/10.jpg)
Microcontroller
A microcontroller is a complete computer system, including a CPU, memory, a clock oscillator, and I/O on a single integrated circuit chip. [1]
ANALOGINPUTS
http://www.freescale.com/files/microcontrollers/doc/ref_manual/M68HC05TB.pdf, p. 25
![Page 11: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/11.jpg)
General Facilities 8 bit CPU On chip clock oscillator 4 KB of ROM (Program memory) 128 bytes RAM (Data Memory) 21 Special Function Registers(SFR) 32 I/O lines (Ports P0 to P3) 64 KB address space for external data memory 64 KB address space for program memory
8051 MICROCONTROLLER
![Page 12: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/12.jpg)
2- 16 bit timer/counter
5 source interrupt structure
Full duplex serial port
Bit addressability
Bit processing capability
MCS-51 compatible chips
8031 – Romless version – 4KB ROM not available
8751 – EPROM version – 4KB EPROM
8052- (8 KB ROM + 256 byte Data memory)
8051 MICROCONTROLLER
![Page 13: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/13.jpg)
8051 MICROCONTROLLER
![Page 14: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/14.jpg)
• The 8051 was one of the very early microcontrollers (~1980).
• One of the early Arduino-like project was based on
the 8051, in the form of "8052 Basic" board.
• Atmel, Mentor Graphics, Intel, Honeywell, and Maxim (Dallas Semiconductor), and may more have a variety of 8051 chips.
8051 MICROCONTROLLER
![Page 15: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/15.jpg)
WHAT IS ARDUINO?• Introduced in 2005 as a project for students at the Interaction Design Institute
Ivrea in Ivrea, Italy, Arduino is a single board microcontroller.
• An Arduino board consists of an Atmel 8-bit AVR microcontroller with complementary components to facilitate programming and incorporation into other circuits [2].
• Arduino can sense the environment by receiving input from a variety of sensors and can affect its surroundings by controlling lights, motors, and other actuators.
• The boards can be assembled or purchased preassembled; the open-source IDE can be downloaded for free.
• The Arduino programming language is very simple and follows C like syntax.
• Arduino projects can be stand-alone or they can communicate with software running on a computer (e.g. Processing).
![Page 16: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/16.jpg)
WHY ARDUINO?• Other similar microcontrollers platforms are:
Parallax Basic Stamp, Netmedia's BX-24, Phidgets, MIT's Handyboard, and many more.
• All these platforms have an easy-to-use package.
Why Arduino?
Arduino also simplifies the process of working withmicrocontrollers, but it offers some advantage:
![Page 17: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/17.jpg)
1. Inexpensive - Arduino boards are relatively inexpensive compared to other microcontroller platforms.
2. Cross-platform - The Arduino software runs on Windows, Macintosh OSX, and Linux operating systems. Most microcontroller systems are limited to Windows.
3. Simple, clear programming environment - The Arduino programming environment is easy-to-use.
4. Open source and extensible software- The Arduino software is published as open source tools. The language can be expanded through C++ libraries.
5. Open source and extensible hardware -The Arduino is based on Atmel's ATMEGA8 and ATMEGA168 microcontrollers.
ADVANTAGES OF ARDUINO
![Page 18: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/18.jpg)
Features 8051 Modern Microcontrollers
Execution Time 12 clock cycles/Instr. 1 clock cycle/Instr.
Architecture Harvard Harvard
Memory Internal + External (may compromise with security)
Program memory- Internal Data memory ( Int+Ext)
Instruction Set Architecture (ISA)
CISC RISC
Port With limited functionality Fully Functional
Timer Simple PWM, Complex features
Intra Communication Busses
Few Master/Slave SPI Serial InterfaceByte-oriented 2-wire Serial Interface (I2C)
Operating Mode Sleep Sleep, Power Down, Active
ADC NIL At least 6-channel 10-bit ADC
WDT (Watchdog Timer) NIL Present
BOR (Brownout Reset) NIL Present
![Page 19: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/19.jpg)
THE GOOGLE TRENDS FOR ARDUINO RELATIVE TO OTHER EMBEDDED TERMS
![Page 20: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/20.jpg)
ATmega328 data sheet pp. 2, 5 http://www.adafruit.com/index.php?main_page=popup_image&pID=50
ATMEGA328 INTERNAL ARCHITECTURE
![Page 21: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/21.jpg)
ATMEGA328 MICROCONTROLLER
Pin numberPin name
Special function
Source:http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega328P
Note the limitations!
p. 316
![Page 22: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/22.jpg)
ATMEGA328 FEATURES 1
http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet.pdf
High Performance, Low Power AVR® 8-Bit Microcontroller– Advanced RISC Architecture– 131 Powerful Instructions – Most Single Clock Cycle Execution– 32 x 8 General Purpose Working Registers– Up to 20 MIPS Throughput at 20 MHz
High Endurance Non-volatile Memory Segments– 4/8/16/32K Bytes of In-System Programmable Flash program memory (ATmega48PA/88PA/168PA/328P)– 256/512/512/1K Bytes EEPROM– 512/1K/1K/2K Bytes Internal SRAM– Data retention: 20 years at 85°C/100 years at 25°C(1)
![Page 23: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/23.jpg)
ATMEGA328 FEATURES 2 Peripheral Features
– Two 8-bit Timer/Counters– One 16-bit Timer/Counter– Real Time Counter with Separate Oscillator– Six PWM Channels– 6-channel 10-bit ADC – Programmable Serial USART– Master/Slave SPI Serial Interface
Special Microcontroller Features– Internal Calibrated Oscillator– External and Internal Interrupt Sources– Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby, and Extended Standby
![Page 24: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/24.jpg)
ATMEGA328 FEATURES 3 I/O and Packages
– 23 Programmable I/O Lines
Operating Voltage:– 1.8 - 5.5V for ATmega48PA/88PA/168PA/328P
Temperature Range:– -40°C to 85°C
Speed Grade:– 0 - 20 MHz @ 1.8 - 5.5V
Low Power Consumption at 1 MHz, 1.8V, 25°C for ATmega48PA/88PA/168PA/328P:
– Active Mode: 0.2 mA– Power-down Mode: 0.1 μA– Power-save Mode: 0.75 μA
![Page 25: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/25.jpg)
Instruction Set Summary
![Page 26: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/26.jpg)
Instruction Set Summary
![Page 27: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/27.jpg)
Instruction Set Summary
![Page 28: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/28.jpg)
Instruction Set Summary
![Page 29: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/29.jpg)
Absolute Maximums
ATmega328 data sheet p. 316
![Page 30: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/30.jpg)
Microcontroller Ports and Pins
The communication channels through which information flows into or out of the microcontroller Ex. PORTB
Pins PB0 – PB7 May not be contiguous Often bi-directional
C
See next slides!
![Page 31: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/31.jpg)
Port Pin Data Directionality
• Input– When you want to take information from the external
world (sensors) into the MCU• Output
– When you want to change the state of something outside the MCU (turn a motor on or off, etc.)
• Pins default to input direction on power-up or reset.• Your program can set or change the directionality of
a pin at any time
![Page 32: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/32.jpg)
ATmega328Block Diagram
Input
Output
![Page 33: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/33.jpg)
Setting the Pin Data Direction
• Arduino– pinMode(pin_no., dir)
• Ex. Make Arduino pin 3 (PD3) an output– pinMode(3, OUTPUT);– pinMode(PIN_D3, OUTPUT); // with me106.h
– Note: one pin at a time• Suppose you wanted Arduino pins 3, 5, and 7 (PD3,
PD5, and PD7) to be outputs?• Is there a way to make them all outputs at the same
time?
![Page 34: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/34.jpg)
Pin Used as an Output
• Turn on an LED, which is connected to pin Arduino pin 0 (PD0)– What should the data direction
be for pin 0 (PD0)?• pinMode(____, ____);
– Turn on the LED• digitalWrite(0,HIGH);
– Turn off the LED• digitalWrite(0,LOW);
ATmega328
Arduinopin 0(PD0)
![Page 35: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/35.jpg)
• Recall the question:– Is there a way change the data direction for a set of pins all
at the same time?• All the work of MCU happens through registers
(special memory locations)– Registers on the Atmega328 are 8-bits wide
• The data direction register (DDRx) handles the data directions for pins in PORTx
Source:http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega328P p. 93
Pin Used as an Output
![Page 36: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/36.jpg)
Data Direction Register• If the bit is zero -> pin will be an input
– Making a bit to be zero == ‘clearing the bit’• If the bit is one -> pin will be an output
– Making a bit to be one == ‘setting the bit’• To change the data direction for a set of pins
belonging to PORTx at the same time:1. Determine which bits need to be set and cleared in DDRx2. Store the binary number or its equivalent (in an alternate
base, such as hex) into DDRx
![Page 37: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/37.jpg)
Example 1
• Arduino approach • Alternate approach
Make Arduino pins 3, 5, and 7 (PD3, PD5, and PD7) to be outputs
pinMode(3, OUTPUT);pinMode(5, OUTPUT); pinMode(7, OUTPUT);
DDRD = 0b10101000;
or
DDRD = 0xA8;
Or if me106.h is used:
pinMode(PIN_D3, OUTPUT);pinMode(PIN_D5, OUTPUT); pinMode(PIN_D7, OUTPUT);
![Page 38: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/38.jpg)
Example 2
• Arduino approach • Alternate approach
Make pins Arduino pins 0 and 1 (PD0 and PD1) inputs, and turn on the LEDs connected to it.
pinMode(0, INPUT);pinMode(1, INPUT); digitalWrite(0, HIGH);digitalWrite(1, HIGH);
DDRD = 0; // all PORTD pins inputsPORTD = 0b00000011;orPORTD = 0x03;
Or if me106.h is used:
pinMode(PIN_D0, INPUT);pinMode(PIN_D1, INPUT); digitalWrite(PIN_D0, HIGH);digitalWrite(PIN_D1, HIGH);
![Page 39: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/39.jpg)
OFFICIAL BOARDS
![Page 40: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/40.jpg)
Arduino Duemilanove http://www.arduino.cc/en/Main/ArduinoBoardDuemilanove
http://arduino.cc/en/uploads/Main/ArduinoDuemilanove.jpg
Pin 13 LED
USBconnector
Barrel jack
Digital pins header
Reset button
ATmega328 MCU
Analog pins header
Power-ground header
See the handout: Arduino_ATmega328_pin_mapping_and_schematic
![Page 41: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/41.jpg)
Arduino Uno R3
http://www.adafruit.com/index.php?main_page=popup_image&pID=50
ATmega16u2 replaces FT232RL for USB-serial comms
See: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq
![Page 42: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/42.jpg)
Arduino DueAtmel SAM3X8E processor (32 bit ARM Cortex M3 architecture, 84MHz)
http://www.adafruit.com/index.php?main_page=popup_image&pID=1076
See: http://arduino.cc/en/Main/ArduinoBoardDue
Note: 3.3 V !!
![Page 43: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/43.jpg)
Arduino Duemilanove/Uno Features
Microcontroller ATmega168/328
Operating Voltage 5V
Input Voltage (recommended) 7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins 14 (of which 6 provide PWM output)
Analog Input Pins 6
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin 50 mA
Flash Memory 16 KB (ATmega168) or 32 KB (ATmega328) of which 2 KB used by bootloader
SRAM 1 KB (ATmega168) or 2 KB (ATmega328)
EEPROM 512 bytes (ATmega168) or 1 KB (ATmega328)
Clock Speed 16 MHz
http://www.arduino.cc/en/Main/ArduinoBoardDuemilanove
![Page 44: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/44.jpg)
• The Arduino Duemilanove can be programmed with the Arduino software.
• The Arduino integrated development environment (IDE) is written in Java, and is derived from the IDE for the Processing programming language.
• 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".[3]
• Arduino programs are written in C or C++.
About Arduino Programming
![Page 45: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/45.jpg)
Getting Started w/ Arduino on Windows1. Get an Arduino board and USB cable2. Download the Arduino environment3. Connect the board with PC4. Install the drivers5. Launch the Arduino application6. Open the blink example7. Select your board like UNO etc.8. Select your serial port9. Upload the program
![Page 46: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/46.jpg)
Arduino Programming Interface
![Page 47: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/47.jpg)
Sample Program of LED BLINK
• An arduino program == ‘sketch’– Must have:
• setup()• loop()
– setup()• configures pin modes and
registers– loop()
• runs the main body of the program forever
– like while(1) {…}
– Where is main() ?• Arduino simplifies things• Does things for you
/* Blink - turns on an LED for DELAY_ON msec, then off for DELAY_OFF msec, and repeatsBJ Furman rev. 1.1 Last rev: 22JAN2011*/#define LED_PIN 13 // LED on digital pin 13#define DELAY_ON 1000#define DELAY_OFF 1000
void setup(){ // initialize the digital pin as an output: pinMode(LED_PIN, OUTPUT); }
// loop() method runs forever,// as long as the Arduino has power
void loop() { digitalWrite(LED_PIN, HIGH); // set the LED on delay(DELAY_ON); // wait for DELAY_ON msec digitalWrite(LED_PIN, LOW); // set the LED off delay(DELAY_OFF); // wait for DELAY_OFF msec}
![Page 48: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/48.jpg)
main(){ init(); setup(); while (1) loop();}
Structure of an Arduino Programin C language
/* Blink - turns on an LED for DELAY_ON msec, then off for DELAY_OFF msec, and repeatsBJ Furman rev. 1.1 Last rev: 22JAN2011*/#define LED_PIN 13 // LED on digital pin 13#define DELAY_ON 1000#define DELAY_OFF 1000
void setup(){ // initialize the digital pin as an output: pinMode(LED_PIN, OUTPUT); }
// loop() method runs forever,// as long as the Arduino has power
void loop() { digitalWrite(LED_PIN, HIGH); // set the LED on delay(DELAY_ON); // wait for DELAY_ON msec digitalWrite(LED_PIN, LOW); // set the LED off delay(DELAY_OFF); // wait for DELAY_OFF msec}
![Page 49: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/49.jpg)
Various Components
![Page 50: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/50.jpg)
Projects Using Arduino1. Line follower/Path follower2. Obstacles Avoider3. Automatic car parking 4. Driverless car5. Quad copter6. Water-level detection in soil7. Surveillance System8. Dancing/ Funny Robot9. Smart phone Garage Door Opener10. Intrusion alarm11. Thermostat12. Balance multirotor motor using arduino & acceleromter13. Email notifier14. LED Matrix Control15. Maze Solver Robot
![Page 51: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/51.jpg)
REFERENCES1. http://www.freescale.com/files/microcontrollers/doc/ref_manual/M68HC05T
B.pdf, p. 25
2. Arduino, “Avalable at http://www.arduino.cc,” 2010.
3. "Programming Arduino Getting Started with Sketches“ : http://www.amazon.com/Programming-Arduino-Getting-Started-Sketches/dp/0071784225/ref=sr_1_1?s=books&ie=UTF8&qid=1364494138&sr=1-1&keywords=arduino+sketches). McGraw-Hill. Nov 8, 2011. Retrieved 2013-03-28.
4. C. L. Dym, A. M. Agogino, D. D. Frey, and L. J. Leifer, “Engineering design thinking, teaching, and learning,” Journal of Engineering Education, vol. 94, pp. 103–120, 2005. [Online]. Available: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.72.1593
5. http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega328
6. J. Provost, “Why the arduino won and why it’s here to stay,” Tech.Rep.
7. http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq
![Page 52: Embedded system design using arduino](https://reader035.vdocuments.net/reader035/viewer/2022081419/587e3f591a28ab9f5d8b6d51/html5/thumbnails/52.jpg)
Thank You.