INTRODUCTION TO ARDUINO PROGRAMMING INTERFACING Engr Franz Duran

  • Slides: 76
Download presentation
INTRODUCTION TO ARDUINO PROGRAMMING & INTERFACING Engr. Franz Duran, MEP-ECE Rapid. Signal Electronics Franz

INTRODUCTION TO ARDUINO PROGRAMMING & INTERFACING Engr. Franz Duran, MEP-ECE Rapid. Signal Electronics Franz Duran

OVERVIEW Microcontrollers & Robotics Franz Duran

OVERVIEW Microcontrollers & Robotics Franz Duran

OVERVIEW ØDAY 1 (Morning) o Introduction to Microcontroller Technology o Introduction to Arduino microcontroller

OVERVIEW ØDAY 1 (Morning) o Introduction to Microcontroller Technology o Introduction to Arduino microcontroller board o Introduction to Rapi. Duino Microcontroller Learning Module o Basic Arduino Programming and Interfacing § Interfacing with LEDs, switches, & LCD Microcontrollers & Robotics Franz Duran

OVERVIEW ØDAY 1 (Afternoon) o Interfacing with 4 x 4 keypad o Interfacing with

OVERVIEW ØDAY 1 (Afternoon) o Interfacing with 4 x 4 keypad o Interfacing with Analog Sensors o Interfacing with Serial Communication Microcontrollers & Robotics Franz Duran

OVERVIEW ØDAY 2 (Morning) o Introduction to P-BOT mobile robot trainer o Maze mobot

OVERVIEW ØDAY 2 (Morning) o Introduction to P-BOT mobile robot trainer o Maze mobot programming o Line follower mobot programming Microcontrollers & Robotics Franz Duran

OVERVIEW ØDAY 2 (Afternoon) o Line follower mobot race o Android-controlled mobot o DIY

OVERVIEW ØDAY 2 (Afternoon) o Line follower mobot race o Android-controlled mobot o DIY line follower mobot Microcontrollers & Robotics Franz Duran

MICROCONTROLLER BASICS Microcontrollers & Robotics Franz Duran

MICROCONTROLLER BASICS Microcontrollers & Robotics Franz Duran

What is a microcontroller? ØMCU ØA single-chip computer ØInvented in the 1970’s ØUsed as

What is a microcontroller? ØMCU ØA single-chip computer ØInvented in the 1970’s ØUsed as “embedded” controller Microcontrollers & Robotics Franz Duran

Where are MCUs used? Øused as dedicated controllers in: o Home and office appliances

Where are MCUs used? Øused as dedicated controllers in: o Home and office appliances o Consumer & Personal electronics o Medical equipment o Industrial equipment o Automotive electronics o Naval/Avionics/Aerospace Microcontrollers & Robotics Franz Duran

Why use a microcontroller? ØLow-cost ØFlexible ØSmall outline ØLow-power Microcontrollers & Robotics Franz Duran

Why use a microcontroller? ØLow-cost ØFlexible ØSmall outline ØLow-power Microcontrollers & Robotics Franz Duran

Why use a microcontroller? ØLow-cost o Typical price range: P 50 to P 1000

Why use a microcontroller? ØLow-cost o Typical price range: P 50 to P 1000 Ø Flexible Ø Small outline Ø Low-power Microcontrollers & Robotics Franz Duran

Why use a microcontroller? Ø Cheap ØFlexible o Re-programmable o High-integration devices Ø Small

Why use a microcontroller? Ø Cheap ØFlexible o Re-programmable o High-integration devices Ø Small outline Ø Low-power Microcontrollers & Robotics Franz Duran

Why use a microcontroller? Ø Cheap Ø Flexible ØSmall outline o small physical size

Why use a microcontroller? Ø Cheap Ø Flexible ØSmall outline o small physical size = low PCB footprint o tiny packages: DIP, SOP Ø Low-power Microcontrollers & Robotics Franz Duran

Why use a microcontroller? Ø Cheap Ø Flexible Ø Small outline ØLow-power o Battery-operated

Why use a microcontroller? Ø Cheap Ø Flexible Ø Small outline ØLow-power o Battery-operated application o Use SLEEP/low-power operation Microcontrollers & Robotics Franz Duran

ARDUINO MICROCONTROLLER Microcontrollers & Robotics Franz Duran

ARDUINO MICROCONTROLLER Microcontrollers & Robotics Franz Duran

What is an Arduino? ØA microcontroller board + programming IDE Microcontrollers & Robotics Franz

What is an Arduino? ØA microcontroller board + programming IDE Microcontrollers & Robotics Franz Duran

