introduction to microcontrollers using arduino · pic18f2550 −developed by microchip −with usb...
TRANSCRIPT
![Page 1: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/1.jpg)
Introduction to Microcontrollers Using Arduino
PhilPhilRoboticsRobotics
![Page 2: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/2.jpg)
Objectives
� Know what is a microcontroller� Learn the capabilities of a microcontroller� Understand how microcontroller execute
instructions
![Page 3: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/3.jpg)
Objectives
� Learn how to program a microcontroller using Arduino
– Configure a pin (Input, Output, Analog, PWM)
– Write Output State– Read Input State– Read Analog Input– Use PWM
![Page 4: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/4.jpg)
Microcontrollers
� History of Microcontrollers− 1971
� Intel 4004 was released� First microprocessor� Followed by 8008 and then 8080
− 1975� Intel 8048 was released� Intel President, Luke J. Valenter� First Microcontroller
![Page 5: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/5.jpg)
Microcontrollers
� History of Microcontrollers− 1976
� Zilog, founded by Federico Faggin
� Z80� Gameboy, TI Calculators
− 1979� Decided to shift to embedded
space� Introduced Z8
![Page 6: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/6.jpg)
Microcontrollers
� History of Microcontrollers− 1993
� Microchip� PIC16x84 was released� First with EEPROM program
memory− 1993
� Atmel � First microcontroller with Flash
memory
![Page 7: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/7.jpg)
Microcontrollers
� History of Microcontrollers− At present
� Several companies followed the use of flash memory
![Page 8: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/8.jpg)
Microcontrollers
� Abstract Definition− An IC (Integrated Circuit)− Configurable Pins− Programmable Function− With Built-in Memory
� RAM� ROM
![Page 9: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/9.jpg)
Microcontrollers
� Abstract Definition− An IC (Integrated Circuit)− Configurable Pins− Programmable Function− With Built-in Memory
� RAM� ROM
− Has Built-in Peripherals� Timer� ADC� UART/SPI/I2C� PWM� Comparators
![Page 10: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/10.jpg)
Popular Microcontrollers
� PIC16F84a− Developed by Microchip− Widely used by hobbyist in the late 90’s− Very basic function− Later replaced by pin compatible PIC16F628a
![Page 11: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/11.jpg)
Popular Microcontrollers
� PIC16F877a− Developed by Microchip− Greater pin count than PIC16F84a− Has ADC, PWM, UART− and is self programmable
![Page 12: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/12.jpg)
Popular Microcontrollers
� PIC18F2550− Developed by Microchip− With USB connectivity− Used on Pinguino (Arduino equivalent for PIC)
![Page 13: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/13.jpg)
Popular Microcontrollers
� AtMega168− Developed by Atmel− Widely used microcontroller on Arduino
![Page 14: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/14.jpg)
Atmega168
� Microcontroller Developed by Atmel� 8-bit Microcontroller� 28pins� 16Kbytes Flash Memory
� “Self-Programmable”
![Page 15: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/15.jpg)
Atmega168
![Page 16: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/16.jpg)
Atmega168
![Page 17: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/17.jpg)
Atmega168
![Page 18: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/18.jpg)
Atmega168
![Page 19: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/19.jpg)
Atmega168
![Page 20: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/20.jpg)
Atmega168
![Page 21: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/21.jpg)
Atmega168
![Page 22: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/22.jpg)
Basic Setup
� AtMega168
![Page 23: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/23.jpg)
Basic Setup
� Breadboard
![Page 24: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/24.jpg)
Basic Setup
� Supply
![Page 25: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/25.jpg)
Basic Setup
� Supply
![Page 26: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/26.jpg)
Basic Setup
� Crystal Oscillator
![Page 27: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/27.jpg)
Basic Setup
� Crystal Oscillator
![Page 28: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/28.jpg)
Basic Setup
� Resonator Bypass
![Page 29: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/29.jpg)
Basic Setup
� Resonator Bypass
![Page 30: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/30.jpg)
Basic Setup
� Reset Pullup
![Page 31: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/31.jpg)
Basic Setup
� Reset Pullup
![Page 32: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/32.jpg)
Basic Setup
� Filter Capacitor
![Page 33: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/33.jpg)
Basic Setup
� Filter Capacitor
![Page 34: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/34.jpg)
Basic Setup
� Bypass Capacitor
![Page 35: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/35.jpg)
Basic Setup
� Bypass Capacitor
![Page 36: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/36.jpg)
Basic Setup
� Reset Switch
![Page 37: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/37.jpg)
Basic Setup
� Reset Switch
![Page 38: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/38.jpg)
Basic Setup
� ADC Supply
![Page 39: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/39.jpg)
Atmega168
� Specifications− Pins
� 23 General Purpose IOs
![Page 40: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/40.jpg)
Outputs
![Page 41: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/41.jpg)
Outputs
![Page 42: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/42.jpg)
Outputs
![Page 43: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/43.jpg)
Outputs
![Page 44: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/44.jpg)
Outputs
![Page 45: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/45.jpg)
Outputs
![Page 46: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/46.jpg)
Inputs
![Page 47: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/47.jpg)
Inputs
![Page 48: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/48.jpg)
Inputs
![Page 49: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/49.jpg)
Atmega168
� Specifications− Pins
� 23 General Purpose IOs� 6 Channel 10bit ADC
![Page 50: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/50.jpg)
ADC
![Page 51: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/51.jpg)
ADC
![Page 52: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/52.jpg)
ADC
![Page 53: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/53.jpg)
ADC
![Page 54: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/54.jpg)
Atmega168
� Specifications− Pins
� 23 General Purpose IOs� 6 Channel 10bit ADC� 6 PWM Channels
− With Built-in Memory� 16 KBytes ROM� 1 KBytes RAM� 512 Bytes EEPROM
![Page 55: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/55.jpg)
Von Neuman
![Page 56: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/56.jpg)
Hardvard
![Page 57: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/57.jpg)
Programming Basic
� Challenge I− Instruct the robot to draw a 10cm x 10cm yellow
square starting 5cm from top and 5cm from the left side of the paper.
![Page 58: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/58.jpg)
Programming Basic
� Challenge II− Instruct the robot to draw that same square
mentioned on Challenge I 10 times more .
![Page 59: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/59.jpg)
Programming Basic
� Challenge III− Instruct the robot to draw that same square for
sets 10 pieces of paper forever …
![Page 60: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/60.jpg)
How MCU Execute Instructions
� Pipeline
![Page 61: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/61.jpg)
Who is Arduino?
![Page 62: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/62.jpg)
What is Arduino
� A project which began in Ivrea (Italy) in 2005– Massimo Banzi– David Cuartielles
� device for controlling student-built interaction design
– less expensive– more modern– than what is available– Basic Stamp
![Page 63: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/63.jpg)
What is Arduino
� Open Source Hardware –Based on Wiring
� Open Source Software–Based on Processing
� Multi-patform� Programmed via USB
![Page 64: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/64.jpg)
What is Arduino
� named the project after a local bar– italian masculine first name– "strong friend "– English equivalent is "Hardwin"
![Page 65: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/65.jpg)
What is Arduino
![Page 66: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/66.jpg)
What is Arduino
![Page 67: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/67.jpg)
Arduino
![Page 68: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/68.jpg)
Arduino
![Page 69: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/69.jpg)
Gizduino
![Page 70: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/70.jpg)
Getting Started with Arduino
� Arduino IDE
![Page 71: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/71.jpg)
Getting Started with Arduino
� Arduino IDE
![Page 72: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/72.jpg)
Getting Started with Arduino
� Arduino IDE– Homepage: http://arduino.cc/– Download: http://arduino.cc/en/Main/Software– arduino-00xx.zip
� Device Driver– Gizduino uses prolific chiphttp://www.prolific.com.tw/eng/downloads.asp?id=31
![Page 73: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/73.jpg)
Getting Started with Arduino
� Testing the Arduino– Run Clip 2...
![Page 74: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/74.jpg)
Getting Started with Arduino
� Virtual Breadboard
![Page 75: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/75.jpg)
Getting Started with Arduino
� Virtual Breadboard– Run clip 3...
![Page 76: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/76.jpg)
Getting Started with Arduino
� Virtual Breadboard– Homepage:
http://www.virtualbreadboard.net/– Download:
http://www.virtualbreadboard.net/Download/tabid/150/Default.aspx
![Page 77: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/77.jpg)
Getting Started with Arduino
� Virtual Breadboard– Dependencies
• Latest version of DirectX • .Net 2.0 Redistributable• J# 2.0 Redistributable• Java JRE 1.6 ( version 6)
![Page 78: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/78.jpg)
Getting Started with Arduino
� Source Code� Application� Programmer� Sketch� IDE (Integrated Design Environment)
![Page 79: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/79.jpg)
Arduino Programming
� Setup and Loop
void setup() {
}
void loop() { }
![Page 80: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/80.jpg)
Arduino Programming
� Setup()− called when a sketch starts running− use it to initialize
� variables, � pin modes, � start using libraries
− will only run once , after each powerup or reset of the Arduino board
![Page 81: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/81.jpg)
Arduino Programming
� Setup()int LEDPin;
void setup() {
LEDPin = 13;pinMode(LEDPin, OUTPUT); digitalWrite(LEDPin, LOW);
} void loop() {
}
![Page 82: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/82.jpg)
Arduino Programming
� Setup()int LEDPin;
void setup() {
LEDPin = 13;pinMode(LEDPin, OUTPUT); digitalWrite(LEDPin, LOW);
} void loop() {
}
![Page 83: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/83.jpg)
Arduino Programming
� Loop()− Executed repeatedly − Allows the program to change and respond.
![Page 84: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/84.jpg)
Arduino Programming
� Loop()int LEDPin;
// setup initializes the LED pin as output // and initially turned offvoid setup() {
LEDPin = 13;pinMode(LEDPin, OUTPUT); digitalWrite(LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 85: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/85.jpg)
Arduino Programming
� Loop()int LEDPin;
// setup initializes the LED pin as output // and initially turned off void setup() {
LEDPin = 13;pinMode(LEDPin, OUTPUT); digitalWrite(LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 86: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/86.jpg)
Arduino Programming
� Functions– a small set / group of instructions
designed to operate on its given input
Read more: http://wiki.answers.com/Q/What_is_function_in_C#ixzz1AhkkJ9RB
![Page 87: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/87.jpg)
Arduino Programming
� Functions
int get_Sum(int Var1, int Var2) {
return Var1 + Var2;}
return type function name parameter list
function expressions
![Page 88: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/88.jpg)
Arduino Programming
� Function name– Unique identifier for a function
� Parameter / Argument List– Inputs to a function
� Function Return– Output of a function
� Expressions– Describes what a function do
![Page 89: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/89.jpg)
Arduino Programming
� Calling a Functions
void loop(){
result = get_Sum(2,3);}
int get_Sum(int Var1, int Var2) { return Var1 + Var2;}
will give us a result of 5
functions must be defined before it can be used
![Page 90: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/90.jpg)
Arduino Programming
� Arduino Built-in Functions– Predefined functions to easily configure
Arduino• Pin Operation• Peripheral Operation
– shortcuts
![Page 91: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/91.jpg)
Arduino Programming
� pinMode(pin, mode)– Configures a digital pin to behave either as
an input or an output– pin: the pin number whose mode you wish to
set– mode: either INPUT or OUTPUT
� Example
pinMode(13, OUTPUT);
![Page 92: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/92.jpg)
Arduino Programming
� digitalWrite(pin, value)– Write a HIGH or a LOW value to a digital pin– pin: the pin number whose value you wish to
set– value: either HIGH or LOW
� Example
digitalWrite(13, HIGH);
![Page 93: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/93.jpg)
Arduino Programming
� digitalRead(pin)– Reads the value from a specified digital pin– pin: the digital pin number you want to read– returns either HIGH or LOW
� Example
result = digitalRead(13);
![Page 94: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/94.jpg)
Arduino Programming
� analogRead(pin)– Reads the value from a specified analog pin– pin: the analog pin number you want to read– returns an integer (0 to 1023)corresponding
to pin voltage� Example
result = analogRead(13); result = pinV * 1023/Vref
![Page 95: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/95.jpg)
Arduino Programming
� analogWrite(pin, value)– Writes an analog value (PWM wave) to a pin– pin will generate a steady square wave of the
specified duty cycle– 490 Hz
![Page 96: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/96.jpg)
Arduino Programming
� analogWrite(pin, value)– Can be used to vary
• Brightness of LED• Speed of the motor
– Output a sound• Low Pass Filter needed
![Page 97: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/97.jpg)
Arduino Programming
� analogWrite(pin, value)– pin: the pin to write to– value: the duty cycle: between 0 (always off)
and 255 (always on)� Example
analogWrite(9, 127); Duty_Cycle = value / 255 * 100% ~50% = 100 / 255 * 100%
![Page 98: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/98.jpg)
Arduino Programming
� analogWrite(pin, value)
![Page 99: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/99.jpg)
Arduino Programming
� delay(value)– Pauses the program for the amount of time– value: the number of milliseconds to pause
� Example
delay(1000); will pause for 1000ms, equivalent to 1sec pause
![Page 100: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/100.jpg)
Arduino Programming
� Blinking LED Exampleint LEDPin;
// setup initializes the LED pin as output // and initially turned off void setup() {
LEDPin = 13;pinMode(LEDPin, OUTPUT); digitalWrite(LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 101: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/101.jpg)
Arduino Programming
� Commentsint LEDPin;
// setup initializes the LED pin as output // and initially turned off void setup() {
LEDPin = 13;pinMode(LEDPin, OUTPUT); digitalWrite(LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 102: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/102.jpg)
Arduino Programming
� Commentsint LEDPin;
// setup initializes the LED pin as output // and initially turned off void setup() {
LEDPin = 13;pinMode(LEDPin, OUTPUT); digitalWrite(LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 103: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/103.jpg)
Arduino Programming
� Comments− Starts with characters ‘//’− Text after the start marker are ignored by the
compiler− This is for the programmer (person)
![Page 104: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/104.jpg)
Arduino Programming
int LEDPin;
// setup initializes the LED pin as output // and initially turned off void setup() {
LEDPin = 13;pinMode(LEDPin, OUTPUT); digitalWrite(LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 105: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/105.jpg)
Arduino Programming
� Variablesint LEDPin;
// setup initializes the LED pin as output // and initially turned off void setup() {
LEDPin = 13;pinMode( LEDPin, OUTPUT); digitalWrite( LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 106: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/106.jpg)
Arduino Programming
� Variablesint LEDPin;
// setup initializes the LED pin as output // and initially turned off void setup() {
LEDPin = 13;pinMode(LEDPin, OUTPUT); digitalWrite(LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 107: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/107.jpg)
Arduino Programming
� Variablesint LEDPin;
// setup initializes the LED pin as output // and initially turned off void setup() {
LEDPin = 13;pinMode(LEDPin, OUTPUT); digitalWrite(LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 108: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/108.jpg)
Arduino Programming
� Variables– memory location in RAM that carries a value
� Variables must be declared– name is chosen to uniquely identify a
variable– the type defines
• how much memory is used• and how it is stored
![Page 109: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/109.jpg)
Arduino Programming
� Data TypesType Description Sample
boolean boolean true, false
char character A-Z, a-z, CR, LF
unsigned char same as byte 0 -255
byte occupies 1 byte / 8bits 0 - 255
int integer, occupies 2 bytes / 16bit -32,768 to 32,767
unsigned int unsigned integer, occupies 2 bytes / 16bit 0 to 65,535
word same as unsigned int 0 to 65,535
long long integer, 4bytes / 32bits -2,147,483,648 to 2,147,483,647
unsigned long unsigned long integer, 4bytes / 32bits 0 to 4,294,967,295
float floating point, decimal point, 4bytes / 32bits 6-7 decimal digits
![Page 110: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/110.jpg)
Arduino Programming
� Declaring a Variables
int VariableName1;
![Page 111: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/111.jpg)
Arduino Programming
� Declaring a Variables
int VariableName1;
type name
![Page 112: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/112.jpg)
Arduino Programming
� Declaring a Variables
int VariableName1;byte VariableName2
type name
![Page 113: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/113.jpg)
Arduino Programming
� Declaring a Variables
int VariableName1;byte VariableName2 // not terminated by semicolon
type name
![Page 114: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/114.jpg)
Arduino Programming
� Declaring a Variables
int VariableName1;byte VariableName2 // not terminated by semicolonint VariableName3, VariableName4, VariableName5;
type name
![Page 115: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/115.jpg)
Arduino Programming
� Declaring a Variables
int VariableName1;byte VariableName2 // not terminated by semicolonint VariableName3, VariableName4, VariableName5;
type name
![Page 116: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/116.jpg)
Arduino Programming
� Declaring a Variables
int VariableName1;byte VariableName2 // not terminated by semicolonint VariableName3, VariableName4, VariableName5;void Variavle6;
data type name
![Page 117: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/117.jpg)
Arduino Programming
� Declaring a Variables
int VariableName1;byte VariableName2 // not terminated by semicolonint VariableName3, VariableName4, VariableName5;void Variavle6; // there is no void type
data type name
![Page 118: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/118.jpg)
Arduino Programming
� Naming a Variable– Starts with an alphabet character– No spaces, no special characters
int 1Delta;
![Page 119: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/119.jpg)
Arduino Programming
� Naming a Variable– Starts with an alphabet character– No spaces, no special characters
int 1Delta; // variable names cannot start // with numbers
![Page 120: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/120.jpg)
Arduino Programming
� Naming a Variable– Starts with an alphabet character– No spaces, no special characters
int 1Delta; // variable names cannot start // with numbers
byte Delta1;
![Page 121: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/121.jpg)
Arduino Programming
� Naming a Variable– Starts with an alphabet character– No spaces, no special characters
int 1Delta; // variable names cannot start // with numbers
byte Delta1;int Serial Number;
![Page 122: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/122.jpg)
Arduino Programming
� Naming a Variable– Starts with an alphabet character– No spaces, no special characters
int 1Delta; // variable names cannot start // with numbers
byte Delta1;int Serial Number; // must contain no spaces
// SerialNumber// Serial_Number
![Page 123: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/123.jpg)
Arduino Programming
� Naming a Variable– Starts with an alphabet character– No spaces, no special characters
int 1Delta; // variable names cannot start // with numbers
byte Delta1;int Serial Number; // must contain no spaces
// SerialNumber// Serial_Number
int Serial,Number;
![Page 124: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/124.jpg)
Arduino Programming
� Naming a Variable– Starts with an alphabet character– No spaces, no special characters
int 1Delta; // variable names cannot start // with numbers
byte Delta1;int Serial Number; // must contain no spaces
// SerialNumber// Serial_Number
int Serial,Number; // These are 2 different variab les// having an integer type
![Page 125: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/125.jpg)
Arduino Programming
� Assigning Valuesint LEDPin;
// setup initializes the LED pin as output // and initially turned off void setup() {
LEDPin = 13;pinMode(LEDPin, OUTPUT); digitalWrite(LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 126: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/126.jpg)
Arduino Programming
� Assigning Valuesint LEDPin;
// setup initializes the LED pin as output // and initially turned off void setup() {
LEDPin = 13;pinMode( LEDPin, OUTPUT); digitalWrite( LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 127: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/127.jpg)
Arduino Programming
� Assigning Valuesint LEDPin = 13;
// setup initializes the LED pin as output // and initially turned off void setup() {
pinMode( LEDPin, OUTPUT); digitalWrite( LEDPin, LOW);
} // loop checks the button pin each time, void loop() {
delay(500);digitalWrite(LEDPin, HIGH);delay(500);digitalWrite(LEDPin, LOW);
}
![Page 128: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/128.jpg)
Arduino Programming
� Decision Making– “if” statement– used to compare
• variable to a variable
if(variable1 > variable2){
function();}
• variable to a constant
if(variable1 > 2){
function();}
![Page 129: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/129.jpg)
Arduino Programming
� Decision Making– execute the statement enclosed between { }
if condition is satisfied
if(variable1 > variable2){ function1();}
function2();
![Page 130: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/130.jpg)
Arduino Programming
� Decision Making– Comparison operator
• Less than “<”• Greater than “>”• Equal “==”• Not equal “!=”• Less than or equal “<=”• Greater than or equal “>=”
![Page 131: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/131.jpg)
Arduino Programming
� Decision Making– “if/else” statement– execute the statement enclosed between { }
if condition is satisfied– execute the statement enclosed between { }
after “else” when not
if(variable1 > variable2){
function1();}else{
function2();}
![Page 132: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/132.jpg)
Arduino Programming
� Decision Making– Nested “if/else” statement
if(variable1 > variable2){
function1();}else if(variable1 < variable2){
function2();}
![Page 133: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/133.jpg)
Arduino Programming
� Decision Making– Nested “if/else” statement
if(variable1 > variable2){
function1();}else if(variable1 < variable2){
function2();}else{
function3();}
![Page 134: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/134.jpg)
Arduino Programming
� Blinking LED Exampleint LEDPin = 13;
void setup() {
pinMode(LEDPin, OUTPUT); // set pin 13 outputdigitalWrite(LEDPin, LOW); // Set initially to off
} void loop() {
delay(500);digitalWrite(LEDPin, HIGH); // Turn LED ondelay(500);
digitalWrite(LEDPin, LOW); // Turn LED off}
![Page 135: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/135.jpg)
Arduino Programming
� Blinking LED Exampleint LEDPin = 13, SWITCHPin = 12, PinState;
void setup() {
pinMode(LEDPin, OUTPUT); // set pin 13 outputdigitalWrite(LEDPin, LOW); // Set initially to off
pinMode(SWITCHPin, INPUT); // set pin 12 input} void loop() {
delay(500);digitalWrite(LEDPin, HIGH); // Turn LED ondelay(500);
digitalWrite(LEDPin, LOW); // Turn LED off PinState = digitalRead(SWITCHPin);}
![Page 136: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/136.jpg)
Arduino Programming
� Better Blinking LED Exampleint LEDPin = 13, SWITCHPin = 12, PinState, ledState;unsigned long previousMillis;
void setup() {
pinMode(LEDPin, OUTPUT); // set pin 13 outputdigitalWrite(LEDPin, LOW); // Set initially to off
pinMode(SWITCHPin, INPUT); // set pin 12 input} void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis >= 500) // chec k if >= 500mS { previousMillis = currentMillis; // initiali ze prev with current
// if the LED is off turn it on and vice-versa: if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; }
digitalWrite(LEDPin, ledState); // Turn LED on/off } PinState = digitalRead(SWITCHPin);}
![Page 137: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/137.jpg)
Arduino Programming
� Better Blinking LED Exampleint LEDPin = 13, SWITCHPin = 12, PinState, LEDState ;unsigned long previousMillis;
void setup() {
pinMode(LEDPin, OUTPUT); // set pin 13 outputdigitalWrite(LEDPin, LOW); // Set initially to off
pinMode(SWITCHPin, INPUT); // set pin 12 input} void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis >= 500) // chec k if >= 500mS { previousMillis = currentMillis; // initiali ze prev with current
// if the LED is off turn it on and vice-versa: if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; }
digitalWrite(LEDPin, ledState); // Turn LED on/off } PinState = digitalRead(SWITCHPin);}
![Page 138: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/138.jpg)
Arduino Programming
� Better Blinking LED Exampleint LEDPin = 13, SWITCHPin = 12, PinState, LEDState ;unsigned long previousMillis;
void setup() {
pinMode(LEDPin, OUTPUT); // set pin 13 outputdigitalWrite(LEDPin, LOW); // Set initially to off
pinMode(SWITCHPin, INPUT); // set pin 12 input} void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis >= 500) // check if >= 500mS { previousMillis = currentMillis; // initiali ze prev with current
// if the LED is off turn it on and vice-versa: if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; }
digitalWrite(LEDPin, ledState); // Turn LED on/off } PinState = digitalRead(SWITCHPin);}
![Page 139: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/139.jpg)
Arduino Programming
� Better Blinking LED Exampleint LEDPin = 13, SWITCHPin = 12, PinState, LEDState ;unsigned long previousMillis;
void setup() {
pinMode(LEDPin, OUTPUT); // set pin 13 outputdigitalWrite(LEDPin, LOW); // Set initially to off
pinMode(SWITCHPin, INPUT); // set pin 12 input} void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis >= 500) // check if >= 500mS { previousMillis = currentMillis; // initiali ze prev with current
// if the LED is off turn it on and vice-versa: if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; }
digitalWrite(LEDPin, ledState); // Turn LED on/off } PinState = digitalRead(SWITCHPin);}
![Page 140: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/140.jpg)
Arduino Programming
� Decision Making– Logical / boolean operator
• Logic AND && • Logic OR ||• Logic Not or Inversion !
![Page 141: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/141.jpg)
Arduino Programming
� Better Blinking LED Exampleint LEDPin = 13, SWITCHPin = 12, PinState, LEDState ;unsigned long previousMillis;
void setup() {
pinMode(LEDPin, OUTPUT); // set pin 13 outputdigitalWrite(LEDPin, LOW); // Set initially to off
pinMode(SWITCHPin, INPUT); // set pin 12 input} void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis >= 500) // chec k if >= 500mS { previousMillis = currentMillis; // initiali ze prev with current
// if the LED is off turn it on and vice-versa: if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; }
digitalWrite(LEDPin, ledState); // Turn LED on/off } PinState = digitalRead(SWITCHPin);}
![Page 142: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/142.jpg)
Arduino Programming
� Better Blinking LED Exampleint LEDPin = 13, SWITCHPin = 12, PinState;unsigned long previousMillis;boolean LEDOn;
void setup() {
pinMode(LEDPin, OUTPUT); // set pin 13 outputdigitalWrite(LEDPin, LOW); // Set initially to off
pinMode(SWITCHPin, INPUT); // set pin 12 input} void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis >= 500) // check if >= 500mS { previousMillis = currentMillis; // initiali ze prev with current
// if the LED is off turn it on and vice-versa: if (LEDOn) { LEDOn = false; } else { LEDOn = true; }
digitalWrite(LEDPin, LEDOn); // Turn LED on/off } PinState = digitalRead(SWITCHPin);}
![Page 143: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/143.jpg)
Arduino Programming
� Better Blinking LED Exampleint LEDPin = 13, SWITCHPin = 12, PinState;unsigned long previousMillis;boolean LEDOn, BlinkEnabled = TRUE;
void setup() {
pinMode(LEDPin, OUTPUT); // set pin 13 outputdigitalWrite(LEDPin, LOW); // Set initially to off
pinMode(SWITCHPin, INPUT); // set pin 12 input} void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis >= 500) // check if >= 500mS { previousMillis = currentMillis; // initiali ze prev with current
// if the LED is off turn it on and vice-versa: if (LEDOn && BlinkEnabled) { LEDOn = false; } else { LEDOn = true; }
digitalWrite(LEDPin, LEDOn); // Turn LED on/off } PinState = digitalRead(SWITCHPin);}
![Page 144: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/144.jpg)
Arduino Programming
� Better Blinking LED Exampleint LEDPin = 13, SWITCHPin = 12;unsigned long previousMillis;boolean LEDOn, BlinkEnabled;
void setup() {
pinMode(LEDPin, OUTPUT); // set pin 13 outputdigitalWrite(LEDPin, LOW); // Set initially to off
pinMode(SWITCHPin, INPUT); // set pin 12 input} void loop() { unsigned long currentMillis = millis(); if(currentMillis - previousMillis >= 500) // check if >= 500mS { previousMillis = currentMillis; // initiali ze prev with current
// if the LED is off turn it on and vice-versa: if (LEDOn && BlinkEnabled) { LEDOn = false; } else { LEDOn = true; }
digitalWrite(LEDPin, LEDOn); // Turn LED on/off } BlinkEnabled = !digitalRead(SWITCHPin);}
![Page 145: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/145.jpg)
Arduino Programming
� Looping– “for” loop– execute expressions enclosed between {}– continuously as long as a condition is
satisfied
for(i = 1; i <= 10; i++){ function(); }
Starting Count Limit Increment
![Page 146: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/146.jpg)
Arduino Programming
� Libraries#include <Servo.h> Servo myservo; // create servo object to control a servo // a maximum of eight servo objects can be created int pos = 0; // variable to store the servo posi tion void setup() { myservo.attach(9); // attaches the servo on pin 9 to the servo object } void loop() { for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees { // in steps of 1 degree myservo.write(pos); // tell servo to go to position in variable
'pos' delay(15); // waits 15ms for the servo to reach the
position } for(pos = 180; pos>=1; pos-=1) // goes from 1 80 degrees to 0 degrees { myservo.write(pos); // tell servo to go to position in variable
'pos' delay(15); // waits 15ms for the servo to reach the
position }
![Page 147: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/147.jpg)
Reference
� www.arduin.cc� Arduino Programming Notebook� Getting Started with Arduino 3rd Edition
![Page 148: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/148.jpg)
Beyond Arduino
![Page 149: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/149.jpg)
Beyond Arduino
� Processing
![Page 150: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/150.jpg)
Beyond Arduino
� Toolduino
![Page 151: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/151.jpg)
Beyond Arduino
� Mobile Processing
![Page 152: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/152.jpg)
Beyond Arduino
� S4A (Scratch for Arduino)
![Page 153: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/153.jpg)
Beyond Arduino
� P-Bot
![Page 154: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/154.jpg)
Beyond Arduino
� P-Bot
![Page 155: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/155.jpg)
Questions, Comments, Suggestions
� glutnix.neo on gmail� glutnix_neo → electronicslab.ph/forum
![Page 156: Introduction to Microcontrollers Using Arduino · PIC18F2550 −Developed by Microchip −With USB connectivity −Used on Pinguino (Arduino equivalent for PIC) Popular Microcontrollers](https://reader030.vdocuments.us/reader030/viewer/2022021522/5ba32f2609d3f208588d76e6/html5/thumbnails/156.jpg)
Arduino
End of Presentation01/22/11