arduino programming part 1 - start [me...

20
ME 120: Arduino Programming Arduino Programming Part 1

Upload: lamduong

Post on 26-Mar-2018

235 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Arduino Programming Part 1

Page 2: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Overview

Arduino Environment

Basic code components

❖ Two required functions: setup() and loop()

❖ Variables

❖ Calling built-in functions

2

Page 3: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

References

These notes borrow from

❖ Arduino web site

‣ http://arduino.cc/en/Guide/Environment

‣ http://arduino.cc/en/Tutorial/HomePage

❖ Adafruit tutorial #1 and 2

‣ http://www.ladyada.net/learn/arduino/lesson2.html

❖ Leah Buechley’s Introduction to Arduino

‣ http://web.media.mit.edu/~leah/LilyPad/03_arduino_intro.html

3

Page 4: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Arduino Web Site References

Overview of the development environment

❖ http://www.arduino.cc/en/Guide/Environment

❖ https://learn.sparkfun.com/tutorials/redboard-hookup-guide

Language reference

❖ http://arduino.cc/en/Reference/HomePage

Code tutorials

❖ http://arduino.cc/en/Tutorial/HomePage

4

Page 5: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Basic Process

Design the circuit:

❖ What are electrical requirements of the sensors or

actuators?

❖ Identify analog inputs (sensors)

❖ Identify digital inputs & outputs (buttons, LEDs, relays)

Write the code

❖ Build incrementally

‣ Get the simplest piece to work first

‣ Add complexity and test at each stage

‣ Save and Backup frequently

❖ Use variables, not constants

❖ Comment liberally

5

Page 6: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Writing and Downloading Code

6

Write sketch on PC

Download sketch on Arduino

Page 7: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Running Code While Tethered

7

Run sketch on Arduino and send data back to PC

Arduino interacts with

its environment

Page 8: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Running Code Stand-Alone

8

Arduino interacts with

its environment and

runs on battery power

Run Arduino in stand alone mode

Page 9: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

When you open up the Arduino software

9

Page 10: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Open the example sketch,

blink.ino

10

Page 11: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Load “Blink” from the built-in examples

11

Page 12: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Arduino IDE

12

IDE = Integrated Development Environment

Page 13: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Common Code Structure

13

Page 14: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Code Structure: Header

14

Header provides information.

Can also contain code

Page 15: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Code Structure: setup function

15

setup function is executed

only once at the start

Page 16: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Code Structure: loop function

16

loop function is

repeated indefinitely

Page 17: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Details of the Blink Code

17

Page 18: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Code

18

pinMode(led, Output)

prepare pin number “led”

for outputs of voltage

“led” is a variable

int led = 13;

creates a variable named “led”

and stores 13 in that variable

Page 19: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Code

19

digitalWrite(led, HIGH)

Sets pin “led” to a value that

means the voltage is “on”

delay(1000);

tells microcontroller to do

nothing for 1000 ms = 1 s

Page 20: Arduino Programming Part 1 - start [ME 120]me120.mme.pdx.edu/lib/exe/...media=lecture:arduino_programming_1.pdfME 120: Arduino Programming Overview Arduino Environment Basic code components

ME 120: Arduino Programming

Code

20

digitalWrite(led, LOW)

Sets pin “led” to a value that

means the voltage is “off”

delay(1000);

tells microcontroller to do

nothing for 1000 ms = 1 s