What is an Arduino? Ø A complete MCU board o ATMEGA microcontroller o USB

What is an Arduino? Ø A complete MCU board o ATMEGA microcontroller o USB circuit o Power supply circuit o Reset button o Female header connectors Microcontrollers & Robotics Franz Duran

What is an Arduino? ØEasy-to-use Arduino Development environment o Program is called Sketch Microcontrollers

What is an Arduino? ØEasy-to-use Arduino Development environment o Program is called Sketch Microcontrollers & Robotics Franz Duran

Arduino ECOSYSTEM ØArduino Board o Simple, open-hardware design ØArduino Programming IDE o C/C++-based, open-source

Arduino ECOSYSTEM ØArduino Board o Simple, open-hardware design ØArduino Programming IDE o C/C++-based, open-source o Built-in functions ØArduino Community o Design Arduino-compatible circuits (Shields) o Software and hardware collaboration Microcontrollers & Robotics Franz Duran

RAPIDUINO SWORD 3 Microcontrollers & Robotics Franz Duran

RAPIDUINO SWORD 3 Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 ARDUINO BOARD Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 ARDUINO BOARD Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 giz. Duino Arduino Uno Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 giz. Duino Arduino Uno Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Microcontrollers & Robotics 2 x 16 Character LCD Franz Duran

Rapi. Duino Sword 3 Microcontrollers & Robotics 2 x 16 Character LCD Franz Duran

Rapi. Duino Sword 3 Button Switches Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Button Switches Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 4 x 4 Keypad Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 4 x 4 Keypad Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 4 x 4 Keypad Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 4 x 4 Keypad Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 7 -segment displays Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 7 -segment displays Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Lightemitting diodes Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Lightemitting diodes Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Real-time clock w/ back-up battery Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Real-time clock w/ back-up battery Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Serial EEPROM Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Serial EEPROM Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 buzzer Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 buzzer Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Serial Communication Circuit Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Serial Communication Circuit Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Bluetooth Transceiver Module Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Bluetooth Transceiver Module Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Analog voltage sources Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Analog voltage sources Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Temperature sensor Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Temperature sensor Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 lightdependent resistor Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 lightdependent resistor Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Power Supply Circuit Microcontrollers & Robotics Franz Duran

Rapi. Duino Sword 3 Power Supply Circuit Microcontrollers & Robotics Franz Duran

BASIC ARDUINO PROGRAMMING & INTERFACING Microcontrollers & Robotics Franz Duran

BASIC ARDUINO PROGRAMMING & INTERFACING Microcontrollers & Robotics Franz Duran

LED Interfacing ØBuild an LED circuit ØInterface the LED circuit to the Arduino ØCreate

LED Interfacing ØBuild an LED circuit ØInterface the LED circuit to the Arduino ØCreate an Arduino program that will turn on the LED Microcontrollers & Robotics Franz Duran

What is an LED? ØLight-emitting diode o An electronic device that emit visible light

What is an LED? ØLight-emitting diode o An electronic device that emit visible light when activated. o Typically used as electrical status indicators Microcontrollers & Robotics Franz Duran

LED Interfacing Circuit schematic Microcontrollers & Robotics Franz Duran

LED Interfacing Circuit schematic Microcontrollers & Robotics Franz Duran

LED Circuit on breadboard Microcontrollers & Robotics Franz Duran

LED Circuit on breadboard Microcontrollers & Robotics Franz Duran

LED Circuit on Rapiduino Ø Connect LED 1 to Arduino Pin 7 Microcontrollers &

LED Circuit on Rapiduino Ø Connect LED 1 to Arduino Pin 7 Microcontrollers & Robotics Franz Duran

Arduino Environment Ø Open the Arduino programming environment Microcontrollers & Robotics Franz Duran

Arduino Environment Ø Open the Arduino programming environment Microcontrollers & Robotics Franz Duran

e pl am Ex Writing the Sketch 1 # void setup() { } void

e pl am Ex Writing the Sketch 1 # void setup() { } void loop() { } Microcontrollers & Robotics Franz Duran

e pl am 1 # void setup() { pin. Mode(7, OUTPUT); digital. Write(7, HIGH);

e pl am 1 # void setup() { pin. Mode(7, OUTPUT); digital. Write(7, HIGH); } Ex Writing the Sketch //Pin 7 is output pin. //LED is on. void loop() { } Microcontrollers & Robotics Franz Duran

e pl am 1 # void setup() { pin. Mode(7, OUTPUT); digital. Write(7, HIGH);

e pl am 1 # void setup() { pin. Mode(7, OUTPUT); digital. Write(7, HIGH); pin. Mode(5, OUTPUT); digital. Write(5, HIGH); } Ex Writing the Sketch //Pin 7 is output pin. //LED is on. void loop() { } Microcontrollers & Robotics Franz Duran

