arduino programming notebook

40
!"#$%&’ &’()*’’+ ! #$%&’’$()* ($+$($’,$ *"%!& -. )/!&0

Upload: armandobeckfilho

Post on 22-Dec-2015

22 views

Category:

Documents


1 download

DESCRIPTION

Programacao arduino

TRANSCRIPT

Page 1: Arduino Programming Notebook

!"#$%&'&'()*''+

!!"#$%&''$()*"($+$($',$

*"%!&,-.,)/!&0

Page 2: Arduino Programming Notebook

1"#$%&',2'()*''+3,1,4)5%&&)"60,7)8)")&9)"#$%%&'!(')!*+,-$.&)!/0!1#$('!"2!34('5

"$%6!$'7+#,(%$+'!+#!$'5-$#(%$+'!%(8&'!7#+,96%%-9::;;;2(#)<$'+2**6%%-9::;;;2;$#$'=2+#=2*+6%%-9::;;;2(#)<$'+2**:&':1++8.&%:>+,&?(=&6%%-9::*5.$/#(#025%('7+#)2&)<:@A@:

B'*.<)$'=!,(%&#$(.!;#$%%&'!/09C(55$,+!1('D$>&#'(')+!1(##(=$'E(4$)!F<(#%$&..&5G+,!B=+&G+))!H<#%E(4$)!C&..$5(')!+%6&#5

?</.$56&)9I$#5%!3)$%$+'!J<=<5%!KAAL

!"#$%&'(G6$5!;+#8!$5!.$*&'5&)!<')&#!%6&!F#&(%$4&!F+,,+'5!J%%#$/<%$+'MN+'*+,,&#*$(.MO6(#&!J.$8&!P2A!Q$*&'5&2!

G+!4$&;!(!*+-0!+7!%6$5!.$*&'5&R!4$5$%9!

6%%-9::*#&(%$4&*+,,+'52+#=:.$*&'5&5:/0M'*M5(:P2A:!

S#!5&')!(!.&%%&#!%+9!

F#&(%$4&!F+,,+'5@L@!O&*+')!O%#&&%R!O<$%&!PAAO('!I#('*$5*+R!F(.$7+#'$(R!TU@AVR!WOJ

Page 3: Arduino Programming Notebook

9'&()&(0

!"#$%"$#&

5%#<*%<#& "-

5&%<-XY "-

.++-XY "-

7<'*%$+'5 ".

Z[!*<#.0!/#(*&5 "/

\!5&,$*+.+' "/

:]^!]:!/.+*8!*+,,&'%5 01

::!.$'&!*+,,&'%5 01

'(#)(*+&!