Writing the Sketch ØClick the Verify button Microcontrollers & Robotics Franz Duran

Writing the Sketch ØClick the Verify button Microcontrollers & Robotics Franz Duran

Steps for Uploading the Program 1. Connect the USB cable Note: Make sure USB-to-serial

Steps for Uploading the Program 1. Connect the USB cable Note: Make sure USB-to-serial driver is installed first Microcontrollers & Robotics Franz Duran

Steps for Uploading the Program 2. Power up the Rapiduino board Microcontrollers & Robotics

Steps for Uploading the Program 2. Power up the Rapiduino board Microcontrollers & Robotics Franz Duran

Steps for Uploading the Program 3. Select the COM port number of the Serial

Steps for Uploading the Program 3. Select the COM port number of the Serial Port Microcontrollers & Robotics Franz Duran

Steps for Uploading the Program 4. Select the Arduino Duemilanove w/ ATmega 328 board

Steps for Uploading the Program 4. Select the Arduino Duemilanove w/ ATmega 328 board Microcontrollers & Robotics Franz Duran

Steps for Uploading the Program 5. Press down the Reset button Microcontrollers & Robotics

Steps for Uploading the Program 5. Press down the Reset button Microcontrollers & Robotics Franz Duran

Steps for Uploading the Program 6. While Reset button is pressed, click the Upload

Steps for Uploading the Program 6. While Reset button is pressed, click the Upload button 7. Release the Reset button Microcontrollers & Robotics Franz Duran

Steps for Uploading the Program Wait… … until uploading is done. Microcontrollers & Robotics

Steps for Uploading the Program Wait… … until uploading is done. Microcontrollers & Robotics Franz Duran

Steps for experimenting with the Rapiduino 1. Assemble the Arduino application hardware o Use

Steps for experimenting with the Rapiduino 1. Assemble the Arduino application hardware o Use ordinary solid wires 2. Write the sketch program 3. Upload program to Arduino Microcontrollers & Robotics Franz Duran

e pl am //PIN 7 is 'renamed' as LED 1 1 # int LED

e pl am //PIN 7 is 'renamed' as LED 1 1 # int LED 1 Pin = 7; Ex Arduino Sketch void setup() { pin. Mode(LED 1 Pin, OUTPUT); digital. Write(LED 1 Pin, HIGH); } void loop() { //nothing. . . } Microcontrollers & Robotics Franz Duran

Arduino Program ØCalled as Sketch o A simplified combination of C/C++ programming language ØConsist

Arduino Program ØCalled as Sketch o A simplified combination of C/C++ programming language ØConsist of: o setup() function o loop() function Microcontrollers & Robotics Franz Duran

Arduino Program ØThe setup() function o The setup() function is called when a sketch

Arduino Program ØThe setup() function o The setup() function is called when a sketch program begins executing. o It is used to initialize variables, configure pin modes, begin using libraries, etc. o The setup() function will only run once, after each powerup or reset of the Arduino board. Microcontrollers & Robotics Franz Duran

Arduino Program ØThe loop() function o The loop() function repeatedly execute all codes appearing

Arduino Program ØThe loop() function o The loop() function repeatedly execute all codes appearing within its body. o Use it to actively control the Arduino board, i. e. read input, process information, send output Microcontrollers & Robotics Franz Duran