4(#$(/.&5 00

4(#$(/.&!)&*.(#(%$+' 02

4(#$(/.&!5*+-& 03

,("("-.&!

/0%& 04

$'% 04

.+'= 04

7.+(% 04

(##(05 05

(#)"/0&")%

(#$%6,&%$* 06

*+,-+<')!(55$=',&'%5 06

*+,-(#$5+'!+-&#(%+#5 0-

.+=$*(.!+-&#(%+#5 0-

%12!"(2"!

*+'5%('%5 0.

%#<&:7(.5& 0.

6$=6:.+; 0.

$'-<%:+<%-<% 0.

Page 4: Arduino Programming Notebook

3+145%12"#1+

$7 0/

$7^!&.5& 21

7+# 20

;6$.& 22

)+^!;6$.& 22

,)6)"(+5)71

-$'C+)&X-$'R!,+)&Y 23

)$=$%(._&()X-$'Y 24

)$=$%(."#$%&X-$'R!4(.<&Y 24

(2(+165)71

('(.+=_&()X-$'Y 25

('(.+="#$%&X-$'R!4(.<&Y 26

")0&

)&.(0X,5Y 2-

,$..$5XY 2-

0("/

,$'X`R!0Y 2-

,(`X`R!0Y 2-

#(2,10

#(')+,O&&)X5&&)Y 2.

#(')+,X,$'R!,(`Y 2.

!&#)(+

O&#$(.2/&=$'X#(%&Y 2/

O&#$(.2-#$'%.'X)(%(Y 2/

(..&2,)8

)$=$%(.!+<%-<% 32

)$=$%(.!$'-<% 33

6$=6!*<##&'%!+<%-<% 34

-;,!+<%-<% 35

-+%&'%$+,&%&#!$'-<% 36

4(#$(/.&!#&5$5%+#!$'-<% 3-

5&#4+!+<%-<% 3.

Page 5: Arduino Programming Notebook

:")8!9)

G6$5!'+%&/++8!5&#4&5!(5!(!*+'4&'$&'%R!&(50!%+!<5&!*+,-('$+'!7+#!%6&!/&=$''&#!(5!%6&0!.&(#'!%+!-#+=#(,!%6&!J#)<$'+!,$*#+*+'%#+..&#2!B%!$5!$'%&')&)!%+!/&!(!5&*+')(#0!#&7&#&'*&!%+!/&!<5&)!(.+'=5$)&!+%6&#!;&/5$%&5R!/++85R!;+#856+-5R!+#!*.(55&52!G+!8&&-!$%!5$,-.&R!*&#%($'!&`*.<5$+'5!6(4&!.&()!%+!(!5.$=6%!&,-6(5$5!+'!<5$'=!%6&!,$*#+*+'%#+..&#!7+#!5%(')(.+'&!-<#-+5&5!(')R!7+#!&`(,-.&R!.&(4&5!+<%!%6&!,+#&!*+,-.&`!(##(05!+#!%6&!()4('*&)!7+#,5!+7!5&#$(.!*+,,<'$*(%$+'2

1&=$''$'=!;$%6!%6&!/(5$*!5%#<*%<#&!+7!J#)<$'+a5!F!)&#$4&)!-#+=#(,,$'=!.('=<(=&R!%6$5!#&7&#&'*&!*+'%$'<&5!+'!%+!)&5*#$/&!%6&!,+5%!*+,,+'!&.&,&'%5!(')!$..<5%#(%&!%6&$#!<5(=&!;$%6!&`(,-.&5!(')!*+)&!7#(=,&'%52!G6$5!$'*.<)&5!,('0!7<'*%$+'5!+7!%6&!*+#&!.$/#(#0!7+..+;&)!/0!('!(--&')$`!;$%6!5(,-.&!5*6&,(%$*5!(')!5%(#%&#!-#+=#(,52!G6&!7+#,(%!*+,-.$,&'%5!SbO<..$4('!(')!B=+&b5!!"#$%&'()*+,-./%01!;6&#&!-+55$/.&2!

I+#!('!$'%#+)<*%$+'!%+!%6&!J#)<$'+!(')!$'%&#(*%$4&!)&5$='R!#&7&#!%+!1('D$b5!23//%01)4/'5/36)7%/")856.%0+R!(8(!%6&!856.%0+)9++:(3/2!I+#!%6&!/#(4&!7&;!$'%&#&5%&)!$'!%6&!$'%#$*(*$&5!+7!-#+=#(,,$'=!$'!FR!H&#'$=6('!(')!_$%*6$&b5!;"3)*)!5+15',,%01)<'01.'13=!5&*+')!&)$%$+'R!(5!;&..!(5!?#$'D!(')!F#(;7+#)b5!*)%0)')>./$"3((=!-#+4$)&!5+,&!$'5$=6%!$'%+!%6&!-#+=#(,,$'=!50'%(`2

J/+4&!(..!&.5&R!%6$5!'+%&/++8!;+<.)!'+%!/&!-+55$/.&!;$%6+<%!%6&!=#&(%!*+,,<'$%0!+7!,(8&#5!(')!56&(#!,(55!+7!+#$=$'(.!,(%&#$(.!%+!/&!7+<')!$'!%6&!J#)<$'+!;&/5$%&R!-.(0=#+<')R!(')!7+#<,!(%!6%%-9::;;;2(#)<$'+2**2!!

!!

Page 6: Arduino Programming Notebook
Page 7: Arduino Programming Notebook

0("$9($")G6&!/(5$*!5%#<*%<#&!+7!%6&!J#)<$'+!-#+=#(,,$'=!.('=<(=&!$5!7($#.0!5$,-.&!(')!#<'5!$'!(%!.&(5%!%;+!-(#%52!G6&5&!%;+!#&c<$#&)!-(#%5R!+#!7<'*%$+'5R!&'*.+5&!/.+*85!+7!5%(%&,&'%52"""""78&9"*$:;<=>?""*:!:$@$':*AB

78&9"C88<=>?""*:!:$@$':*AB!

"6&#&!5&%<-XY!$5!%6&!-#&-(#(%$+'R!.++-XY!$5!%6&!&`&*<%$+'2!1+%6!7<'*%$+'5!(#&!#&c<$#&)!7+#!%6&!-#+=#(,!%+!;+#82

G6&!5&%<-!7<'*%$+'!56+<.)!7+..+;!%6&!)&*.(#(%$+'!+7!('0!4(#$(/.&5!(%!%6&!4&#0!/&=$''$'=!+7!%6&!-#+=#(,2!B%!$5!%6&!7$#5%!7<'*%$+'!%+!#<'!$'!%6&!-#+=#(,R!$5!#<'!+'.0!+'*&R!(')!$5!<5&)!%+!5&%!-$'C+)&!+#!$'$%$(.$D&!5&#$(.!*+,,<'$*(%$+'2!

G6&!.++-!7<'*%$+'!7+..+;5!'&`%!(')!$5!%6&!*+)&!%+!/&!&`&*<%&)!*+'%$'<+<5.0!d!#&()$'=!$'-<%5R!%#$==&#$'=!+<%-<%5R!&%*2!G6$5!7<'*%$+'!$5!%6&!*+#&!+7!(..!J#)<$'+!-#+=#(,5!(')!)+&5!%6&!/<.8!+7!%6&!;+#82!

0)($:;<G6&!5&%<-XY!7<'*%$+'!$5!*(..&)!+'*&!;6&'!0+<#!-#+=#(,!5%(#%52!W5&!$%!%+!$'$%$(.$D&!-$'!,+)&5R!+#!/&=$'!5&#$(.2!B%!,<5%!/&!$'*.<)&)!$'!(!-#+=#(,!&4&'!$7!%6&#&!(#&!'+!5%(%&,&'%5!%+!#<'2

78&9"*$:;<=>?""<&'D89$=<&'E"FGHIGH>A""""""JJ"*$:*":K$"L<&'L"!*"8;:<;:B

='':;<J7%&#!*(..$'=!%6&!5&%<-XY!7<'*%$+'R!%6&!.++-XY!7<'*%$+'!)+&5!-#&*$5&.0!;6(%!$%5!'(,&!5<==&5%5R!(')!.++-5!*+'5&*<%$4&.0R!(..+;$'=!0+<#!-#+=#(,!%+!*6('=&R!#&5-+')R!(')!*+'%#+.!%6&!J#)<$'+!/+(#)2!78&9"C88<=>?""9&%&:!CM(&:$=<&'E"NOPN>A"""JJ":;('*"L<&'L"8'""9$C!Q=0111>A"""""""""""""""JJ"<!;*$*"+8("8'$"*$,8'9""9&%&:!CM(&:$=<&'E"RFM>A""""JJ":;('*"L<&'L"8++""9$C!Q=0111>A"""""""""""""""JJ"<!;*$*"+8("8'$"*$,8'9B

*:(;,:;($"S"-

Page 8: Arduino Programming Notebook

8$&9(%'&0J!7<'*%$+'!$5!(!/.+*8!+7!*+)&!%6(%!6(5!(!'(,&!(')!(!/.+*8!+7!5%(%&,&'%5!%6(%!(#&!&`&*<%&)!;6&'!%6&!7<'*%$+'!$5!*(..&)2!G6&!7<'*%$+'5!4+$)!5&%<-XY!(')!4+$)!.++-XY!6(4&!(.#&()0!/&&'!)$5*<55&)!(')!+%6&#!/<$.%M$'!7<'*%$+'5!;$..!/&!)$5*<55&)!.(%&#2

F<5%+,!7<'*%$+'5!*('!/&!;#$%%&'!%+!-&#7+#,!#&-&%$%$4&!%(585!(')!#&)<*&!*.<%%&#!$'!(!-#+=#(,2!I<'*%$+'5!(#&!)&*.(#&)!/0!7$#5%!)&*.(#$'=!%6&!7<'*%$+'!%0-&2!G6$5!$5!%6&!%0-&!+7!4(.<&!%+!/&!#&%<#'&)!/0!%6&!7<'*%$+'!5<*6!(5!a$'%a!7+#!('!$'%&=&#!%0-&!7<'*%$+'2!B7!'+!4(.<&!$5!%+!/&!#&%<#'&)!%6&!7<'*%$+'!%0-&!;+<.)!/&!4+$)2!J7%&#!%0-&R!)&*.(#&!%6&!'(,&!=$4&'!%+!%6&!7<'*%$+'!(')!$'!-(#&'%6&5$5!('0!-(#(,&%&#5!/&$'=!-(55&)!%+!%6&!7<'*%$+'2

:Q<$"+;',:&8'T!@$=<!(!@$:$(*>?""*:!:$@$':*AB

G6&!7+..+;$'=!$'%&=&#!%0-&!7<'*%$+'!)&.(0e(.XY!$5!<5&)!%+!5&%!(!)&.(0!4(.<&!$'!(!-#+=#(,!/0!#&()$'=!%6&!4(.<&!+7!(!-+%&'%$+,&%&#2!B%!7$#5%!)&*.(#&5!(!.+*(.!4(#$(/.&!4R!5&%5!4!%+!%6&!4(.<&!+7!%6&!-+%&'%$+,&%&#!;6$*6!=$4&5!(!'<,/&#!/&%;&&'!AM@AKPR!%6&'!)$4$)&5!%6(%!4(.<&!/0!U!7+#!(!7$'(.!4(.<&!/&%;&&'!AMKVVR!(')!7$'(..0!#&%<#'5!%6(%!4(.<&!/(*8!%+!%6&!,($'!-#+=#(,2

&':"9$C!QU!C=>?""&':"7A"""""""""""""""""""JJ",($!:$":$@<8(!(Q"7!(&!#C$"L7L""7""V"!'!C8%W$!9=<8:>A""""JJ"($!9"<8:$':&8@$:$("7!C;$""7"JV"4A""""""""""""""""""JJ",8'7$(:*"1X0123":8"1X255""($:;('"7A""""""""""""""""JJ"($:;('"+&'!C"7!C;$B

."S"*:(;,:;($

Page 9: Arduino Programming Notebook

>?,9$"=@,*"!9)0F<#.0!/#(*&5!X(.5+!#&7&##&)!%+!(5!f<5%!g/#(*&5g!+#!g*<#.0!/#(*8&%5gY!)&7$'&!%6&!/&=$''$'=!(')!&')!+7!7<'*%$+'!/.+*85!(')!5%(%&,&'%!/.+*85!5<*6!(5!%6&!4+$)!.++-XY!7<'*%$+'!(')!%6&!7+#!(')!$7!5%(%&,&'%52!

:Q<$"+;',:&8'=>?""*:!:$@$':*AB!

J'!+-&'$'=!*<#.0!/#(*&!Z!,<5%!(.;(05!/&!7+..+;&)!/0!(!*.+5$'=!*<#.0!/#(*&![2!G6$5!$5!+7%&'!#&7&##&)!%+!(5!%6&!/#(*&5!/&$'=!/(.('*&)2!W'/(.('*&)!/#(*&5!*('!+7%&'!.&()!%+!*#0-%$*R!$,-&'&%#(/.&!*+,-$.&#!&##+#5!%6(%!*('!5+,&%$,&5!/&!6(#)!%+!%#(*8!)+;'!$'!(!.(#=&!-#+=#(,2

G6&!J#)<$'+!&'4$#+',&'%!$'*.<)&5!(!*+'4&'$&'%!7&(%<#&!%+!*6&*8!%6&!/(.('*&!+7!*<#.0!/#(*&52!h<5%!5&.&*%!(!/#(*&R!+#!&4&'!*.$*8!%6&!$'5&#%$+'!-+$'%!$,,&)$(%&.0!7+..+;$'=!(!/#(*&R!(')!$%5!.+=$*(.!*+,-('$+'!;$..!/&!6$=6.$=6%&)2!

A,0)B%9'='&J!5&,$*+.+'!,<5%!/&!<5&)!%+!&')!(!5%(%&,&'%!(')!5&-(#(%&!&.&,&'%5!+7!%6&!-#+=#(,2!J!5&,$*+.+'!$5!(.5+!<5&)!%+!5&-(#(%&!&.&,&'%5!$'!(!7+#!.++-2!

&':"Y"V"03A"""JJ"9$,C!($*"7!(&!#C$"LYL"!*":K$"&':$%$("03

2'()3,I+#=&%%$'=!%+!&')!(!.$'&!$'!(!5&,$*+.+'!;$..!#&5<.%!$'!(!*+,-$.&#!&##+#2!G6&!&##+#!%&`%!,(0!/&!+/4$+<5R!(')!#&7&#!%+!(!,$55$'=!5&,$*+.+'R!+#!$%!,(0!'+%2!B7!('!$,-&'&%#(/.&!+#!5&&,$'=.0!$..+=$*(.!*+,-$.&#!&##+#!*+,&5!<-R!+'&!+7!%6&!7$#5%!%6$'=5!%+!*6&*8!$5!(!,$55$'=!5&,$*+.+'R!'&(#!%6&!.$'&!;6&#&!%6&!*+,-$.&#!*+,-.($'&)2!

*:(;,:;($"S"/

Page 10: Arduino Programming Notebook

CDE,DC,*='9+,9'BB)&(01.+*8!*+,,&'%5R!+#!,<.%$M.$'&!*+,,&'%5R!(#&!(#&(5!+7!%&`%!$='+#&)!/0!%6&!-#+=#(,!(')!(#&!<5&)!7+#!.(#=&!%&`%!)&5*#$-%$+'5!+7!*+)&!+#!*+,,&'%5!%6(%!6&.-!+%6&#5!<')&#5%(')!-(#%5!+7!%6&!-#+=#(,2!G6&0!/&=$'!;$%6!:]!(')!&')!;$%6!]:!(')!*('!5-('!,<.%$-.&!.$'&52!

JZ"":K&*"&*"!'"$',C8*$9"#C8,[",8@@$':""""98'):"+8(%$:":K$",C8*&'%",8@@$':"X"""":K$Q"K!7$":8"#$"#!C!',$9\ZJ

1&*(<5&!*+,,&'%5!(#&!$='+#&)!/0!%6&!-#+=#(,!(')!%(8&!'+!,&,+#0!5-(*&!%6&0!56+<.)!/&!<5&)!=&'&#+<5.0!(')!*('!(.5+!/&!<5&)!%+!i*+,,&'%!+<%j!/.+*85!+7!*+)&!7+#!)&/<==$'=!-<#-+5&52!

2'()3,"6$.&!$%!$5!-+55$/.&!%+!&'*.+5&!5$'=.&!.$'&!*+,,&'%5!;$%6$'!(!/.+*8!*+,,&'%R!&'*.+5$'=!(!5&*+')!/.+*8!*+,,&'%!$5!'+%!(..+;&)2

CC,=%&),9'BB)&(0O$'=.&!.$'&!*+,,&'%5!/&=$'!;$%6!::!(')!&')!;$%6!%6&!'&`%!.$'&!+7!*+)&2!Q$8&!/.+*8!*+,,&'%5R!%6&0!(#&!$='+#&)!/0!%6&!-#+=#(,!(')!%(8&!'+!,&,+#0!5-(*&2

JJ":K&*"&*"!"*&'%C$"C&'$",8@@$':

O$'=.&!.$'&!*+,,&'%5!(#&!+7%&'!<5&)!(7%&#!(!4(.$)!5%(%&,&'%!%+!-#+4$)&!,+#&!$'7+#,(%$+'!(/+<%!;6(%!%6&!5%(%&,&'%!(**+,-.$56&5!+#!%+!-#+4$)&!(!7<%<#&!#&,$')&#2!

01"S"*:(;,:;($

Page 11: Arduino Programming Notebook

/!"%!*=)0J!4(#$(/.&!$5!(!;(0!+7!'(,$'=!(')!5%+#$'=!(!'<,&#$*(.!4(.<&!7+#!.(%&#!<5&!/0!%6&!-#+=#(,2!J5!%6&$#!'(,&5(8&!5<==&5%5R!4(#$(/.&5!(#&!'<,/&#5!%6(%!*('!/&!*+'%$'<(..0!*6('=&)!(5!+--+5&)!%+!*+'5%('%5!;6+5&!4(.<&!'&4&#!*6('=&52!J!4(#$(/.&!'&&)5!%+!/&!)&*.(#&)!(')!+-%$+'(..0!(55$='&)!%+!%6&!4(.<&!'&&)$'=!%+!/&!5%+#&)2!G6&!7+..+;$'=!*+)&!)&*.(#&5!(!4(#$(/.&!*(..&)!$'-<%e(#$(/.&!(')!%6&'!(55$='5!$%!%6&!4(.<&!+/%($'&)!+'!('(.+=!$'-<%!-$'!K9

&':"&'<;:U!(&!#C$"V"1A"""""""""JJ"9$,C!($*"!"7!(&!#C$"!'9""""""""""""""""""""""""""""""""JJ"!**&%'*"7!C;$"8+"1&'<;:U!(&!#C$"V"!'!C8%W$!9=2>A"JJ"*$:"7!(&!#C$":8"7!C;$"8+""""""""""""""""""""""""""""""""JJ"!'!C8%"<&'"2

k$'-<%e(#$(/.&b!$5!%6&!4(#$(/.&!$%5&.72!G6&!7$#5%!.$'&!)&*.(#&5!%6(%!$%!;$..!*+'%($'!('!$'%R!56+#%!7+#!$'%&=&#2!G6&!5&*+')!.$'&!5&%5!%6&!4(#$(/.&!%+!%6&!4(.<&!(%!('(.+=!-$'!K2!G6$5!,(8&5!%6&!4(.<&!+7!-$'!K!(**&55$/.&!&.5&;6&#&!$'!%6&!*+)&2

S'*&!(!4(#$(/.&!6(5!/&&'!(55$='&)R!+#!#&M(55$='&)R!0+<!*('!%&5%!$%5!4(.<&!%+!5&&!$7!$%!,&&%5!*&#%($'!*+')$%$+'5R!+#!0+<!*('!<5&!$%5!4(.<&!)$#&*%.02!J5!('!&`(,-.&!%+!$..<5%#(%&!%6#&&!<5&7<.!+-&#(%$+'5!;$%6!4(#$(/.&5R!%6&!7+..+;$'=!*+)&!%&5%5!;6&%6&#!%6&!$'-<%e(#$(/.&!$5!.&55!%6('!@AAR!$7!%#<&!$%!(55$='5!%6&!4(.<&!@AA!%+!$'-<%e(#$(/.&R!(')!%6&'!5&%5!(!)&.(0!/(5&)!+'!$'-<%e(#$(/.&!;6$*6!$5!'+;!(!,$'$,<,!+7!@AA9

&+"=&'<;:U!(&!#C$"]"011>"JJ":$*:*"7!(&!#C$"&+"C$**":K!'"011?""&'<;:U!(&!#C$"V"011A"""JJ"&+":(;$"!**&%'*"7!C;$"8+"011B9$C!Q=&'<;:U!(&!#C$>A""""JJ";*$*"7!(&!#C$"!*"9$C!Q"

2'()3!e(#$(/.&5!56+<.)!/&!=$4&'!)&5*#$-%$4&!'(,&5R!%+!,(8&!%6&!*+)&!,+#&!#&()(/.&2!e(#$(/.&!'(,&5!.$8&!%$.%O&'5+#!+#!-<561<%%+'!6&.-!%6&!-#+=#(,,&#!(')!('0+'&!&.5&!#&()$'=!%6&!*+)&!%+!<')&#5%(')!;6(%!%6&!4(#$(/.&!#&-#&5&'%52!e(#$(/.&!'(,&5!.$8&!4(#!+#!4(.<&R!+'!%6&!+%6&#!6(')R!)+!.$%%.&!%+!,(8&!%6&!*+)&!#&()(/.&!(')!(#&!+'.0!<5&)!6&#&!(5!&`(,-.&52!J!4(#$(/.&!*('!/&!'(,&)!('0!;+#)!%6(%!$5!'+%!(.#&()0!+'&!+7!%6&!8&0;+#)5!$'!%6&!J#)<$'+!.('=<(=&2

7!(&!#C$*"S"00

Page 12: Arduino Programming Notebook

/!"%!*=),#)9=!"!(%'&J..!4(#$(/.&5!6(4&!%+!/&!)&*.(#&)!/&7+#&!%6&0!*('!/&!<5&)2!E&*.(#$'=!(!4(#$(/.&!,&('5!)&7$'$'=!$%5!4(.<&!%0-&R!(5!$'!$'%R!.+'=R!7.+(%R!&%*2R!5&%%$'=!(!5-&*$7$&)!'(,&R!(')!+-%$+'(..0!(55$='$'=!('!$'$%$(.!4(.<&2!G6$5!+'.0!'&&)5!%+!/&!)+'&!+'*&!$'!(!-#+=#(,!/<%!%6&!4(.<&!*('!/&!*6('=&)!(%!('0!%$,&!<5$'=!(#$%6,&%$*!(')!4(#$+<5!(55$=',&'%52!

G6&!7+..+;$'=!&`(,-.&!)&*.(#&5!%6(%!$'-<%e(#$(/.&!$5!('!$'%R!+#!$'%&=&#!%0-&R!(')!%6(%!$%5!$'$%$(.!4(.<&!&c<(.5!D&#+2!G6$5!$5!*(..&)!(!5$,-.&!(55$=',&'%2

&':"&'<;:U!(&!#C$"V"1A

J!4(#$(/.&!*('!/&!)&*.(#&)!$'!(!'<,/&#!+7!.+*(%$+'5!%6#+<=6+<%!%6&!-#+=#(,!(')!;6&#&!%6$5!)&7$'$%$+'!%(8&5!-.(*&!)&%&#,$'&5!;6(%!-(#%5!+7!%6&!-#+=#(,!*('!<5&!%6&!4(#$(/.&2

02"S"7!(&!#C$*

Page 13: Arduino Programming Notebook

/!"%!*=),09':)J!4(#$(/.&!*('!/&!)&*.(#&)!(%!%6&!/&=$''$'=!+7!%6&!-#+=#(,!/&7+#&!4+$)!5&%<-XYR!.+*(..0!$'5$)&!+7!7<'*%$+'5R!(')!5+,&%$,&5!;$%6$'!(!5%(%&,&'%!/.+*8!5<*6!(5!7+#!.++-52!"6&#&!%6&!4(#$(/.&!$5!)&*.(#&)!)&%&#,$'&5!%6&!4(#$(/.&!5*+-&R!+#!%6&!(/$.$%0!+7!*&#%($'!-(#%5!+7!(!-#+=#(,!%+!,(8&!<5&!+7!%6&!4(#$(/.&2

J!=.+/(.!4(#$(/.&!$5!+'&!%6(%!*('!/&!5&&'!(')!<5&)!/0!&4&#0!7<'*%$+'!(')!5%(%&,&'%!$'!(!-#+=#(,2!G6$5!4(#$(/.&!$5!)&*.(#&)!(%!%6&!/&=$''$'=!+7!%6&!-#+=#(,R!/&7+#&!%6&!5&%<-XY!7<'*%$+'2

J!.+*(.!4(#$(/.&!$5!+'&!%6(%!$5!)&7$'&)!$'5$)&!(!7<'*%$+'!+#!(5!-(#%!+7!(!7+#!.++-2!B%!$5!+'.0!4$5$/.&!(')!*('!+'.0!/&!<5&)!$'5$)&!%6&!7<'*%$+'!$'!;6$*6!$%!;(5!)&*.(#&)2!B%!$5!%6&#&7+#&!-+55$/.&!%+!6(4&!%;+!+#!,+#&!4(#$(/.&5!+7!%6&!5(,&!'(,&!$'!)$77&#&'%!-(#%5!+7!%6&!5(,&!-#+=#(,!%6(%!*+'%($'!)$77&#&'%!4(.<&52!3'5<#$'=!%6(%!+'.0!+'&!7<'*%$+'!6(5!(**&55!%+!$%5!4(#$(/.&5!5$,-.$7$&5!%6&!-#+=#(,!(')!#&)<*&5!%6&!-+%&'%$(.!7+#!-#+=#(,,$'=!&##+#52

G6&!7+..+;$'=!&`(,-.&!56+;5!6+;!%+!)&*.(#&!(!7&;!)$77&#&'%!%0-&5!+7!4(#$(/.&5!(')!)&,+'5%#(%&5!&(*6!4(#$(/.&b5!4$5$/$.$%09

&':"7!C;$A"""""""""""""""JJ"L7!C;$L"&*"7&*&#C$""""""""""""""""""""""""""JJ":8"!'Q"+;',:&8'78&9"*$:;<=>?""JJ"'8"*$:;<"'$$9$9B

78&9"C88<=>?""+8("=&':"&V1A"&]21A>""JJ"L&L"&*"8'CQ"7&*&#C$""?"""""""""""""""""""""JJ"&'*&9$":K$"+8(XC88<""""&^^A"""""""""""""""""B""+C8!:"+A""""""""""""""JJ"L+L"&*"8'CQ"7&*&#C$B"""""""""""""""""""""""JJ"&'*&9$"C88<

7!(&!#C$*"S"03

Page 14: Arduino Programming Notebook

*@()10%&!5%+#&5!('!lM/$%!'<,&#$*(.!4(.<&!;$%6+<%!)&*$,(.!-+$'%52!G6&0!6(4&!(!#('=&!+7!AMKVV2

#Q:$"*8@$U!(&!#C$"V"0.1A"""JJ"9$,C!($*"L*8@$U!(&!#C$L""""""""""""""""""""""""""""JJ"!*"!"#Q:$":Q<$

%&(B'%&=&#5!(#&!%6&!-#$,(#0!)(%(%0-&!7+#!5%+#(=&!+7!'<,/&#5!;$%6+<%!)&*$,(.!-+$'%5!(')!5%+#&!(!@mM/$%!4(.<&!;$%6!(!#('=&!+7!PKRLmL!%+!MPKRLml2

&':"*8@$U!(&!#C$"V"0511A"""JJ"9$,C!($*"L*8@$U!(&!#C$L""""""""""""""""""""""""""""JJ"!*"!'"&':$%$(":Q<$"

2'()3,B'%&=&#!4(#$(/.&5!;$..!#+..!+4&#!$7!7+#*&)!-(5%!%6&$#!,(`$,<,!+#!,$'$,<,!4(.<&5!/0!('!(55$=',&'%!+#!*+,-(#$5+'2!I+#!&`(,-.&R!$7!Y"V"32-6-!(')!(!5</5&c<&'%!5%(%&,&'%!())5!@!%+!`R!Y"V"Y"^"0"8("Y^^R!`!;$..!%6&'!#+..+4&#!(')!&c<(.!MPKRLml2

='&53`%&')&)!5$D&!)(%(%0-&!7+#!.+'=!$'%&=&#5R!;$%6+<%!)&*$,(.!-+$'%5R!5%+#&)!$'!(!PKM/$%!4(.<&!;$%6!(!#('=&!+7!KR@ULRUlPRmUL!%+!MKR@ULRUlPRmUl2!

C8'%"*8@$U!(&!#C$"V"/1111A"JJ"9$,C!($*"L*8@$U!(&!#C$L""""""""""""""""""""""""""""JJ"!*"!"C8'%":Q<$

8='!(J!)(%(%0-&!7+#!7.+(%$'=M-+$'%!'<,/&#5R!+#!'<,/&#5!%6(%!6(4&!(!)&*$,(.!-+$'%2!I.+(%$'=M-+$'%!'<,/&#5!6(4&!=#&(%&#!#&5+.<%$+'!%6('!$'%&=&#5!(')!(#&!5%+#&)!(5!(!PKM/$%!4(.<&!;$%6!(!#('=&!+7!P2UAKlKPV3nPl!%+!MP2UAKlKPV3nPl2

+C8!:"*8@$U!(&!#C$"V"3_04A"JJ"9$,C!($*"L*8@$U!(&!#C$L"""""""""""""""""""""""""""JJ"!*"!"+C8!:&'%X<8&':":Q<$!2'()3,I.+(%$'=M-+$'%!'<,/&#5!(#&!'+%!&`(*%R!(')!,(0!0$&.)!5%#('=&!#&5<.%5!;6&'!*+,-(#&)2!I.+(%$'=!-+$'%!,(%6!$5!(.5+!,<*6!5.+;&#!%6('!$'%&=&#!,(%6!$'!-&#7+#,$'=!*(.*<.(%$+'5R!5+!56+<.)!/&!(4+$)&)!$7!-+55$/.&2

04"S"9!:!:Q<$*

Page 15: Arduino Programming Notebook

!""!@0J'!(##(0!$5!(!*+..&*%$+'!+7!4(.<&5!%6(%!(#&!(**&55&)!;$%6!('!$')&`!'<,/&#2!J'0!4(.<&!$'!%6&!(##(0!,(0!/&!*(..&)!<-+'!/0!*(..$'=!%6&!'(,&!+7!%6&!(##(0!(')!%6&!$')&`!'<,/&#!+7!%6&!4(.<&2!J##(05!(#&!D&#+!$')&`&)R!;$%6!%6&!7$#5%!4(.<&!$'!%6&!(##(0!/&=$''$'=!(%!$')&`!'<,/&#!A2!J'!(##(0!'&&)5!%+!/&!)&*.(#&)!(')!+-%$+'(..0!(55$='&)!4(.<&5!/&7+#&!%6&0!*('!/&!<5&)2

&':"@Q`((!Qab"V"?7!C;$1E"7!C;$0E"7!C;$2___B

Q$8&;$5&!$%!$5!-+55$/.&!%+!)&*.(#&!('!(##(0!/0!)&*.(#$'=!%6&!(##(0!%0-&!(')!5$D&!(')!.(%&#!(55$='!4(.<&5!%+!('!$')&`!-+5$%$+'9

&':"@Q`((!Qa5bA""""JJ"9$,C!($*"&':$%$("!((!Q"cJ"6"<8*&:&8'*@Q`((!Qa3b"V"01A"""JJ"!**&%'*":K$"4:K"&'9$Y":K$"7!C;$"01

G+!#&%#$&4&!(!4(.<&!7#+,!('!(##(0R!(55$='!(!4(#$(/.&!%+!%6&!(##(0!(')!$')&`!-+5$%$+'9

Y"V"@Q`((!Qa3bA""""JJ"Y"'8c"$d;!C*"01

J##(05!(#&!+7%&'!<5&)!$'!7+#!.++-5R!;6&#&!%6&!$'*#&,&'%!*+<'%&#!$5!(.5+!<5&)!(5!%6&!$')&`!-+5$%$+'!7+#!&(*6!(##(0!4(.<&2!G6&!7+..+;$'=!&`(,-.&!<5&5!('!(##(0!%+!7.$*8&#!('!Q3E2!W5$'=!(!7+#!.++-R!%6&!*+<'%&#!/&=$'5!(%!AR!;#$%&5!%6&!4(.<&!*+'%($'&)!(%!$')&`!-+5$%$+'!A!$'!%6&!(##(0!7.$*8&#opR!$'!%6$5!*(5&!@lAR!%+!%6&!?"C!-$'!@AR!-(<5&5!7+#!KAA,5R!%6&'!,+4&5!%+!%6&!'&`%!$')&`!-+5$%$+'2

&':"C$9I&'"V"01A"""""""""""""""""""""JJ"Ref"8'"<&'"01#Q:$"+C&,[$(ab"V"?0.1E"31E"255E"211E"01E"/1E"051E"61BA"""""""""""""""""""""""""""JJ"!((!Q"8+"."9&++$($':"7!C;$*78&9"*$:;<=>?""<&'D89$=C$9I&'E"FGHIGH>A"""""""""""JJ"*$:*"FGHIGH"<&'B

78&9"C88<=>?""+8(=&':"&V1A"&]/A"&^^>"""""""""""""JJ"C88<"$d;!C*"';@#$(""?""""""""""""""""""""""""""""""""""JJ"8+"7!C;$*"&'"!((!Q""""!'!C8%M(&:$=C$9I&'E"+C&,[$(a&b>A"JJ"c(&:$"&'9$Y"7!C;$""""9$C!Q=211>A""""""""""""""""""""""JJ"<!;*$"211@*""BB

9!:!:Q<$*"S"05

Page 16: Arduino Programming Notebook

!"%(FB)(%9J#$%6,&%$*!+-&#(%+#5!$'*.<)&!())$%$+'R!5</%#(*%$+'R!,<.%$-.$*(%$+'R!(')!)$4$5$+'2!G6&0!#&%<#'!%6&!5<,R!)$77&#&'*&R!-#+)<*%R!+#!c<+%$&'%!X#&5-&*%$4&.0Y!+7!%;+!+-&#(')52

Q"V"Q"^"3AY"V"Y"X"-A&"V"g"Z"6A("V"("J"5A

G6&!+-&#(%$+'!$5!*+')<*%&)!<5$'=!%6&!)(%(!%0-&!+7!%6&!+-&#(')5R!5+R!7+#!&`(,-.&R!T!:!U!#&5<.%5!$'!K!$'5%&()!+7!K2KV!5$'*&!T!(')!U!(#&!$'%5!(')!(#&!$'*(-(/.&!+7!<5$'=!)&*$,(.!-+$'%52!G6$5!(.5+!,&('5!%6(%!%6&!+-&#(%$+'!*('!+4&#7.+;!$7!%6&!#&5<.%!$5!.(#=&#!%6('!;6(%!*('!/&!5%+#&)!$'!%6&!)(%(!%0-&2!

B7!%6&!+-&#(')5!(#&!+7!)$77&#&'%!%0-&5R!%6&!.(#=&#!%0-&!$5!<5&)!7+#!%6&!*(.*<.(%$+'2!I+#!&`(,-.&R!$7!+'&!+7!%6&!'<,/&#5!X+-&#(')5Y!(#&!+7!%6&!%0-&!7.+(%!(')!%6&!+%6&#!+7!%0-&!$'%&=&#R!7.+(%$'=!-+$'%!,(%6!;$..!/&!<5&)!7+#!%6&!*(.*<.(%$+'2

F6++5&!4(#$(/.&!5$D&5!%6(%!(#&!.(#=&!&'+<=6!%+!6+.)!%6&!.(#=&5%!#&5<.%5!7#+,!0+<#!*(.*<.(%$+'52!H'+;!(%!;6(%!-+$'%!0+<#!4(#$(/.&!;$..!#+..+4&#!(')!(.5+!;6(%!6(--&'5!$'!%6&!+%6&#!)$#&*%$+'!&2=2!XA!M!@Y!S_!XA!M!M!PKLmlY2!I+#!,(%6!%6(%!#&c<$#&5!7#(*%$+'5R!<5&!7.+(%!4(#$(/.&5R!/<%!/&!(;(#&!+7!%6&$#!)#(;/(*859!.(#=&!5$D&R!5.+;!*+,-<%(%$+'!5-&&)52!

2'()3,W5&!%6&!*(5%!+-&#(%+#!&2=2!X$'%Y,0I.+(%!%+!*+'4&#%!+'&!4(#$(/.&!%0-&!%+!('+%6&#!+'!%6&!7.02!I+#!&`(,-.&R!&"V"=&':>3_6!;$..!5&%!$!&c<(.!%+!P2

9'B:'$&#,!00%5&B)&(0F+,-+<')!(55$=',&'%5!*+,/$'&!('!(#$%6,&%$*!+-&#(%$+'!;$%6!(!4(#$(/.&!(55$=',&'%2!G6&5&!(#&!*+,,+'.0!7+<')!$'!7+#!.++-5!(5!)&5*#$/&)!.(%&#2!G6&!,+5%!*+,,+'!*+,-+<')!(55$=',&'%5!$'*.<)&9

Y"^^""""""JJ"*!@$"!*"Y"V"Y"^"0E"8("&',($@$':*"Y"#Q"^0Y"XX """"JJ"*!@$"!*"Y"V"Y"X"0E"8("9$,($@$':*"Y"#Q"X0Y"^V"Q""""JJ"*!@$"!*"Y"V"Y"^"QE"8("&',($@$':*"Y"#Q"^QY"XV"Q""""JJ"*!@$"!*"Y"V"Y"X"QE"8("9$,($@$':*"Y"#Q"XQY"ZV"Q""""JJ"*!@$"!*"Y"V"Y"Z"QE"8("@;C:&<C&$*"Y"#Q"QY"JV"Q""""JJ"*!@$"!*"Y"V"Y"J"QE"8("9&7&9$*"Y"#Q"Q

2'()3!I+#!&`(,-.&R!`!]q!P!;+<.)!%#$-.&!%6&!+.)!4(.<&!+7!`!(')!#&M(55$='!%6&!#&5<.%$'=!4(.<&!%+!`2

06"S"!(&:K@$:&,

Page 17: Arduino Programming Notebook

9'B:!"%0'&,':)"!('"0F+,-(#$5+'5!+7!+'&!4(#$(/.&!+#!*+'5%('%!(=($'5%!('+%6&#!(#&!+7%&'!<5&)!$'!$7!5%(%&,&'%5!%+!%&5%!$7!(!5-&*$7$&)!*+')$%$+'!$5!%#<&2!B'!%6&!&`(,-.&5!7+<')!+'!%6&!7+..+;$'=!-(=&5R!rr!$5!<5&)!%+!$')$*(%&!('0!+7!%6&!7+..+;$'=!*+')$%$+'59

Y"VV"Q""""JJ"Y"&*"$d;!C":8"QY"\V"Q""""JJ"Y"&*"'8:"$d;!C":8"QY"]""Q""""JJ"Y"&*"C$**":K!'"Q""Y"h""Q""""JJ"Y"&*"%($!:$(":K!'"Q"Y"]V"Q""""JJ"Y"&*"C$**":K!'"8("$d;!C":8"Q"Y"hV"Q""""JJ"Y"&*"%($!:$(":K!'"8("$d;!C":8"Q

='5%9!=,':)"!('"0Q+=$*(.!+-&#(%+#5!(#&!<5<(..0!(!;(0!%+!*+,-(#&!%;+!&`-#&55$+'5!(')!#&%<#'!(!G_W3!+#!IJQO3!)&-&')$'=!+'!%6&!+-&#(%+#2!G6&#&!(#&!%6#&&!.+=$*(.!+-&#(%+#5R!JNER!S_R!(')!NSGR!%6(%!(#&!+7%&'!<5&)!$'!$7!5%(%&,&'%59

Q+=$*(.!JNE9&+"=Y"h"1"ii"Y"]"5>""""JJ":(;$"8'CQ"&+"#8:K"""""""""""""""""""""""JJ"$Y<($**&8'*"!($":(;$

Q+=$*(.!S_9&+"=Y"h"1"SS"Q"h"1>""""JJ":(;$"&+"$&:K$(""""""""""""""""""""""""JJ"$Y<($**&8'"&*":(;$

Q+=$*(.!NSG9&+"=\Y"h"1>""""""""""""JJ":(;$"8'CQ"&+""""""""""""""""""""""""JJ"$Y<($**&8'"&*"+!C*$

!!

!(&:K@$:&,"S"0-

Page 18: Arduino Programming Notebook

9'&0(!&(0G6&!J#)<$'+!.('=<(=&!6(5!(!7&;!-#&)&7$'&)!4(.<&5R!;6$*6!(#&!*(..&)!*+'5%('%52!G6&0!(#&!<5&)!%+!,(8&!%6&!-#+=#(,5!&(5$&#!%+!#&()2!F+'5%('%5!(#&!*.(55$7$&)!$'!=#+<-52

("$)C8!=0)G6&5&!(#&!1++.&('!*+'5%('%5!%6(%!)&7$'&!.+=$*!.&4&.52!IJQO3!$5!&(5$.0!)&7$'&)!(5!A!XD&#+Y!;6$.&!G_W3!$5!+7%&'!)&7$'&)!(5!@R!/<%!*('!(.5+!/&!('0%6$'=!&.5&!&`*&-%!D&#+2!O+!$'!(!1++.&('!5&'5&R!M@R!KR!(')!MKAA!(#&!(..!(.5+!)&7$'&)!(5!G_W32

&+"=#"VV"HWGe>A?""98j8@$:K&'%AB

F%5FC='-G6&5&!*+'5%('%5!)&7$'&!-$'!.&4&.5!(5!>Bs>!+#!QS"!(')!(#&!<5&)!;6&'!#&()$'=!+#!;#$%$'=!%+!)$=$%(.!-$'52!>Bs>!$5!)&7$'&)!(5!.+=$*!.&4&.!@R!SNR!+#!V!4+.%5!;6$.&!QS"!$5!.+=$*!.&4&.!AR!SIIR!+#!A!4+.%52

9&%&:!CM(&:$=03E"NOPN>A

%&:$(C'$(:$(F+'5%('%5!<5&)!;$%6!%6&!-$'C+)&XY!7<'*%$+'!%+!)&7$'&!%6&!,+)&!+7!(!)$=$%(.!-$'!(5!&$%6&#!BN?WG!+#!SWG?WG2

<&'D89$=03E"FGHIGH>A

0."S",8'*:!':*

Page 19: Arduino Programming Notebook

%8$7!5%(%&,&'%5!%&5%!;6&%6&#!(!*&#%($'!*+')$%$+'!6(5!/&&'!#&(*6&)R!5<*6!(5!('!('(.+=!4(.<&!/&$'=!(/+4&!(!*&#%($'!'<,/&#R!(')!&`&*<%&5!('0!5%(%&,&'%5!$'5$)&!%6&!/#(*8&%5!$7!%6&!5%(%&,&'%!$5!%#<&2!B7!7(.5&!%6&!-#+=#(,!58$-5!+4&#!%6&!5%(%&,&'%2!G6&!7+#,(%!7+#!('!$7!%&5%!$59

&+"=*8@$U!(&!#C$"kk"7!C;$>?""98j8@$:K&'%AB

G6&!(/+4&!&`(,-.&!*+,-(#&5!5+,&e(#$(/.&!%+!('+%6&#!4(.<&R!;6$*6!*('!/&!&$%6&#!(!4(#$(/.&!+#!*+'5%('%2!B7!%6&!*+,-(#$5+'R!+#!*+')$%$+'!$'!-(#&'%6&5&5!$5!%#<&R!%6&!5%(%&,&'%5!$'5$)&!%6&!/#(*8&%5!(#&!#<'2!B7!'+%R!%6&!-#+=#(,!58$-5!+4&#!%6&,!(')!*+'%$'<&5!+'!(7%&#!%6&!/#(*8&%52!

2'()3,1&;(#&!+7!(**$)&'%(..0!<5$'=!kqbR!(5!$'!&+=YV01>R!;6$.&!%&*6'$*(..0!4(.$)R!)&7$'&5!%6&!4(#$(/.&!`!%+!%6&!4(.<&!+7!@A!(')!$5!(5!(!#&5<.%!(.;(05!%#<&2!B'5%&()!<5&!kqqbR!(5!$'!&+=YVV01>R!;6$*6!+'.0!%&5%5!;6&%6&#!`!6(--&'5!%+!&c<(.!%6&!4(.<&!@A!+#!'+%2!G6$'8!+7!kqb!(5!?3@.'($A!+--+5&)!%+!kqqb!/&$'=!?%$)3@.'()/+A2!

+C8c",8':(8C"S"0/

Page 20: Arduino Programming Notebook

%8E,)=0)$7^!&.5&!(..+;5!7+#!k&$%6&#M+#b!)&*$5$+'5!%+!/&!,()&2!I+#!&`(,-.&R!$7!0+<!;('%&)!%+!%&5%!(!)$=$%(.!$'-<%R!(')!)+!+'&!%6$'=!$7!%6&!$'-<%!;&'%!>Bs>!+#!$'5%&()!)+!('+%6&#!%6$'=!$7!%6&!$'-<%!;(5!QS"R!0+<!;+<.)!;#$%&!%6(%!%6$5!;(09

&+"=&'<;:I&'"VV"NOPN>?""98HK&'%`AB$C*$?""98HK&'%lAB

&.5&!*('!(.5+!-#&*&)&!('+%6&#!$7!%&5%R!5+!%6(%!,<.%$-.&R!,<%<(..0!&`*.<5$4&!%&5%5!*('!/&!#<'!(%!%6&!5(,&!%$,&2!B%!$5!&4&'!-+55$/.&!%+!6(4&!('!<'.$,$%&)!'<,/&#!+7!%6&5&!&.5&!/#('*6&52!_&,&,/&#!%6+<=6R!+'.0!+'&!5&%!+7!5%(%&,&'%5!;$..!/&!#<'!)&-&')$'=!+'!%6&!*+')$%$+'!%&5%59

&+"=&'<;:I&'"]"511>?""98HK&'%`AB$C*$"&+"=&'<;:I&'"hV"0111>?""98HK&'%lAB$C*$?""98HK&'%mAB

2'()3,J'!$7!5%(%&,&'%!5$,-.0!%&5%5!;6&%6&#!%6&!*+')$%$+'!$'5$)&!%6&!-(#&'%6&5$5!$5!%#<&!+#!7(.5&2!G6$5!5%(%&,&'%!*('!/&!('0!4(.$)!F!5%(%&,&'%!(5!$'!%6&!7$#5%!&`(,-.&R!&+"=&'<;:I&'"VV"NOPN>2!B'!%6$5!&`(,-.&R!%6&!$7!5%(%&,&'%!+'.0!*6&*85!%+!5&&!$7!$')&&)!%6&!5-&*$7$&)!$'-<%!$5!(%!.+=$*!.&4&.!6$=6R!+#!nV42!

21"S"+C8c",8':(8C

Page 21: Arduino Programming Notebook

8'"G6&!7+#!5%(%&,&'%!$5!<5&)!%+!#&-&(%!(!/.+*8!+7!5%(%&,&'%5!&'*.+5&)!$'!*<#.0!/#(*&5!(!5-&*$7$&)!'<,/&#!+7!%$,&52!J'!$'*#&,&'%!*+<'%&#!$5!+7%&'!<5&)!%+!$'*#&,&'%!(')!%&#,$'(%&!%6&!.++-2!G6&#&!(#&!%6#&&!-(#%5R!5&-(#(%&)!/0!5&,$*+.+'5!X\YR!%+!%6&!7+#!.++-!6&()&#9

+8("=&'&:&!C&n!:&8'A",8'9&:&8'A"$Y<($**&8'>"?""98j8@$:K&'%AB

G6&!$'$%$(.$D(%$+'!+7!(!.+*(.!4(#$(/.&R!+#!$'*#&,&'%!*+<'%&#R!6(--&'5!7$#5%!(')!+'.0!+'*&2!3(*6!%$,&!%6#+<=6!%6&!.++-R!%6&!7+..+;$'=!*+')$%$+'!$5!%&5%&)2!B7!%6&!*+')$%$+'!#&,($'5!%#<&R!%6&!7+..+;$'=!5%(%&,&'%5!(')!&`-#&55$+'!(#&!&`&*<%&)!(')!%6&!*+')$%$+'!$5!%&5%&)!(=($'2!"6&'!%6&!*+')$%$+'!/&*+,&5!7(.5&R!%6&!.++-!&')52!

G6&!7+..+;$'=!&`(,-.&!5%(#%5!%6&!$'%&=&#!$!(%!AR!%&5%5!%+!5&&!$7!$!$5!5%$..!.&55!%6('!KA!(')!$7!%#<&R!$'*#&,&'%5!$!/0!@!(')!&`&*<%&5!%6&!&'*.+5&)!5%(%&,&'%59

+8("=&':"&V1A"&]21A"&^^>""JJ"9$,C!($*"&E":$*:*"&+"C$**"?"""""""""""""""""""""""""JJ":K!'"21E"&',($@$':*"&"#Q"0"""9&%&:!CM(&:$=03E"NOPN>A"JJ":;('*"<&'"03"8'"""9$C!Q=251>A"""""""""""""JJ"<!;*$*"+8("0J4"*$,8'9""9&%&:!CM(&:$=03E"RFM>A""JJ":;('*"<&'"03"8++""9$C!Q=251>A"""""""""""""JJ"<!;*$*"+8("0J4"*$,8'9B"

2'()3!G6&!F!7+#!.++-!$5!,<*6!,+#&!7.&`$/.&!%6('!7+#!.++-5!7+<')!$'!5+,&!+%6&#!*+,-<%&#!.('=<(=&5R!$'*.<)$'=!1JOBF2!J'0!+#!(..!+7!%6&!%6#&&!6&()&#!&.&,&'%5!,(0!/&!+,$%%&)R!(.%6+<=6!%6&!5&,$*+.+'5!(#&!#&c<$#&)2!J.5+!%6&!5%(%&,&'%5!7+#!$'$%$(.$D(%$+'R!*+')$%$+'R!(')!&`-#&55$+'!*('!/&!('0!4(.$)!F!5%(%&,&'%5!;$%6!<'#&.(%&)!4(#$(/.&52!G6&5&!%0-&5!+7!<'<5<(.!7+#!5%(%&,&'%5!,(0!-#+4$)&!5+.<%$+'5!%+!5+,&!#(#&!-#+=#(,,$'=!-#+/.&,52!

+C8c",8':(8C"S"20

Page 22: Arduino Programming Notebook

-F%=);6$.&!.++-5!;$..!.++-!*+'%$'<+<5.0R!(')!$'7$'$%&.0R!<'%$.!%6&!&`-#&55$+'!$'5$)&!%6&!-(#&'%6&5$5!/&*+,&5!7(.5&2!O+,&%6$'=!,<5%!*6('=&!%6&!%&5%&)!4(#$(/.&R!+#!%6&!;6$.&!.++-!;$..!'&4&#!&`$%2!G6$5!*+<.)!/&!$'!0+<#!*+)&R!5<*6!(5!('!$'*#&,&'%&)!4(#$(/.&R!+#!('!&`%&#'(.!*+')$%$+'R!5<*6!(5!%&5%$'=!(!5&'5+#2

cK&C$"=*8@$U!(&!#C$"kk"7!C;$>?""98j8@$:K&'%AB

G6&!7+..+;$'=!&`(,-.&!%&5%5!;6&%6&#!k5+,&e(#$(/.&b!$5!.&55!%6('!KAA!(')!$7!%#<&!&`&*<%&5!%6&!5%(%&,&'%5!$'5$)&!%6&!/#(*8&%5!(')!;$..!*+'%$'<&!.++-$'=!<'%$.!k5+,&e(#$(/.&b!$5!'+!.+'=&#!.&55!%6('!KAA2

MK&C$"=*8@$U!(&!#C$"]"211>"JJ":$*:*"&+"C$**":K!'"211?""98j8@$:K&'%A"""""""""""""JJ"$Y$,;:$*"$',C8*$9"*:!:$@$':*""*8@$U!(&!#C$^^A""""""""""JJ"&',($@$':*"7!(&!#C$"#Q"0B

#'E,-F%=)G6&!)+!.++-!$5!(!/+%%+,!)#$4&'!.++-!%6(%!;+#85!$'!%6&!5(,&!,(''&#!(5!%6&!;6$.&!.++-R!;$%6!%6&!&`*&-%$+'!%6(%!%6&!*+')$%$+'!$5!%&5%&)!(%!%6&!&')!+7!%6&!.++-R!5+!%6&!)+!.++-!;$..!(.;(05!#<'!(%!.&(5%!+'*&2

98?""98j8@$:K&'%AB"cK&C$"=*8@$U!(&!#C$"kk"7!C;$>A

G6&!7+..+;$'=!&`(,-.&!(55$='5!#&()O&'5+#5XY!%+!%6&!4(#$(/.&!k`bR!-(<5&5!7+#!VA!,$..$5&*+')5R!%6&'!.++-5!$')&7$'$%&.0!<'%$.!k`b!$5!'+!.+'=&#!.&55!%6('!@AA9

98?""Y"V"($!9j$'*8(*=>A""""JJ"!**&%'*":K$"7!C;$"8+""""""""""""""""""""""""""JJ"($!9j$'*8(*=>":8"Y""9$C!Q=51>A""""""""""""JJ"<!;*$*"51"@&CC&*$,8'9*B"cK&C$"=Y"]"011>A""""""JJ"C88<*"&+"Y"&*"C$**":K!'"011

22"S"+C8c",8':(8C

Page 23: Arduino Programming Notebook

:%&G'#);:%&H,B'#)<W5&)!$'!78&9"*$:;<=>!%+!*+'7$=<#&!(!5-&*$7$&)!-$'!%+!/&6(4&!&$%6&#!(5!('!BN?WG!+#!('!SWG?WG2

<&'D89$=<&'E"FGHIGH>A""""JJ"*$:*"o<&')":8"8;:<;:

J#)<$'+!)$=$%(.!-$'5!)&7(<.%!%+!$'-<%5R!5+!%6&0!)+'a%!'&&)!%+!/&!&`-.$*$%.0!)&*.(#&)!(5!$'-<%5!;$%6!-$'C+)&XY2!?$'5!*+'7$=<#&)!(5!BN?WG!(#&!5($)!%+!/&!$'!(!6$=6M$,-&)('*&!5%(%&2

G6&#&!(#&!(.5+!*+'4&'$&'%!KAHt!-<..<-!#&5$5%+#5!/<$.%!$'%+!%6&!J%,&=(!*6$-!%6(%!*('!/&!(**&55&)!7#+,!5+7%;(#&2!G6&5&!/<$.%M$'!-<..<-!#&5$5%+#5!(#&!(**&55&)!$'!%6&!7+..+;$'=!,(''&#9

<&'D89$=<&'E"OTIGH>A""""""""JJ"*$:"o<&')":8"&'<;:9&%&:!CM(&:$=<&'E"NOPN>A""""JJ":;('"8'"<;CC;<"($*&*:8(*

?<..<-!#&5$5%+#5!;+<.)!'+#,(..0!/&!<5&)!7+#!*+''&*%$'=!$'-<%5!.$8&!5;$%*6&52!N+%$*&!$'!%6&!(/+4&!&`(,-.&!$%!)+&5!'+%!*+'4&#%"<&'"%+!('!+<%-<%R!$%!$5!,&#&.0!(!,&%6+)!7+#!(*%$4(%$'=!%6&!$'%&#'(.!-<..M<-52

?$'5!*+'7$=<#&)!(5!SWG?WG!(#&!5($)!%+!/&!$'!(!.+;M$,-&)('*&!5%(%&!(')!*('!-#+4$)&!UA!,J!X,$..$(,-5Y!+7!*<##&'%!%+!+%6&#!)&4$*&5:*$#*<$%52!G6$5!$5!&'+<=6!*<##&'%!%+!/#$=6%.0!.$=6%!<-!('!Q3E!X)+'a%!7+#=&%!%6&!5&#$&5!#&5$5%+#YR!/<%!'+%!&'+<=6!*<##&'%!%+!#<'!,+5%!#&.(05R!5+.&'+$)5R!+#!,+%+#52

O6+#%!*$#*<$%5!+'!J#)<$'+!-$'5!(')!&`*&55$4&!*<##&'%!*('!)(,(=&!+#!)&5%#+0!%6&!+<%-<%!-$'R!+#!)(,(=&!%6&!&'%$#&!J%,&=(!*6$-2!B%!$5!+7%&'!(!=++)!$)&(!%+!*+''&*%!('!SWG?WG!-$'!%+!('!&`%&#'(.!)&4$*&!$'!5&#$&5!;$%6!(!ULAt!+#!@Ht!#&5$5%+#2!

9&%&:!C"&J8"S"23

Page 24: Arduino Programming Notebook

#%5%(!=7)!#;:%&<_&()5!%6&!4(.<&!7#+,!(!5-&*$7$&)!)$=$%(.!-$'!;$%6!%6&!#&5<.%!&$%6&#!>Bs>!+#!QS"2!G6&!-$'!*('!/&!5-&*$7$&)!(5!&$%6&#!(!4(#$(/.&!+#!*+'5%('%!XAM@PY2

7!C;$"V"9&%&:!CW$!9=I&'>A"""JJ"*$:*"L7!C;$L"$d;!C":8"""""""""""""""""""""""""""""JJ":K$"&'<;:"<&'

#%5%(!=I"%();:%&H,/!=$)<S<-<%5!&$%6&#!.+=$*!.&4&.!>Bs>!+#!QS"!(%!X%<#'5!+'!+#!+77Y!(!5-&*$7$&)!)$=$%(.!-$'2!G6&!-$'!*('!/&!5-&*$7$&)!(5!&$%6&#!(!4(#$(/.&!+#!*+'5%('%!XAM@PY2

9&%&:!CM(&:$=<&'E"NOPN>A"""JJ"*$:*"L<&'L":8"K&%K

G6&!7+..+;$'=!&`(,-.&!#&()5!(!-<56/<%%+'!*+''&*%&)!%+!(!)$=$%(.!$'-<%!(')!%<#'5!+'!('!Q3E!*+''&*%&)!%+!(!)$=$%(.!+<%-<%!;6&'!%6&!/<%%+'!6(5!/&&'!-#&55&)9

&':"C$9"""V"03A"""JJ",8''$,:"Ref":8"<&'"03&':"<&'"""V""-A"""JJ",8''$,:"<;*K#;::8'":8"<&'"-&':"7!C;$"V""1A"""JJ"7!(&!#C$":8"*:8($":K$"($!9"7!C;$

78&9"*$:;<=>?""<&'D89$=C$9E"FGHIGH>A""""JJ"*$:*"<&'"03"!*"8;:<;:""<&'D89$=<&'E"OTIGH>A"""""JJ"*$:*"<&'"-"!*"&'<;:B

78&9"C88<=>?""7!C;$"V"9&%&:!CW$!9=<&'>A""JJ"*$:*"L7!C;$L"$d;!C":8""""""""""""""""""""""""""""""JJ":K$"&'<;:"<&'""9&%&:!CM(&:$=C$9E"7!C;$>A""JJ"*$:*"LC$9L":8":K$B""""""""""""""""""""""""""""JJ"#;::8'L*"7!C;$

24"S"9&%&:!C"&J8

Page 25: Arduino Programming Notebook

!&!='57)!#;:%&<_&()5!%6&!4(.<&!7#+,!(!5-&*$7$&)!('(.+=!-$'!;$%6!(!@AM/$%!#&5+.<%$+'2!G6$5!7<'*%$+'!+'.0!;+#85!+'!%6&!('(.+=!$'!-$'5!XAMVY2!G6&!#&5<.%$'=!$'%&=&#!4(.<&5!#('=&!7#+,!A!%+!@AKP2!7!C;$"V"!'!C8%W$!9=<&'>A""JJ"*$:*"L7!C;$L"$d;!C":8"L<&'L

2'()3!J'(.+=!-$'5!<'.$8&!)$=$%(.!+'&5R!)+!'+%!'&&)!%+!/&!7$#5%!)&*.(#&)!(5!BN?WG!'+#!SWG?WG2

!'!C8%"&J8"S"25

Page 26: Arduino Programming Notebook

!&!='5I"%();:%&H,/!=$)<"#$%&5!(!-5&<)+M('(.+=!4(.<&!<5$'=!6(#);(#&!&'(/.&)!-<.5&!;$)%6!,+)<.(%$+'!X?"CY!%+!('!+<%-<%!-$'!,(#8&)!?"C2!S'!'&;&#!J#)<$'+5!;$%6!%6&!JG,&=(@ml!*6$-R!%6$5!7<'*%$+'!;+#85!+'!-$'5!PR!VR!mR!TR!@AR!(')!@@2!S.)&#!J#)<$'+5!;$%6!('!JG,&=(l!+'.0!5<--+#%!-$'5!TR!@AR!(')!@@2!G6&!4(.<&!*('!/&!5-&*$7$&)!(5!(!4(#$(/.&!+#!*+'5%('%!;$%6!(!4(.<&!7#+,!AMKVV2

!'!C8%M(&:$=<&'E"7!C;$>A""JJ"c(&:$*"L7!C;$L":8"!'!C8%"L<&'L

J!4(.<&!+7!A!=&'&#(%&5!(!5%&()0!A!4+.%5!+<%-<%!(%!%6&!5-&*$7$&)!-$'\!(!4(.<&!+7!KVV!=&'&#(%&5!(!5%&()0!V!4+.%5!+<%-<%!(%!%6&!5-&*$7$&)!-$'2!I+#!4(.<&5!$'!/&%;&&'!A!(')!KVVR!%6&!-$'!#(-$).0!(.%&#'(%&5!/&%;&&'!A!(')!V!4+.%5!M!%6&!6$=6&#!%6&!4(.<&R!%6&!,+#&!+7%&'!%6&!-$'!$5!>Bs>!XV!4+.%5Y2!I+#!&`(,-.&R!(!4(.<&!+7!mU!;$..!/&!A!4+.%5!%6#&&Mc<(#%&#5!+7!%6&!%$,&R!(')!V!4+.%5!+'&!c<(#%&#!+7!%6&!%$,&\!(!4(.<&!+7!@Kl!;$..!/&!(%!A!6(.7!%6&!%$,&!(')!KVV!6(.7!%6&!%$,&\!(')!(!4(.<&!+7!@TK!;$..!/&!A!4+.%5!+'&!c<(#%&#!+7!%6&!%$,&!(')!V!4+.%5!%6#&&Mc<(#%&#5!+7!%6&!%$,&2

1&*(<5&!%6$5!$5!(!6(#);(#&!7<'*%$+'R!%6&!-$'!;$..!=&'&#(%&!(!5%&()0!;(4&!(7%&#!(!*(..!%+!('(.+="#$%&!$'!%6&!/(*8=#+<')!<'%$.!%6&!'&`%!*(..!%+!('(.+="#$%&!X+#!(!*(..!%+!)$=$%(._&()!+#!)$=$%(."#$%&!+'!%6&!5(,&!-$'Y2

2'()3!J'(.+=!-$'5!<'.$8&!)$=$%(.!+'&5R!)+!'+%!'&&)!%+!/&!7$#5%!)&*.(#&)!(5!BN?WG!'+#!SWG?WG2

G6&!7+..+;$'=!&`(,-.&!#&()5!('!('(.+=!4(.<&!7#+,!('!('(.+=!$'-<%!-$'R!*+'4&#%5!%6&!4(.<&!/0!)$4$)$'=!/0!UR!(')!+<%-<%5!(!?"C!5$='(.!+'!(!?"C!-$'9

&':"C$9"V"01A""""JJ"Ref"c&:K"221"($*&*:8("8'"<&'"01&':"<&'"V""1A""""JJ"<8:$':&8@$:$("8'"!'!C8%"<&'"1&':"7!C;$A"""""""JJ"7!C;$"+8("($!9&'%

78&9"*$:;<=>?B"""JJ"'8"*$:;<"'$$9$9

78&9"C88<=>?""7!C;$"V""!'!C8%W$!9=<&'>A""JJ"*$:*"L7!C;$L"$d;!C":8"L<&'L""7!C;$"JV"4A""""""""""""""""JJ",8'7$(:*"1X0123":8"1X255""!'!C8%M(&:$=C$9E"7!C;$>A"""JJ"8;:<;:*"IMD"*&%'!C":8"C$9B

26"S"!'!C8%"&J8

Page 27: Arduino Programming Notebook

#)=!@;B0<?(<5&5!0+<#!-#+=#(,!7+#!%6&!(,+<'%!+7!%$,&!(5!5-&*$7$&)!$'!,$..$5&*+')5R!;6&#&!@AAA!&c<(.5!@!5&*+')2

9$C!Q=0111>A"""JJ"c!&:*"+8("8'$"*$,8'9

B%==%0;<_&%<#'5!%6&!'<,/&#!+7!,$..$5&*+')5!5$'*&!%6&!J#)<$'+!/+(#)!/&=('!#<''$'=!%6&!*<##&'%!-#+=#(,!(5!('!<'5$='&)!.+'=!4(.<&2

7!C;$"V"@&CC&*=>A""JJ"*$:*"o7!C;$)"$d;!C":8"@&CC&*=>

2'()3,G6$5!'<,/&#!;$..!+4&#7.+;!X#&5&%!/(*8!%+!D&#+YR!(7%&#!(--#+`$,(%&.0!T!6+<#52

B%&;JH,@<F(.*<.(%&5!%6&!,$'$,<,!+7!%;+!'<,/&#5!+7!('0!)(%(!%0-&!(')!#&%<#'5!%6&!5,(..&#!'<,/&#2

7!C;$"V"@&'=7!C;$E"011>A"JJ"*$:*"L7!C;$L":8":K$"*@!CC$("8+""""""""""""""""""""""""""JJ"L7!C;$L"8("011E"$'*;(&'%":K!:""""""""""""""""""""""""""JJ"&:"'$7$("%$:*"!#87$"011_

B!J;JH,@<F(.*<.(%&5!%6&!,(`$,<,!+7!%;+!'<,/&#5!+7!('0!)(%(!%0-&!(')!#&%<#'5!%6&!.(#=&#!'<,/&#2

7!C;$"V"@!Y=7!C;$E"011>A"JJ"*$:*"L7!C;$L":8":K$"C!(%$("8+""""""""""""""""""""""""""JJ"L7!C;$L"8("011E"$'*;(&'%":K!:""""""""""""""""""""""""""JJ"&:"&*"!:"C$!*:"011_

:&@$"!'9"@!:K"S"2-

Page 28: Arduino Programming Notebook

"!&#'BK))#;0))#<O&%5!(!4(.<&R!+#!5&&)R!(5!%6&!5%(#%$'=!-+$'%!7+#!%6&!#(')+,XY!7<'*%$+'2

(!'98@j$$9=7!C;$>A"""JJ"*$:*"o7!C;$)"!*":K$"(!'98@"*$$9

1&*(<5&!%6&!J#)<$'+!$5!<'(/.&!%+!*#&(%&!(!%#<.0!#(')+,!'<,/&#R!#(')+,O&&)!(..+;5!0+<!%+!-.(*&!(!4(#$(/.&R!*+'5%('%R!+#!+%6&#!7<'*%$+'!$'%+!%6&!#(')+,!7<'*%$+'R!;6$*6!6&.-5!%+!=&'&#(%&!,+#&!#(')+,!g#(')+,j!'<,/&#52!G6&#&!(#&!(!4(#$&%0!+7!)$77&#&'%!5&&)5R!+#!7<'*%$+'5R!%6(%!*('!/&!<5&)!$'!%6$5!7<'*%$+'!$'*.<)$'=!,$..$5XY!+#!&4&'!('(.+=_&()XY!%+!#&()!&.&*%#$*(.!'+$5&!%6#+<=6!('!('(.+=!-$'2

"!&#'B;B!J<"!&#'B;B%&H,B!J<G6&!#(')+,!7<'*%$+'!(..+;5!0+<!%+!#&%<#'!-5&<)+M#(')+,!'<,/&#5!;$%6$'!(!#('=&!5-&*$7$&)!/0!,$'!(')!,(`!4(.<&52!

7!C;$"V"(!'98@=011E"211>A""JJ"*$:*"L7!C;$L":8"!"(!'98@""""""""""""""""""""""""""""JJ"';@#$("#$:c$$'"011X211

2'()3!W5&!%6$5!(7%&#!<5$'=!%6&!#(')+,O&&)XY!7<'*%$+'2

G6&!7+..+;$'=!&`(,-.&!*#&(%&5!(!#(')+,!4(.<&!/&%;&&'!AMKVV!(')!+<%-<%5!(!?"C!5$='(.!+'!(!?"C!-$'!&c<(.!%+!%6&!#(')+,!4(.<&9!

&':"(!'9T;@#$(A""JJ"7!(&!#C$":8"*:8($":K$"(!'98@"7!C;$&':"C$9"V"01A""""JJ"Ref"c&:K"221"($*&*:8("8'"<&'"01

78&9"*$:;<=>"?B""JJ"'8"*$:;<"'$$9$9

78&9"C88<=>?""(!'98@j$$9=@&CC&*=>>A"""""""""JJ"*$:*"@&CC&*=>"!*"*$$9""(!'9T;@#$("V"(!'98@=255>A"""""JJ"(!'98@"';@#$("+(8@"1X255""!'!C8%M(&:$=C$9E"(!'9T;@#$(>A"JJ"8;:<;:*"IMD"*&%'!C""9$C!Q=511>A"""""""""""""""""""JJ"<!;*$*"+8("K!C+"!"*$,8'9B

2."S"(!'98@

Page 29: Arduino Programming Notebook

K)"%!=.*)5%&;"!()<S-&'5!5&#$(.!-+#%!(')!5&%5!%6&!/(<)!#(%&!7+#!5&#$(.!)(%(!%#('5,$55$+'2!G6&!%0-$*(.!/(<)!#(%&!7+#!*+,,<'$*(%$'=!;$%6!%6&!*+,-<%&#!$5!TmAA!(.%6+<=6!+%6&#!5-&&)5!(#&!5<--+#%&)2

78&9"*$:;<=>"?""j$(&!C_#$%&'=/611>A"""JJ"8<$'*"*$(&!C"<8(:B"""""""""""""""""""""""JJ"*$:*"9!:!"(!:$":8"/611"#<*

2'()3!"6&'!<5$'=!5&#$(.!*+,,<'$*(%$+'R!)$=$%(.!-$'5!A!X_uY!(')!@!XGuY!*(''+%!/&!<5&)!(%!%6&!5(,&!%$,&2

K)"%!=.:"%&(=&;#!(!<?#$'%5!)(%(!%+!%6&!5&#$(.!-+#%R!7+..+;&)!/0!('!(<%+,(%$*!*(##$(=&!#&%<#'!(')!.$'&!7&&)2!G6$5!*+,,(')!%(8&5!%6&!5(,&!7+#,!(5!O&#$(.2-#$'%XYR!/<%!$5!&(5$&#!7+#!#&()$'=!)(%(!+'!%6&!O&#$(.!C+'$%+#2!

j$(&!C_<(&':C'=!'!C8%U!C;$>A""JJ"*$'9*":K$"7!C;$"8+""""""""""""""""""""""""""""""""JJ"L!'!C8%U!C;$L

2'()3,I+#!,+#&!$'7+#,(%$+'!+'!%6&!4(#$+<5!-&#,<%(%$+'5!+7!%6&!O&#$(.2-#$'%.'XY!(')!O&#$(.2-#$'%XY!7<'*%$+'5!-.&(5&!#&7&#!%+!%6&!J#)<$'+!;&/5$%&2

G6&!7+..+;$'=!5$,-.&!&`(,-.&!%(8&5!(!#&()$'=!7#+,!('(.+=!-$'A!(')!5&')5!%6$5!)(%(!%+!%6&!*+,-<%&#!&4&#0!@!5&*+')2

78&9"*$:;<=>?""j$(&!C_#$%&'=/611>A""""""""""""JJ"*$:*"*$(&!C":8"/611#<*B

78&9"C88<=>?""j$(&!C_<(&':C'=!'!C8%W$!9=1>>A"JJ"*$'9*"!'!C8%"7!C;$""9$C!Q=0111>A"""""""""""""""""""JJ"<!;*$*"+8("0"*$,8'9B

*$(&!C"S"2/

Page 30: Arduino Programming Notebook
Page 31: Arduino Programming Notebook

!::)&#%J

Page 32: Arduino Programming Notebook

#%5%(!=,'$(:$(

G6$5!$5!%6&!/(5$*!k6&..+!;+#.)b!-#+=#(,!<5&)!%+!5$,-.0!%<#'!5+,&%6$'=!+'!+#!+772!B'!%6$5!&`(,-.&R!('!Q3E!$5!*+''&*%&)!%+!-$'@PR!(')!$5!/.$'8&)!&4&#0!5&*+')2!G6&!#&5$5%+#!,(0!/&!+,$%%&)!+'!%6$5!-$'!5$'*&!%6&!J#)<$'+!6(5!+'&!/<$.%!$'2!

&':"C$9I&'"V"03A"""""""""""""""JJ"Ref"8'"9&%&:!C"<&'"03

78&9"*$:;<=>"""""""""""""""""""JJ"(;'"8',$?""<&'D89$=C$9I&'E"FGHIGH>A"""""JJ"*$:*"<&'"03"!*"8;:<;:B

78&9"C88<=>""""""""""""""""""""JJ"(;'"87$("!'9"87$("!%!&'?""9&%&:!CM(&:$=C$9I&'E"NOPN>A""JJ":;('*":K$"Ref"8'""9$C!Q=0111>A"""""""""""""""""JJ"<!;*$*"+8("0"*$,8'9""9&%&:!CM(&:$=C$9I&'E"RFM>A"""JJ":;('*":K$"Ref"8++""9$C!Q=0111>A"""""""""""""""""JJ"<!;*$*"+8("0"*$,8'9B!

32"S"!<<$'9&Y

Page 33: Arduino Programming Notebook

#%5%(!=,%&:$(

G6$5!$5!%6&!5$,-.&5%!7+#,!+7!$'-<%!;$%6!+'.0!%;+!-+55$/.&!5%(%&59!+'!+#!+772!G6$5!&`(,-.&!#&()5!(!5$,-.&!5;$%*6!+#!-<56/<%%+'!*+''&*%&)!%+!-$'K2!"6&'!%6&!5;$%*6!$5!*.+5&)!%6&!$'-<%!-$'!;$..!#&()!>Bs>!(')!%<#'!+'!('!Q3E2!

&':"C$9I&'"V"03A""""""""""""JJ"8;:<;:"<&'"+8(":K$"Ref&':"&'I&'"V"2A""""""""""""""JJ"&'<;:"<&'"=+8("!"*c&:,K>

78&9"*$:;<=>"?""<&'D89$=C$9I&'E"FGHIGH>A""JJ"9$,C!($"Ref"!*"8;:<;:""<&'D89$=&'I&'E"OTIGH>A""""JJ"9$,C!($"*c&:,K"!*"&'<;:B

78&9"C88<=>?""&+"=9&%&:!CW$!9=&'I&'>"VV"NOPN>"JJ",K$,["&+"&'<;:"&*"NOPN""?""""9&%&:!CM(&:$=C$9I&'E"NOPN>A"""JJ":;('*":K$"Ref"8'""""9$C!Q=0111>A""""""""""""""""""JJ"<!;*$"+8("0"*$,8'9""""9&%&:!CM(&:$=C$9I&'E"RFM>A""""JJ":;('*":K$"Ref"8++""BB

!<<$'9&Y"S"33

Page 34: Arduino Programming Notebook

F%5F,9$"")&(,'$(:$(

O+,&%$,&5!$%!$5!'&*&55(#0!%+!*+'%#+.!,+#&!%6('!UA,(!7#+,!%6&!J#)<$'+2!B'!%6$5!*(5&!(!CSOI3G!+#!%#('5$5%+#!*+<.)!/&!<5&)!%+!5;$%*6!6$=6&#!*<##&'%!.+()52!G6&!7+..+;$'=!&`(,-.&!c<$*8.0!%<#'5!+'!(')!+77!%6&!CSOI3G!V!%$,&5!&4&#0!5&*+')2

2'()3,G6&!5*6&,(%$*!56+;5!(!,+%+#!(')!-#+%&*%$+'!)$+)&!/<%!+%6&#!'+'M$')<*%$4&!.+()5!*+<.)!/&!<5&)!;$%6+<%!%6&!)$+)&2

&':"8;:I&'""V""5A""""""""JJ"8;:<;:"<&'"+8(":K$"DFjpeH"

78&9"*$:;<=>?""<&'D89$=8;:I&'E"FGHIGH>A""""""JJ"*$:*"<&'5"!*"8;:<;:B"""

78&9"C88<=>?""+8("=&':"&V1A"&]V5A"&^^>""""""JJ"C88<*"5":&@$*""?""""9&%&:!CM(&:$=8;:I&'E"NOPN>A"JJ":;('*"DFjpeH"8'""""9$C!Q=251>A"""""""""""""""""JJ"<!;*$*"0J4"*$,8'9""""9&%&:!CM(&:$=8;:I&'E"RFM>A""JJ":;('*"DFjpeH"8++""""9$C!Q=251>A"""""""""""""""""JJ"<!;*$*"0J4"*$,8'9""B""9$C!Q=0111>A""""""""""""""""""JJ"<!;*$*"0"*$,8'9B

34"S"!<<$'9&Y

Page 35: Arduino Programming Notebook

:-B,'$(:$(

?<.5&;$)%6!C+)<.(%$+'!X?"CY!$5!(!;(0!%+!7(8&!('!('(.+=!+<%-<%2!G6$5!*+<.)!/&!<5&)!%+!)$,!(')!/#$=6%&'!('!Q3E!+#!.(%&#!%+!*+'%#+.!(!5&#4+!,+%+#2!G6&!7+..+;$'=!&`(,-.&!5.+;.0!/#$=6%&'5!(')!)$,5!('!Q3E!<5$'=!7+#!.++-52

&':"C$9I&'""V""/A"""""JJ"IMD"<&'"+8(":K$"Ref"

78&9"*$:;<=>?B""""""""JJ"'8"*$:;<"'$$9$9

78&9"C88<=>?""+8("=&':"&V1A"&]V255A"&^^>""JJ"!*,$'9&'%"7!C;$"+8("&""?""""!'!C8%M(&:$=C$9I&'E"&>A"""JJ"*$:*"#(&%K:$**"C$7$C":8"&""""9$C!Q=011>A"""""""""""""""JJ"<!;*$*"+8("011@*""B""+8("=&':"&V255A"&hV1A"&XX>""JJ"9$*,$'9&'%"7!C;$"+8("&""?""""!'!C8%M(&:$=C$9I&'E"&>A"""JJ"*$:*"#(&%K:$**"C$7$C":8"&""""9$C!Q=011>A"""""""""""""""JJ"<!;*$*"+8("011@*""B"B

!<<$'9&Y"S"35

Page 36: Arduino Programming Notebook

:'()&(%'B)()",%&:$(

W5$'=!(!-+%&'%$+,&%&#!(')!+'&!+7!%6&!J#)<$'+b5!('(.+=M%+M)$=$%(.!*+'4&#5$+'!XJEFY!-$'5!$%!$5!-+55$/.&!%+!#&()!('(.+=!4(.<&5!7#+,!AM@AKU2!G6&!7+..+;$'=!&`(,-.&!<5&5!(!-+%&'%$+,&%&#!%+!*+'%#+.!('!Q3Eb5!#(%&!+7!/.$'8$'=2!

&':"<8:I&'"V"1A""""JJ"&'<;:"<&'"+8(":K$"<8:$':&8@$:$(&':"C$9I&'"V"03A"""JJ"8;:<;:"<&'"+8(":K$"Ref

78&9"*$:;<=>"?""<&'D89$=C$9I&'E"FGHIGH>A""JJ"9$,C!($"C$9I&'"!*"FGHIGHB

78&9"C88<=>"?""9&%&:!CM(&:$=C$9I&'E"NOPN>A""""JJ":;('*"C$9I&'"8'""9$C!Q=!'!C8%W$!9=<8:I&'>>A"""""JJ"<!;*$"<(8%(!@""9&%&:!CM(&:$=C$9I&'E"RFM>A"""""JJ":;('*"C$9I&'"8++""9$C!Q=!'!C8%W$!9=<8:I&'>>A"""""JJ"<!;*$"<(8%(!@B!

36"S"!<<$'9&Y

Page 37: Arduino Programming Notebook

/!"%!*=),")0%0('",%&:$(

e(#$(/.&!#&5$5%+#5!$'*.<)&!F)O!.$=6%!5&'5+#5R!%6&#,$5%+#5R!7.&`!5&'5+#5R!(')!5+!+'2!G6$5!&`(,-.&!,(8&5!<5&!+7!(!7<'*%$+'!%+!#&()!%6&!('(.+=!4(.<&!(')!5&%!(!)&.(0!%$,&2!G6$5!*+'%#+.5!%6&!5-&&)!(%!;6$*6!('!Q3E!/#$=6%&'5!(')!)$,52

&':"C$9I&'""""V""/A""""JJ"IMD"<&'"+8(":K$"Ref"&':"!'!C8%I&'"V""1A""""JJ"7!(&!#C$"($*&*:8("8'"!'!C8%"<&'"1

78&9"*$:;<=>?B""""""""JJ"'8"*$:;<"'$$9$9

78&9"C88<=>?""+8("=&':"&V1A"&]V255A"&^^>""JJ"!*,$'9&'%"7!C;$"+8("&""?""""!'!C8%M(&:$=C$9I&'E"&>A"""JJ"*$:*"#(&%K:$**"C$7$C":8"&""""9$C!Q=9$C!QU!C=>>A""""""""JJ"%$:*":&@$"7!C;$"!'9"<!;*$*""B""+8("=&':"&V255A"&hV1A"&XX>""JJ"9$*,$'9&'%"7!C;$"+8("&""?""""!'!C8%M(&:$=C$9I&'E"&>A"""JJ"*$:*"#(&%K:$**"C$7$C":8"&""""9$C!Q=9$C!QU!C=>>A""""""""JJ"%$:*":&@$"7!C;$"!'9"<!;*$*""B"B

&':"9$C!QU!C=>?""&':"7A""""""""""""""""""""""JJ",($!:$":$@<8(!(Q"7!(&!#C$""7""V"!'!C8%W$!9=!'!C8%I&'>A"JJ"($!9"!'!C8%"7!C;$""7"JV".A"""""""""""""""""""""JJ",8'7$(:"1X0124":8"1X02.""($:;('"7A"""""""""""""""""""JJ"($:;('*"+&'!C"7!C;$B!

!<<$'9&Y"S"3-

Page 38: Arduino Programming Notebook

0)"/','$(:$(

>+//0!5&#4+5!(#&!(!%0-&!+7!,+%+#!%6(%!*('!,+4&!$'!(!@lAv!(#*!(')!*+'%($'!(..!%6&!'&*&55(#0!&.&*%#+'$*52!J..!%6(%!$5!'&&)&)!$5!(!-<.5&!5&'%!&4&#0!KA,52!G6$5!&`(,-.&!<5&5!(!5&#4+?<.5&!7<'*%$+'!%+!,+4&!%6&!5&#4+!7#+,!@Av!M@LAv!(')!/(*82

&':"*$(78I&'"V"2A"""JJ"*$(78",8''$,:$9":8"9&%&:!C"<&'"2&':"@Q`'%C$A""""""""JJ"!'%C$"8+":K$"*$(78"(8;%KCQ"1X0.1&':"<;C*$M&9:KA"""""JJ"*$(78I;C*$"+;',:&8'"7!(&!#C$""78&9"*$:;<=>?""<&'D89$=*$(78I&'E"FGHIGH>A"""JJ"*$:*"<&'"2"!*"8;:<;:B"78&9"*$(78I;C*$=&':"*$(78I&'E"&':"@Q`'%C$>"""""?"""""""""<;C*$M&9:K"V"=@Q`'%C$"Z"01>"^"611A""JJ"9$:$(@&'$*"9$C!Q"""9&%&:!CM(&:$=*$(78I&'E"NOPN>A"""""""JJ"*$:"*$(78"K&%K""9$C!QD&,(8*$,8'9*=<;C*$M&9:K>A""""""JJ"@&,(8"<!;*$""9&%&:!CM(&:$=*$(78I&'E"RFM>A""""""""JJ"*$:"*$(78"C8c""9$C!Q=21>A""""""""""""""""""""""""""JJ"($+($*K",Q,C$"B"78&9"C88<=>?""JJ"*$(78"*:!(:*"!:"01"9$%"!'9"(8:!:$*":8"0-1"9$%""+8("=@Q`'%C$V01A"@Q`'%C$]V0-1A"@Q`'%C$^^>""""""?""""*$(78I;C*$=*$(78I&'E"@Q`'%C$>A""B""JJ"*$(78"*:!(:*"!:"0-1"9$%"!'9"(8:!:$*":8"01"9$%""+8("=@Q`'%C$V0-1A"@Q`'%C$hV01A"@Q`'%C$XX>""""""?""""*$(78I;C*$=*$(78I&'E"@Q`'%C$>A""BB

3."S"!<<$'9&Y

Page 39: Arduino Programming Notebook
Page 40: Arduino Programming Notebook