Arduino Program void setup() { //code 1 //code 2 } start code 1 code

Arduino Program void setup() { //code 1 //code 2 } start code 1 code 2 code 3 void loop() { //code 3 //code 4 //code 5 } code 4 code 5 Microcontrollers & Robotics Franz Duran

Ex LED Interfacing 2 # Configure Output pin e pl ØLED Blinker program am

Ex LED Interfacing 2 # Configure Output pin e pl ØLED Blinker program am start LED is off LED is on Time delay LED is off Time delay Microcontrollers & Robotics Franz Duran

Ex Arduino Sketch: LED Blinker e pl am 2 # int LED 1 Pin

Ex Arduino Sketch: LED Blinker e pl am 2 # int LED 1 Pin = 7; void setup() { pin. Mode(LED 1 Pin, OUTPUT); digital. Write(LED 1 Pin, LOW); } void loop() { digital. Write(LED 1 Pin, HIGH); delay(500); digital. Write(LED 1 Pin, LOW); delay(250); //Pin 7 is output pin //LED is initially low //Turn on LED. //Time delay for 0. 5 second. //Turn off LED. //Time delay for 0. 25 second. } Microcontrollers & Robotics Franz Duran

Button Switch Interfacing Ø Button switch: o a. k. a pushbutton or button o

Button Switch Interfacing Ø Button switch: o a. k. a pushbutton or button o Used as simple input devices Ø Common example: o Tact switches Microcontrollers & Robotics Franz Duran

Button Switch Interfacing Microcontrollers & Robotics Franz Duran

Button Switch Interfacing Microcontrollers & Robotics Franz Duran

Button Switch Interfacing Circuit on breadboard Microcontrollers & Robotics Franz Duran

Button Switch Interfacing Circuit on breadboard Microcontrollers & Robotics Franz Duran

Button Switch Interfacing Ø Program Description: o If button is pressed, turn on LED.

Button Switch Interfacing Ø Program Description: o If button is pressed, turn on LED. o Else, if button is not pressed, turn off LED. Ø Operation: o Button is connected to Pin 5 is configured as input pin o If button is pressed, Pin 5 reads Logic 0; else, if not pressed reads as Logic 1 Microcontrollers & Robotics Franz Duran

Button Switch Interfacing ØAssemble circuit on Rapiduino: o LED 1 Pin 7 o BUTTON

Button Switch Interfacing ØAssemble circuit on Rapiduino: o LED 1 Pin 7 o BUTTON 1 Pin 5 Microcontrollers & Robotics Franz Duran

Ex Arduino Sketch 3 # int LED = 7; int BUTTON = 5; e

Ex Arduino Sketch 3 # int LED = 7; int BUTTON = 5; e pl am void loop() { int Button. Stat; Button. Stat = digital. Read(BUTTON); void setup() { pin. Mode(BUTTON, INPUT); if(Button. Stat == LOW) { digital. Write(LED, HIGH); } else { digital. Write(LED, LOW); } pin. Mode(LED, OUTPUT); digital. Write(LED, LOW); } } Microcontrollers & Robotics Franz Duran

2 x 16 Character LCD Interfacing ØOutput device for displaying characters Ø 2 rows,

2 x 16 Character LCD Interfacing ØOutput device for displaying characters Ø 2 rows, 16 characters Microcontrollers & Robotics Franz Duran

2 x 16 Character LCD Interfacing Pin number Name Description 1 GND 2 +5

2 x 16 Character LCD Interfacing Pin number Name Description 1 GND 2 +5 V 3 VO Contrast Voltage 4 RS Register Select 5 RW Read/Write 6 EN Enable 7 D 0 Data Bit 0 8 D 1 Data Bit 1 9 D 2 Data Bit 2 10 D 3 Data Bit 3 11 D 4 Data Bit 4 12 D 5 Data Bit 5 13 D 6 Data Bit 6 14 D 7 Data Bit 7 15 LED_AN 16 LED_CA POWER Pins CONTROL Pins 1 16 DATA Pins BACKLIGHT LED pins LED Backlight cathode Microcontrollers & Robotics LED Backlight anode Franz Duran

2 x 16 Character LCD Interfacing Circuit on breadboard Microcontrollers & Robotics Franz Duran

2 x 16 Character LCD Interfacing Circuit on breadboard Microcontrollers & Robotics Franz Duran

2 x 16 Character LCD Interfacing Microcontrollers & Robotics Franz Duran

2 x 16 Character LCD Interfacing Microcontrollers & Robotics Franz Duran

2 x 16 Character LCD Interfacing ØAssemble circuit on Rapiduino: o LCD_RS Pin 12

2 x 16 Character LCD Interfacing ØAssemble circuit on Rapiduino: o LCD_RS Pin 12 o LCD_EN Pin 11 o LCD_D 4 Pin 14 o LCD_D 5 Pin 15 o LCD_D 6 Pin 16 o LCD_D 7 Pin 17 o LCD_RW Ground (NOTE: Short J 3 jumper) Microcontrollers & Robotics Franz Duran

Ex 2 x 16 Character LCD Interfacing e pl am Liquid. Crystal lcd(12, 11,

Ex 2 x 16 Character LCD Interfacing e pl am Liquid. Crystal lcd(12, 11, 14, 15, 16, 17); //lcd pins 4 # #include <Liquid. Crystal. h> void setup() { lcd. begin(16, 2); //set up the LCD's number of columns and rows: lcd. print("Rapi. Duino SWORD 3"); //Print a text on first line lcd. set. Cursor(1, 1); lcd. print("with Bluetooth!"); //Move cursor to 2 nd line //Print a text on second line } void loop() { //Do nothing. . . } Microcontrollers & Robotics Franz Duran

END Franz Duran

END Franz Duran