Arduino Programming Notebook

40
!"#$%&’ ("’)"!**%&) &’+,-’’. -"%!& 01 ,2!&3

description

 

Transcript of Arduino Programming Notebook

Page 1: Arduino Programming Notebook

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

&'+,-''.

-"%!&/01/,2!&3

Page 2: Arduino Programming Notebook

4"#$%&'/5"')"!**%&)/6'+,-''.!"#$$%&'(&)'*+,-#.%)'/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&F(4#)'G<("$#%..%5H+,'B=+%F(&#%.'I+..#77%H+))'J<"$F(4#)'C%..#5(&)'+$6%"5

?</.#56%)9K#"5$'3)#$#+&'L<=<5$'MAAN

!"#$%&'(H6#5';+"8'#5'.#*%&5%)'<&)%"'$6%'G"%($#4%'G+,,+&5'L$$"#/<$#+&OP+&*+,,%"*#(.OQ6("%'L.#8%'R2A'S#*%&5%2'

H+'4#%;'('*+-0'+7'$6#5'.#*%&5%T'4#5#$9'

6$$-9::*"%($#4%*+,,+&52+"=:.#*%&5%5:/0O&*O5(:R2A:'

U"'5%&)'('.%$$%"'$+9'

G"%($#4%'G+,,+&5@N@'Q%*+&)'Q$"%%$T'Q<#$%'RAAQ(&'K"(&*#5*+T'G(.#7+"&#(T'VW@AXT'YQL

Page 3: Arduino Programming Notebook

7'&+,&+3

!"#$%"$#&

5$"<*$<"% !"

5%$<-Z[ !"

.++-Z[ !"

7<&*$#+&5 !#

\]'*<".0'/"(*%5 !$

^'5%,#*+.+& !$

:_`'_:'/.+*8'*+,,%&$5 %&

::'.#&%'*+,,%&$5 %&

'(#)(*+&!

4("#(/.%5 %%

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

4("#(/.%'5*+-% %(

,("("-.&!

/0$% %)

#&$ %)

.+&= %)

7.+($ %)

(""(05 %*

(#)"/0&")%

("#$6,%$#* %+

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

*+,-("#5+&'+-%"($+"5 %"

.+=#*(.'+-%"($+"5 %"

%12!"(2"!

*+&5$(&$5 %#

$"<%:7(.5% %#

6#=6:.+; %#

#&-<$:+<$-<$ %#

Page 4: Arduino Programming Notebook

3+145%12"#1+

#7 %$

#7`'%.5% '&

7+" '%

;6#.% ''

)+`';6#.% ''

,)6)"(+5)71

-#&C+)%Z-#&T',+)%[ '(

)#=#$(.a%()Z-#&[ ')

)#=#$(.!"#$%Z-#&T'4(.<%[ ')

(2(+165)71

(&(.+=a%()Z-#&[ '*

(&(.+=!"#$%Z-#&T'4(.<%[ '+

")0&

)%.(0Z,5[ '"

,#..#5Z[ '"

0("/

,#&ZbT'0[ '"

,(bZbT'0[ '"

#(2,10

"(&)+,Q%%)Z5%%)[ '#

"(&)+,Z,#&T',(b[ '#

!&#)(+

Q%"#(.2/%=#&Z"($%[ '$

Q%"#(.2-"#&$.&Z)($([ '$

(..&2,)8

)#=#$(.'+<$-<$ ('

)#=#$(.'#&-<$ ((

6#=6'*<""%&$'+<$-<$ ()

-;,'+<$-<$ (*

-+$%&$#+,%$%"'#&-<$ (+

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

5%"4+'+<$-<$ (#

Page 5: Arduino Programming Notebook

(",8!7,

H6#5'&+$%/++8'5%"4%5'(5'('*+&4%&#%&$T'%(50'$+'<5%'-"+="(,,#&='"%7%"%&*%'7+"'$6%'*+,,(&)'5$"<*$<"%'(&)'/(5#*'50&$(b'+7'$6%'L")<#&+',#*"+*+&$"+..%"2'H+'8%%-'#$'5#,-.%T'*%"$(#&'%b*.<5#+&5';%"%',()%'$6($',(8%'$6#5'('/%=#&&%"c5'"%7%"%&*%'/%5$'<5%)'(5'('5%*+&)("0'5+<"*%'(.+&=5#)%'+$6%"';%/5#$%5T'/++85T';+"856+-5T'+"'*.(55%52'H6#5')%*#5#+&'6(5'.%()'$+'('5.#=6$'%,-6(5#5'+&'<5#&='$6%'L")<#&+'7+"'5$(&)(.+&%'-<"-+5%5'(&)T'7+"'%b(,-.%T'%b*.<)%5'$6%',+"%'*+,-.%b'<5%5'+7'(""(05'+"'()4(&*%)'7+",5'+7'5%"#(.'*+,,<&#*($#+&2

1%=#&&#&=';#$6'$6%'/(5#*'5$"<*$<"%'+7'L")<#&+d5'G')%"#4%)'-"+="(,,#&='.(&=<(=%T'$6#5'&+$%/++8'*+&$#&<%5'+&'$+')%5*"#/%'$6%'50&$(b'+7'$6%',+5$'*+,,+&'%.%,%&$5'+7'$6%'.(&=<(=%'(&)'#..<5$"($%5'$6%#"'<5(=%';#$6'%b(,-.%5'(&)'*+)%'7"(=,%&$52'H6#5'#&*.<)%5',(&0'7<&*$#+&5'+7'$6%'*+"%'.#/"("0'7+..+;%)'/0'(&'(--%&)#b';#$6'5(,-.%'5*6%,($#*5'(&)'5$("$%"'-"+="(,52'H6%'+4%"(..'7+",($'*+,-.#,%&$5'UcQ<..#4(&'(&)'B=+%c5'!"#$%&'()*+,-./%01';6%"%'-+55#/.%2'

K+"'(&'#&$"+)<*$#+&'$+'$6%'L")<#&+'(&)'#&$%"(*$#4%')%5#=&T'"%7%"'$+'1(&D#c5'23//%01)4/'5/36)7%/")856.%0+T'(8('$6%'856.%0+)9++:(3/2'K+"'$6%'/"(4%'7%;'#&$%"%5$%)'#&'$6%'#&$"#*(*#%5'+7'-"+="(,,#&='#&'GT'J%"&#=6(&'(&)'a#$*6#%c5';"3)*)!5+15',,%01)<'01.'13='5%*+&)'%)#$#+&T'(5';%..'(5'?"#&D'(&)'G"(;7+")c5'*)%0)')>./$"3((='-"+4#)%'5+,%'#&5#=6$'#&$+'$6%'+"#=#&(.'-"+="(,,#&='50&$(b2

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

''

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

3+"$7+$",H6%'/(5#*'5$"<*$<"%'+7'$6%'L")<#&+'-"+="(,,#&='.(&=<(=%'#5'7(#".0'5#,-.%'(&)'"<&5'#&'($'.%(5$'$;+'-("$52'H6%5%'$;+'"%e<#"%)'-("$5T'+"'7<&*$#+&5T'%&*.+5%'/.+*85'+7'5$($%,%&$52!!!!!,-./!01234567!!0282191:20;<

,-./!=--4567!!0282191:20;<'

!6%"%'5%$<-Z['#5'$6%'-"%-("($#+&T'.++-Z['#5'$6%'%b%*<$#+&2'1+$6'7<&*$#+&5'("%'"%e<#"%)'7+"'$6%'-"+="(,'$+';+"82

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

H6%'.++-'7<&*$#+&'7+..+;5'&%b$'(&)'#&*.<)%5'$6%'*+)%'$+'/%'%b%*<$%)'*+&$#&<+<5.0'f'"%()#&='#&-<$5T'$"#==%"#&='+<$-<$5T'%$*2'H6#5'7<&*$#+&'#5'$6%'*+"%'+7'(..'L")<#&+'-"+="(,5'(&)')+%5'$6%'/<.8'+7'$6%';+"82'

3,+$(9:H6%'5%$<-Z['7<&*$#+&'#5'*(..%)'+&*%';6%&'0+<"'-"+="(,'5$("$52'Y5%'#$'$+'#&#$#(.#D%'-#&',+)%5T'+"'/%=#&'5%"#(.2'B$',<5$'/%'#&*.<)%)'#&'('-"+="(,'%4%&'#7'$6%"%'("%'&+'5$($%,%&$5'$+'"<&2

,-./!01234567!!4.:>-/154.:?!@ABCAB6;!!!!!!DD!0120!2E1!F4.:F!80!-32432<

;''(9:L7$%"'*(..#&='$6%'5%$<-Z['7<&*$#+&T'$6%'.++-Z['7<&*$#+&')+%5'-"%*#5%.0';6($'#$5'&(,%'5<==%5$5T'(&)'.++-5'*+&5%*<$#4%.0T'(..+;#&='$6%'-"+="(,'$+'*6(&=%T'"%5-+&)T'(&)'*+&$"+.'$6%'L")<#&+'/+(")2',-./!=--4567!!/.G.28=HI.2154.:?!JKLJ6;!!!DD!23I:0!F4.:F!-:!!/1=8M5%&&&6;!!!!!!!!!!!!!!!DD!483010!N-I!-:1!01O-:/!!/.G.28=HI.2154.:?!P@H6;!!!!DD!23I:0!F4.:F!-NN!!/1=8M5%&&&6;!!!!!!!!!!!!!!!DD!483010!N-I!-:1!01O-:/<

02I3O23I1!Q!"

Page 8: Arduino Programming Notebook

8$&7+%'&3L'7<&*$#+&'#5'('/.+*8'+7'*+)%'$6($'6(5'('&(,%'(&)'('/.+*8'+7'5$($%,%&$5'$6($'("%'%b%*<$%)';6%&'$6%'7<&*$#+&'#5'*(..%)2'H6%'7<&*$#+&5'4+#)'5%$<-Z['(&)'4+#)'.++-Z['6(4%'(."%()0'/%%&')#5*<55%)'(&)'+$6%"'/<#.$O#&'7<&*$#+&5';#..'/%')#5*<55%)'.($%"2

G<5$+,'7<&*$#+&5'*(&'/%';"#$$%&'$+'-%"7+",'"%-%$#$#4%'$(585'(&)'"%)<*%'*.<$$%"'#&'('-"+="(,2'K<&*$#+&5'("%')%*.("%)'/0'7#"5$')%*.("#&='$6%'7<&*$#+&'$0-%2'H6#5'#5'$6%'$0-%'+7'4(.<%'$+'/%'"%$<"&%)'/0'$6%'7<&*$#+&'5<*6'(5'd#&$d'7+"'(&'#&$%=%"'$0-%'7<&*$#+&2'B7'&+'4(.<%'#5'$+'/%'"%$<"&%)'$6%'7<&*$#+&'$0-%';+<.)'/%'4+#)2'L7$%"'$0-%T')%*.("%'$6%'&(,%'=#4%&'$+'$6%'7<&*$#+&'(&)'#&'-("%&$6%5#5'(&0'-("(,%$%"5'/%#&='-(55%)'$+'$6%'7<&*$#+&2

2M41!N3:O2.-:R891548I89121I067!!0282191:20;<

H6%'7+..+;#&='#&$%=%"'$0-%'7<&*$#+&')%.(0g(.Z['#5'<5%)'$+'5%$'(')%.(0'4(.<%'#&'('-"+="(,'/0'"%()#&='$6%'4(.<%'+7'('-+$%&$#+,%$%"2'B$'7#"5$')%*.("%5'('.+*(.'4("#(/.%'4T'5%$5'4'$+'$6%'4(.<%'+7'$6%'-+$%&$#+,%$%"';6#*6'=#4%5'('&<,/%"'/%$;%%&'AO@AMRT'$6%&')#4#)%5'$6($'4(.<%'/0'W'7+"'('7#&(.'4(.<%'/%$;%%&'AOMXXT'(&)'7#&(..0'"%$<"&5'$6($'4(.<%'/(*8'$+'$6%',(#&'-"+="(,2

.:2!/1=8MS8=567!!.:2!,;!!!!!!!!!!!!!!!!!!!DD!OI1821!2194-I8IM!,8I.8T=1!F,F!!,!!U!8:8=-GV18/54-26;!!!!DD!I18/!4-21:2.-9121I!,8=31!!,!DU!);!!!!!!!!!!!!!!!!!!DD!O-:,1I20!&W%&'(!2-!&W'**!!I123I:!,;!!!!!!!!!!!!!!!!DD!I123I:!N.:8=!,8=31<

#!Q!02I3O23I1

Page 9: Arduino Programming Notebook

<=/7$";>/-"!7,3G<".0'/"(*%5'Z(.5+'"%7%""%)'$+'(5'h<5$'i/"(*%5i'+"'i*<".0'/"(*8%$5i[')%7#&%'$6%'/%=#&&#&='(&)'%&)'+7'7<&*$#+&'/.+*85'(&)'5$($%,%&$'/.+*85'5<*6'(5'$6%'4+#)'.++-Z['7<&*$#+&'(&)'$6%'7+"'(&)'#7'5$($%,%&$52'

2M41!N3:O2.-:567!!0282191:20;<'

L&'+-%&#&='*<".0'/"(*%'\',<5$'(.;(05'/%'7+..+;%)'/0'('*.+5#&='*<".0'/"(*%']2'H6#5'#5'+7$%&'"%7%""%)'$+'(5'$6%'/"(*%5'/%#&='/(.(&*%)2'Y&/(.(&*%)'/"(*%5'*(&'+7$%&'.%()'$+'*"0-$#*T'#,-%&%$"(/.%'*+,-#.%"'%""+"5'$6($'*(&'5+,%$#,%5'/%'6(")'$+'$"(*8')+;&'#&'('.("=%'-"+="(,2

H6%'L")<#&+'%&4#"+&,%&$'#&*.<)%5'('*+&4%&#%&$'7%($<"%'$+'*6%*8'$6%'/(.(&*%'+7'*<".0'/"(*%52'I<5$'5%.%*$'('/"(*%T'+"'%4%&'*.#*8'$6%'#&5%"$#+&'-+#&$'#,,%)#($%.0'7+..+;#&='('/"(*%T'(&)'#$5'.+=#*(.'*+,-(&#+&';#..'/%'6#=6.#=6$%)2'

?/3,*%7';'&L'5%,#*+.+&',<5$'/%'<5%)'$+'%&)'('5$($%,%&$'(&)'5%-("($%'%.%,%&$5'+7'$6%'-"+="(,2'L'5%,#*+.+&'#5'(.5+'<5%)'$+'5%-("($%'%.%,%&$5'#&'('7+"'.++-2'

.:2!X!U!%(;!!!DD!/1O=8I10!,8I.8T=1!FXF!80!2E1!.:21G1I!%(

6'+,@/K+"=%$$#&='$+'%&)'('.#&%'#&'('5%,#*+.+&';#..'"%5<.$'#&'('*+,-#.%"'%""+"2'H6%'%""+"'$%b$',(0'/%'+/4#+<5T'(&)'"%7%"'$+'(',#55#&='5%,#*+.+&T'+"'#$',(0'&+$2'B7'(&'#,-%&%$"(/.%'+"'5%%,#&=.0'#..+=#*(.'*+,-#.%"'%""+"'*+,%5'<-T'+&%'+7'$6%'7#"5$'$6#&=5'$+'*6%*8'#5'(',#55#&='5%,#*+.+&T'&%("'$6%'.#&%';6%"%'$6%'*+,-#.%"'*+,-.(#&%)2'

02I3O23I1!Q!$

Page 10: Arduino Programming Notebook

ABC/BA/-;'7./7'**,&+31.+*8'*+,,%&$5T'+"',<.$#O.#&%'*+,,%&$5T'("%'("%(5'+7'$%b$'#=&+"%)'/0'$6%'-"+="(,'(&)'("%'<5%)'7+"'.("=%'$%b$')%5*"#-$#+&5'+7'*+)%'+"'*+,,%&$5'$6($'6%.-'+$6%"5'<&)%"5$(&)'-("$5'+7'$6%'-"+="(,2'H6%0'/%=#&';#$6':_'(&)'%&)';#$6'_:'(&)'*(&'5-(&',<.$#-.%'.#&%52'

DY!!2E.0!.0!8:!1:O=-01/!T=-OZ!O-991:2!!!!/-:[2!N-IG12!2E1!O=-0.:G!O-991:2!W!!!!2E1M!E8,1!2-!T1!T8=8:O1/\YD

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

6'+,@/!6#.%'#$'#5'-+55#/.%'$+'%&*.+5%'5#&=.%'.#&%'*+,,%&$5';#$6#&'('/.+*8'*+,,%&$T'%&*.+5#&='('5%*+&)'/.+*8'*+,,%&$'#5'&+$'(..+;%)2

AA/;%&,/7'**,&+3Q#&=.%'.#&%'*+,,%&$5'/%=#&';#$6'::'(&)'%&)';#$6'$6%'&%b$'.#&%'+7'*+)%2'S#8%'/.+*8'*+,,%&$5T'$6%0'("%'#=&+"%)'/0'$6%'-"+="(,'(&)'$(8%'&+',%,+"0'5-(*%2

DD!2E.0!.0!8!0.:G=1!=.:1!O-991:2

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

%&!Q!02I3O23I1

Page 11: Arduino Programming Notebook

2!"%!-;,3L'4("#(/.%'#5'(';(0'+7'&(,#&='(&)'5$+"#&='('&<,%"#*(.'4(.<%'7+"'.($%"'<5%'/0'$6%'-"+="(,2'L5'$6%#"'&(,%5(8%'5<==%5$5T'4("#(/.%5'("%'&<,/%"5'$6($'*(&'/%'*+&$#&<(..0'*6(&=%)'(5'+--+5%)'$+'*+&5$(&$5';6+5%'4(.<%'&%4%"'*6(&=%52'L'4("#(/.%'&%%)5'$+'/%')%*.("%)'(&)'+-$#+&(..0'(55#=&%)'$+'$6%'4(.<%'&%%)#&='$+'/%'5$+"%)2'H6%'7+..+;#&='*+)%')%*.("%5'('4("#(/.%'*(..%)'#&-<$g("#(/.%'(&)'$6%&'(55#=&5'#$'$6%'4(.<%'+/$(#&%)'+&'(&(.+='#&-<$'-#&'M9

.:2!.:432S8I.8T=1!U!&;!!!!!!!!!DD!/1O=8I10!8!,8I.8T=1!8:/!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!800.G:0!,8=31!-N!&.:432S8I.8T=1!U!8:8=-GV18/5'6;!DD!012!,8I.8T=1!2-!,8=31!-N!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!8:8=-G!4.:!'

l#&-<$g("#(/.%c'#5'$6%'4("#(/.%'#$5%.72'H6%'7#"5$'.#&%')%*.("%5'$6($'#$';#..'*+&$(#&'(&'#&$T'56+"$'7+"'#&$%=%"2'H6%'5%*+&)'.#&%'5%$5'$6%'4("#(/.%'$+'$6%'4(.<%'($'(&(.+='-#&'M2'H6#5',(8%5'$6%'4(.<%'+7'-#&'M'(**%55#/.%'%.5%;6%"%'#&'$6%'*+)%2

U&*%'('4("#(/.%'6(5'/%%&'(55#=&%)T'+"'"%O(55#=&%)T'0+<'*(&'$%5$'#$5'4(.<%'$+'5%%'#7'#$',%%$5'*%"$(#&'*+&)#$#+&5T'+"'0+<'*(&'<5%'#$5'4(.<%')#"%*$.02'L5'(&'%b(,-.%'$+'#..<5$"($%'$6"%%'<5%7<.'+-%"($#+&5';#$6'4("#(/.%5T'$6%'7+..+;#&='*+)%'$%5$5';6%$6%"'$6%'#&-<$g("#(/.%'#5'.%55'$6(&'@AAT'#7'$"<%'#$'(55#=&5'$6%'4(.<%'@AA'$+'#&-<$g("#(/.%T'(&)'$6%&'5%$5'(')%.(0'/(5%)'+&'#&-<$g("#(/.%';6#*6'#5'&+;'(',#&#,<,'+7'@AA9

.N!5.:432S8I.8T=1!]!%&&6!DD!21020!,8I.8T=1!.N!=100!2E8:!%&&7!!.:432S8I.8T=1!U!%&&;!!!DD!.N!2I31!800.G:0!,8=31!-N!%&&</1=8M5.:432S8I.8T=16;!!!!DD!3010!,8I.8T=1!80!/1=8M!

6'+,@'g("#(/.%5'56+<.)'/%'=#4%&')%5*"#-$#4%'&(,%5T'$+',(8%'$6%'*+)%',+"%'"%()(/.%2'g("#(/.%'&(,%5'.#8%'$#.$Q%&5+"'+"'-<561<$$+&'6%.-'$6%'-"+="(,,%"'(&)'(&0+&%'%.5%'"%()#&='$6%'*+)%'$+'<&)%"5$(&)';6($'$6%'4("#(/.%'"%-"%5%&$52'g("#(/.%'&(,%5'.#8%'4("'+"'4(.<%T'+&'$6%'+$6%"'6(&)T')+'.#$$.%'$+',(8%'$6%'*+)%'"%()(/.%'(&)'("%'+&.0'<5%)'6%"%'(5'%b(,-.%52'L'4("#(/.%'*(&'/%'&(,%)'(&0';+")'$6($'#5'&+$'(."%()0'+&%'+7'$6%'8%0;+")5'#&'$6%'L")<#&+'.(&=<(=%2

,8I.8T=10!Q!%%

Page 12: Arduino Programming Notebook

2!"%!-;,/#,7;!"!+%'&L..'4("#(/.%5'6(4%'$+'/%')%*.("%)'/%7+"%'$6%0'*(&'/%'<5%)2'F%*.("#&='('4("#(/.%',%(&5')%7#&#&='#$5'4(.<%'$0-%T'(5'#&'#&$T'.+&=T'7.+($T'%$*2T'5%$$#&='('5-%*#7#%)'&(,%T'(&)'+-$#+&(..0'(55#=&#&='(&'#&#$#(.'4(.<%2'H6#5'+&.0'&%%)5'$+'/%')+&%'+&*%'#&'('-"+="(,'/<$'$6%'4(.<%'*(&'/%'*6(&=%)'($'(&0'$#,%'<5#&='("#$6,%$#*'(&)'4("#+<5'(55#=&,%&$52'

H6%'7+..+;#&='%b(,-.%')%*.("%5'$6($'#&-<$g("#(/.%'#5'(&'#&$T'+"'#&$%=%"'$0-%T'(&)'$6($'#$5'#&#$#(.'4(.<%'%e<(.5'D%"+2'H6#5'#5'*(..%)'('5#,-.%'(55#=&,%&$2

.:2!.:432S8I.8T=1!U!&;

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

%'!Q!,8I.8T=10

Page 13: Arduino Programming Notebook

2!"%!-;,/37'(,L'4("#(/.%'*(&'/%')%*.("%)'($'$6%'/%=#&&#&='+7'$6%'-"+="(,'/%7+"%'4+#)'5%$<-Z[T'.+*(..0'#&5#)%'+7'7<&*$#+&5T'(&)'5+,%$#,%5';#$6#&'('5$($%,%&$'/.+*8'5<*6'(5'7+"'.++-52'!6%"%'$6%'4("#(/.%'#5')%*.("%)')%$%",#&%5'$6%'4("#(/.%'5*+-%T'+"'$6%'(/#.#$0'+7'*%"$(#&'-("$5'+7'('-"+="(,'$+',(8%'<5%'+7'$6%'4("#(/.%2

L'=.+/(.'4("#(/.%'#5'+&%'$6($'*(&'/%'5%%&'(&)'<5%)'/0'%4%"0'7<&*$#+&'(&)'5$($%,%&$'#&'('-"+="(,2'H6#5'4("#(/.%'#5')%*.("%)'($'$6%'/%=#&&#&='+7'$6%'-"+="(,T'/%7+"%'$6%'5%$<-Z['7<&*$#+&2

L'.+*(.'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

H6%'7+..+;#&='%b(,-.%'56+;5'6+;'$+')%*.("%'('7%;')#77%"%&$'$0-%5'+7'4("#(/.%5'(&)')%,+&5$"($%5'%(*6'4("#(/.%c5'4#5#/#.#$09

.:2!,8=31;!!!!!!!!!!!!!!!DD!F,8=31F!.0!,.0.T=1!!!!!!!!!!!!!!!!!!!!!!!!!!DD!2-!8:M!N3:O2.-:,-./!01234567!!DD!:-!01234!:11/1/<

,-./!=--4567!!N-I!5.:2!.U&;!.]'&;6!!DD!F.F!.0!-:=M!,.0.T=1!!7!!!!!!!!!!!!!!!!!!!!!DD!.:0./1!2E1!N-IW=--4!!!!.^^;!!!!!!!!!!!!!!!!!<!!N=-82!N;!!!!!!!!!!!!!!DD!FNF!.0!-:=M!,.0.T=1<!!!!!!!!!!!!!!!!!!!!!!!DD!.:0./1!=--4

,8I.8T=10!Q!%(

Page 14: Arduino Programming Notebook

->+,10$%'5$+"%5'(&'mO/#$'&<,%"#*(.'4(.<%';#$6+<$')%*#,(.'-+#&$52'H6%0'6(4%'('"(&=%'+7'AOMXX2

TM21!0-91S8I.8T=1!U!%#&;!!!DD!/1O=8I10!F0-91S8I.8T=1F!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!80!8!TM21!2M41

%&+B&$%=%"5'("%'$6%'-"#,("0')($($0-%'7+"'5$+"(=%'+7'&<,/%"5';#$6+<$')%*#,(.'-+#&$5'(&)'5$+"%'('@nO/#$'4(.<%';#$6'('"(&=%'+7'RMTNnN'$+'ORMTNnm2

.:2!0-91S8I.8T=1!U!%*&&;!!!DD!/1O=8I10!F0-91S8I.8T=1F!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!80!8:!.:21G1I!2M41!

6'+,@/B&$%=%"'4("#(/.%5';#..'"+..'+4%"'#7'7+"*%)'-(5$'$6%#"',(b#,<,'+"',#&#,<,'4(.<%5'/0'(&'(55#=&,%&$'+"'*+,-("#5+&2'K+"'%b(,-.%T'#7'X!U!('"+"'(&)'('5</5%e<%&$'5$($%,%&$'())5'@'$+'bT'X!U!X!^!%!-I!X^^T'b';#..'$6%&'"+..+4%"'(&)'%e<(.'ORMTNnm2

;'&)3b$%&)%)'5#D%')($($0-%'7+"'.+&='#&$%=%"5T';#$6+<$')%*#,(.'-+#&$5T'5$+"%)'#&'('RMO/#$'4(.<%';#$6'('"(&=%'+7'MT@WNTWmRTnWN'$+'OMT@WNTWmRTnWm2'

=-:G!0-91S8I.8T=1!U!$&&&&;!DD!/1O=8I10!F0-91S8I.8T=1F!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!80!8!=-:G!2M41

8;'!+L')($($0-%'7+"'7.+($#&=O-+#&$'&<,/%"5T'+"'&<,/%"5'$6($'6(4%'(')%*#,(.'-+#&$2'K.+($#&=O-+#&$'&<,/%"5'6(4%'="%($%"'"%5+.<$#+&'$6(&'#&$%=%"5'(&)'("%'5$+"%)'(5'('RMO/#$'4(.<%';#$6'('"(&=%'+7'R2WAMmMRX3oRm'$+'OR2WAMmMRX3oRm2

N=-82!0-91S8I.8T=1!U!(_%);!DD!/1O=8I10!F0-91S8I.8T=1F!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!80!8!N=-82.:GW4-.:2!2M41'6'+,@/K.+($#&=O-+#&$'&<,/%"5'("%'&+$'%b(*$T'(&)',(0'0#%.)'5$"(&=%'"%5<.$5';6%&'*+,-("%)2'K.+($#&='-+#&$',($6'#5'(.5+',<*6'5.+;%"'$6(&'#&$%=%"',($6'#&'-%"7+",#&='*(.*<.($#+&5T'5+'56+<.)'/%'(4+#)%)'#7'-+55#/.%2

%)!Q!/8282M410

Page 15: Arduino Programming Notebook

!""!>3L&'(""(0'#5'('*+..%*$#+&'+7'4(.<%5'$6($'("%'(**%55%)';#$6'(&'#&)%b'&<,/%"2'L&0'4(.<%'#&'$6%'(""(0',(0'/%'*(..%)'<-+&'/0'*(..#&='$6%'&(,%'+7'$6%'(""(0'(&)'$6%'#&)%b'&<,/%"'+7'$6%'4(.<%2'L""(05'("%'D%"+'#&)%b%)T';#$6'$6%'7#"5$'4(.<%'#&'$6%'(""(0'/%=#&&#&='($'#&)%b'&<,/%"'A2'L&'(""(0'&%%)5'$+'/%')%*.("%)'(&)'+-$#+&(..0'(55#=&%)'4(.<%5'/%7+"%'$6%0'*(&'/%'<5%)2

.:2!9M`II8Mab!U!7,8=31&?!,8=31%?!,8=31'___<

S#8%;#5%'#$'#5'-+55#/.%'$+')%*.("%'(&'(""(0'/0')%*.("#&='$6%'(""(0'$0-%'(&)'5#D%'(&)'.($%"'(55#=&'4(.<%5'$+'(&'#&)%b'-+5#$#+&9

.:2!9M`II8Ma*b;!!!!DD!/1O=8I10!.:21G1I!8II8M!cD!+!4-0.2.-:09M`II8Ma(b!U!%&;!!!DD!800.G:0!2E1!)2E!.:/1X!2E1!,8=31!%&

H+'"%$"#%4%'('4(.<%'7"+,'(&'(""(0T'(55#=&'('4("#(/.%'$+'$6%'(""(0'(&)'#&)%b'-+5#$#+&9

X!U!9M`II8Ma(b;!!!!DD!X!:-c!1d38=0!%&

L""(05'("%'+7$%&'<5%)'#&'7+"'.++-5T';6%"%'$6%'#&*"%,%&$'*+<&$%"'#5'(.5+'<5%)'(5'$6%'#&)%b'-+5#$#+&'7+"'%(*6'(""(0'4(.<%2'H6%'7+..+;#&='%b(,-.%'<5%5'(&'(""(0'$+'7.#*8%"'(&'S3F2'Y5#&='('7+"'.++-T'$6%'*+<&$%"'/%=#&5'($'AT';"#$%5'$6%'4(.<%'*+&$(#&%)'($'#&)%b'-+5#$#+&'A'#&'$6%'(""(0'7.#*8%"pqT'#&'$6#5'*(5%'@mAT'$+'$6%'?!C'-#&'@AT'-(<5%5'7+"'MAA,5T'$6%&',+4%5'$+'$6%'&%b$'#&)%b'-+5#$#+&2

.:2!=1/C.:!U!%&;!!!!!!!!!!!!!!!!!!!!!DD!Pef!-:!4.:!%&TM21!N=.OZ1Iab!U!7%#&?!(&?!'**?!'&&?!%&?!$&?!%*&?!+&<;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!8T-,1!8II8M!-N!#!,-./!0123456!!!!!!!!!!!!!!!!!!!!!!!!!DD!/.NN1I1:2!,8=3107!!4.:>-/15=1/C.:?!@ABCAB6;!!!!!!!!!!!DD!0120!@ABCAB!4.:<

,-./!=--4567!!N-I5.:2!.U&;!.]";!.^^6!!!!!!!!!!!!!DD!=--4!1d38=0!:39T1I!!7!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!-N!,8=310!.:!8II8M!!!!8:8=-GHI.215=1/C.:?!N=.OZ1Ia.b6;!DD!cI.21!.:/1X!,8=31!!!!/1=8M5'&&6;!!!!!!!!!!!!!!!!!!!!!!DD!48301!'&&90!!<<

/8282M410!Q!%*

Page 16: Arduino Programming Notebook

!"%+D*,+%7L"#$6,%$#*'+-%"($+"5'#&*.<)%'())#$#+&T'5</$"(*$#+&T',<.$#-.#*($#+&T'(&)')#4#5#+&2'H6%0'"%$<"&'$6%'5<,T')#77%"%&*%T'-"+)<*$T'+"'e<+$#%&$'Z"%5-%*$#4%.0['+7'$;+'+-%"(&)52

M!U!M!^!(;X!U!X!W!";.!U!g!Y!+;I!U!I!D!*;

H6%'+-%"($#+&'#5'*+&)<*$%)'<5#&='$6%')($('$0-%'+7'$6%'+-%"(&)5T'5+T'7+"'%b(,-.%T'V':'W'"%5<.$5'#&'M'#&5$%()'+7'M2MX'5#&*%'V'(&)'W'("%'#&$5'(&)'("%'#&*(-(/.%'+7'<5#&=')%*#,(.'-+#&$52'H6#5'(.5+',%(&5'$6($'$6%'+-%"($#+&'*(&'+4%"7.+;'#7'$6%'"%5<.$'#5'.("=%"'$6(&';6($'*(&'/%'5$+"%)'#&'$6%')($('$0-%2'

B7'$6%'+-%"(&)5'("%'+7')#77%"%&$'$0-%5T'$6%'.("=%"'$0-%'#5'<5%)'7+"'$6%'*(.*<.($#+&2'K+"'%b(,-.%T'#7'+&%'+7'$6%'&<,/%"5'Z+-%"(&)5['("%'+7'$6%'$0-%'7.+($'(&)'$6%'+$6%"'+7'$0-%'#&$%=%"T'7.+($#&='-+#&$',($6';#..'/%'<5%)'7+"'$6%'*(.*<.($#+&2

G6++5%'4("#(/.%'5#D%5'$6($'("%'.("=%'%&+<=6'$+'6+.)'$6%'.("=%5$'"%5<.$5'7"+,'0+<"'*(.*<.($#+&52'J&+;'($';6($'-+#&$'0+<"'4("#(/.%';#..'"+..+4%"'(&)'(.5+';6($'6(--%&5'#&'$6%'+$6%"')#"%*$#+&'%2=2'ZA'O'@['Ua'ZA'O'O'RMNnm[2'K+"',($6'$6($'"%e<#"%5'7"(*$#+&5T'<5%'7.+($'4("#(/.%5T'/<$'/%'(;("%'+7'$6%#"')"(;/(*859'.("=%'5#D%'(&)'5.+;'*+,-<$($#+&'5-%%)52'

6'+,@/Y5%'$6%'*(5$'+-%"($+"'%2=2'Z#&$[,0K.+($'$+'*+&4%"$'+&%'4("#(/.%'$0-%'$+'(&+$6%"'+&'$6%'7.02'K+"'%b(,-.%T'.!U!5.:26(_+';#..'5%$'#'%e<(.'$+'R2

7'*('$&#/!33%)&*,&+3G+,-+<&)'(55#=&,%&$5'*+,/#&%'(&'("#$6,%$#*'+-%"($#+&';#$6'('4("#(/.%'(55#=&,%&$2'H6%5%'("%'*+,,+&.0'7+<&)'#&'7+"'.++-5'(5')%5*"#/%)'.($%"2'H6%',+5$'*+,,+&'*+,-+<&)'(55#=&,%&$5'#&*.<)%9

X!^^!!!!!!DD!0891!80!X!U!X!^!%?!-I!.:OI191:20!X!TM!^%X!WW !!!!DD!0891!80!X!U!X!W!%?!-I!/1OI191:20!X!TM!W%X!^U!M!!!!DD!0891!80!X!U!X!^!M?!-I!.:OI191:20!X!TM!^MX!WU!M!!!!DD!0891!80!X!U!X!W!M?!-I!/1OI191:20!X!TM!WMX!YU!M!!!!DD!0891!80!X!U!X!Y!M?!-I!93=2.4=.10!X!TM!MX!DU!M!!!!DD!0891!80!X!U!X!D!M?!-I!/.,./10!X!TM!M

6'+,@'K+"'%b(,-.%T'b'_r'R';+<.)'$"#-.%'$6%'+.)'4(.<%'+7'b'(&)'"%O(55#=&'$6%'"%5<.$#&='4(.<%'$+'b2

%+!Q!8I.2E912.O

Page 17: Arduino Programming Notebook

7'*(!"%3'&/'(,"!+'"3G+,-("#5+&5'+7'+&%'4("#(/.%'+"'*+&5$(&$'(=(#&5$'(&+$6%"'("%'+7$%&'<5%)'#&'#7'5$($%,%&$5'$+'$%5$'#7'('5-%*#7#%)'*+&)#$#+&'#5'$"<%2'B&'$6%'%b(,-.%5'7+<&)'+&'$6%'7+..+;#&='-(=%5T'ss'#5'<5%)'$+'#&)#*($%'(&0'+7'$6%'7+..+;#&='*+&)#$#+&59

X!UU!M!!!!DD!X!.0!1d38=!2-!MX!\U!M!!!!DD!X!.0!:-2!1d38=!2-!MX!]!!M!!!!DD!X!.0!=100!2E8:!M!!X!h!!M!!!!DD!X!.0!GI1821I!2E8:!M!X!]U!M!!!!DD!X!.0!=100!2E8:!-I!1d38=!2-!M!X!hU!M!!!!DD!X!.0!GI1821I!2E8:!-I!1d38=!2-!M

;')%7!;/'(,"!+'"3S+=#*(.'+-%"($+"5'("%'<5<(..0'(';(0'$+'*+,-("%'$;+'%b-"%55#+&5'(&)'"%$<"&'('HaY3'+"'KLSQ3')%-%&)#&='+&'$6%'+-%"($+"2'H6%"%'("%'$6"%%'.+=#*(.'+-%"($+"5T'LPFT'UaT'(&)'PUHT'$6($'("%'+7$%&'<5%)'#&'#7'5$($%,%&$59

S+=#*(.'LPF9.N!5X!h!&!ii!X!]!*6!!!!DD!2I31!-:=M!.N!T-2E!!!!!!!!!!!!!!!!!!!!!!!DD!1X4I100.-:0!8I1!2I31

S+=#*(.'Ua9.N!5X!h!&!QQ!M!h!&6!!!!DD!2I31!.N!1.2E1I!!!!!!!!!!!!!!!!!!!!!!!!DD!1X4I100.-:!.0!2I31

S+=#*(.'PUH9.N!5\X!h!&6!!!!!!!!!!!!DD!2I31!-:=M!.N!!!!!!!!!!!!!!!!!!!!!!!!DD!1X4I100.-:!.0!N8=01

''

8I.2E912.O!Q!%"

Page 18: Arduino Programming Notebook

7'&3+!&+3H6%'L")<#&+'.(&=<(=%'6(5'('7%;'-"%)%7#&%)'4(.<%5T';6#*6'("%'*(..%)'*+&5$(&$52'H6%0'("%'<5%)'$+',(8%'$6%'-"+="(,5'%(5#%"'$+'"%()2'G+&5$(&$5'("%'*.(55#7#%)'#&'="+<-52

+"$,A8!;3,H6%5%'("%'1++.%(&'*+&5$(&$5'$6($')%7#&%'.+=#*'.%4%.52'KLSQ3'#5'%(5#.0')%7#&%)'(5'A'ZD%"+[';6#.%'HaY3'#5'+7$%&')%7#&%)'(5'@T'/<$'*(&'(.5+'/%'(&0$6#&='%.5%'%b*%-$'D%"+2'Q+'#&'('1++.%(&'5%&5%T'O@T'MT'(&)'OMAA'("%'(..'(.5+')%7#&%)'(5'HaY32

.N!5T!UU!BVAe6;7!!/-j-912E.:G;<

D%)DA;'0H6%5%'*+&5$(&$5')%7#&%'-#&'.%4%.5'(5'>Bt>'+"'SU!'(&)'("%'<5%)';6%&'"%()#&='+"';"#$#&='$+')#=#$(.'-#&52'>Bt>'#5')%7#&%)'(5'.+=#*'.%4%.'@T'UPT'+"'X'4+.$5';6#.%'SU!'#5'.+=#*'.%4%.'AT'UKKT'+"'A'4+.$52

/.G.28=HI.215%(?!JKLJ6;

%&($+A'$+($+G+&5$(&$5'<5%)';#$6'$6%'-#&C+)%Z['7<&*$#+&'$+')%7#&%'$6%',+)%'+7'(')#=#$(.'-#&'(5'%#$6%"'BP?YH'+"'UYH?YH2

4.:>-/15%(?!@ABCAB6;

%#!Q!O-:028:20

Page 19: Arduino Programming Notebook

%8#7'5$($%,%&$5'$%5$';6%$6%"'('*%"$(#&'*+&)#$#+&'6(5'/%%&'"%(*6%)T'5<*6'(5'(&'(&(.+='4(.<%'/%#&='(/+4%'('*%"$(#&'&<,/%"T'(&)'%b%*<$%5'(&0'5$($%,%&$5'#&5#)%'$6%'/"(*8%$5'#7'$6%'5$($%,%&$'#5'$"<%2'B7'7(.5%'$6%'-"+="(,'58#-5'+4%"'$6%'5$($%,%&$2'H6%'7+",($'7+"'(&'#7'$%5$'#59

.N!50-91S8I.8T=1!kk!,8=3167!!/-j-912E.:G;<

H6%'(/+4%'%b(,-.%'*+,-("%5'5+,%g("#(/.%'$+'(&+$6%"'4(.<%T';6#*6'*(&'/%'%#$6%"'('4("#(/.%'+"'*+&5$(&$2'B7'$6%'*+,-("#5+&T'+"'*+&)#$#+&'#&'-("%&$6%5%5'#5'$"<%T'$6%'5$($%,%&$5'#&5#)%'$6%'/"(*8%$5'("%'"<&2'B7'&+$T'$6%'-"+="(,'58#-5'+4%"'$6%,'(&)'*+&$#&<%5'+&'(7$%"'$6%'/"(*8%$52'

6'+,@/1%;("%'+7'(**#)%&$(..0'<5#&='lrcT'(5'#&'.N5XU%&6T';6#.%'$%*6&#*(..0'4(.#)T')%7#&%5'$6%'4("#(/.%'b'$+'$6%'4(.<%'+7'@A'(&)'#5'(5'('"%5<.$'(.;(05'$"<%2'B&5$%()'<5%'lrrcT'(5'#&'.N5XUU%&6T';6#*6'+&.0'$%5$5';6%$6%"'b'6(--%&5'$+'%e<(.'$6%'4(.<%'@A'+"'&+$2'H6#&8'+7'lrc'(5'?3@.'($A'+--+5%)'$+'lrrc'/%#&='?%$)3@.'()/+A2'

N=-c!O-:2I-=!Q!%$

Page 20: Arduino Programming Notebook

%8C/,;3,#7`'%.5%'(..+;5'7+"'l%#$6%"O+"c')%*#5#+&5'$+'/%',()%2'K+"'%b(,-.%T'#7'0+<';(&$%)'$+'$%5$'(')#=#$(.'#&-<$T'(&)')+'+&%'$6#&='#7'$6%'#&-<$';%&$'>Bt>'+"'#&5$%()')+'(&+$6%"'$6#&='#7'$6%'#&-<$';(5'SU!T'0+<';+<.)';"#$%'$6($'$6#5';(09

.N!5.:432C.:!UU!JKLJ67!!/-BE.:G`;<1=017!!/-BE.:Gl;<

%.5%'*(&'(.5+'-"%*%)%'(&+$6%"'#7'$%5$T'5+'$6($',<.$#-.%T',<$<(..0'%b*.<5#4%'$%5$5'*(&'/%'"<&'($'$6%'5(,%'$#,%2'B$'#5'%4%&'-+55#/.%'$+'6(4%'(&'<&.#,#$%)'&<,/%"'+7'$6%5%'%.5%'/"(&*6%52'a%,%,/%"'$6+<=6T'+&.0'+&%'5%$'+7'5$($%,%&$5';#..'/%'"<&')%-%&)#&='+&'$6%'*+&)#$#+&'$%5$59

.N!5.:432C.:!]!*&&67!!/-BE.:G`;<1=01!.N!5.:432C.:!hU!%&&&67!!/-BE.:Gl;<1=017!!/-BE.:Gm;<

6'+,@/L&'#7'5$($%,%&$'5#,-.0'$%5$5';6%$6%"'$6%'*+&)#$#+&'#&5#)%'$6%'-("%&$6%5#5'#5'$"<%'+"'7(.5%2'H6#5'5$($%,%&$'*(&'/%'(&0'4(.#)'G'5$($%,%&$'(5'#&'$6%'7#"5$'%b(,-.%T'.N!5.:432C.:!UU!JKLJ62'B&'$6#5'%b(,-.%T'$6%'#7'5$($%,%&$'+&.0'*6%*85'$+'5%%'#7'#&)%%)'$6%'5-%*#7#%)'#&-<$'#5'($'.+=#*'.%4%.'6#=6T'+"'oX42'

'&!Q!N=-c!O-:2I-=

Page 21: Arduino Programming Notebook

8'"H6%'7+"'5$($%,%&$'#5'<5%)'$+'"%-%($'('/.+*8'+7'5$($%,%&$5'%&*.+5%)'#&'*<".0'/"(*%5'('5-%*#7#%)'&<,/%"'+7'$#,%52'L&'#&*"%,%&$'*+<&$%"'#5'+7$%&'<5%)'$+'#&*"%,%&$'(&)'$%",#&($%'$6%'.++-2'H6%"%'("%'$6"%%'-("$5T'5%-("($%)'/0'5%,#*+.+&5'Z^[T'$+'$6%'7+"'.++-'6%()%"9

N-I!5.:.2.8=.n82.-:;!O-:/.2.-:;!1X4I100.-:6!7!!/-j-912E.:G;<

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

H6%'7+..+;#&='%b(,-.%'5$("$5'$6%'#&$%=%"'#'($'AT'$%5$5'$+'5%%'#7'#'#5'5$#..'.%55'$6(&'MA'(&)'#7'$"<%T'#&*"%,%&$5'#'/0'@'(&)'%b%*<$%5'$6%'%&*.+5%)'5$($%,%&$59

N-I!5.:2!.U&;!.]'&;!.^^6!!DD!/1O=8I10!.?!21020!.N!=100!7!!!!!!!!!!!!!!!!!!!!!!!!!DD!2E8:!'&?!.:OI191:20!.!TM!%!!!/.G.28=HI.215%(?!JKLJ6;!DD!23I:0!4.:!%(!-:!!!/1=8M5'*&6;!!!!!!!!!!!!!DD!483010!N-I!%D)!01O-:/!!/.G.28=HI.215%(?!P@H6;!!DD!23I:0!4.:!%(!-NN!!/1=8M5'*&6;!!!!!!!!!!!!!DD!483010!N-I!%D)!01O-:/<!

6'+,@'H6%'G'7+"'.++-'#5',<*6',+"%'7.%b#/.%'$6(&'7+"'.++-5'7+<&)'#&'5+,%'+$6%"'*+,-<$%"'.(&=<(=%5T'#&*.<)#&='1LQBG2'L&0'+"'(..'+7'$6%'$6"%%'6%()%"'%.%,%&$5',(0'/%'+,#$$%)T'(.$6+<=6'$6%'5%,#*+.+&5'("%'"%e<#"%)2'L.5+'$6%'5$($%,%&$5'7+"'#&#$#(.#D($#+&T'*+&)#$#+&T'(&)'%b-"%55#+&'*(&'/%'(&0'4(.#)'G'5$($%,%&$5';#$6'<&"%.($%)'4("#(/.%52'H6%5%'$0-%5'+7'<&<5<(.'7+"'5$($%,%&$5',(0'-"+4#)%'5+.<$#+&5'$+'5+,%'"("%'-"+="(,,#&='-"+/.%,52'

N=-c!O-:2I-=!Q!'%

Page 22: Arduino Programming Notebook

0D%;,;6#.%'.++-5';#..'.++-'*+&$#&<+<5.0T'(&)'#&7#&#$%.0T'<&$#.'$6%'%b-"%55#+&'#&5#)%'$6%'-("%&$6%5#5'/%*+,%5'7(.5%2'Q+,%$6#&=',<5$'*6(&=%'$6%'$%5$%)'4("#(/.%T'+"'$6%';6#.%'.++-';#..'&%4%"'%b#$2'H6#5'*+<.)'/%'#&'0+<"'*+)%T'5<*6'(5'(&'#&*"%,%&$%)'4("#(/.%T'+"'(&'%b$%"&(.'*+&)#$#+&T'5<*6'(5'$%5$#&='('5%&5+"2

cE.=1!50-91S8I.8T=1!kk!,8=3167!!/-j-912E.:G;<

H6%'7+..+;#&='%b(,-.%'$%5$5';6%$6%"'l5+,%g("#(/.%c'#5'.%55'$6(&'MAA'(&)'#7'$"<%'%b%*<$%5'$6%'5$($%,%&$5'#&5#)%'$6%'/"(*8%$5'(&)';#..'*+&$#&<%'.++-#&='<&$#.'l5+,%g("#(/.%c'#5'&+'.+&=%"'.%55'$6(&'MAA2

HE.=1!50-91S8I.8T=1!]!'&&6!DD!21020!.N!=100!2E8:!'&&7!!/-j-912E.:G;!!!!!!!!!!!!!DD!1X1O3210!1:O=-01/!0282191:20!!0-91S8I.8T=1^^;!!!!!!!!!!DD!.:OI191:20!,8I.8T=1!TM!%<

#'C/0D%;,H6%')+'.++-'#5'('/+$$+,')"#4%&'.++-'$6($';+"85'#&'$6%'5(,%',(&&%"'(5'$6%';6#.%'.++-T';#$6'$6%'%b*%-$#+&'$6($'$6%'*+&)#$#+&'#5'$%5$%)'($'$6%'%&)'+7'$6%'.++-T'5+'$6%')+'.++-';#..'(.;(05'"<&'($'.%(5$'+&*%2

/-7!!/-j-912E.:G;<!cE.=1!50-91S8I.8T=1!kk!,8=316;

H6%'7+..+;#&='%b(,-.%'(55#=&5'"%()Q%&5+"5Z['$+'$6%'4("#(/.%'lbcT'-(<5%5'7+"'XA',#..#5%*+&)5T'$6%&'.++-5'#&)%7#&#$%.0'<&$#.'lbc'#5'&+'.+&=%"'.%55'$6(&'@AA9

/-7!!X!U!I18/j1:0-I056;!!!!DD!800.G:0!2E1!,8=31!-N!!!!!!!!!!!!!!!!!!!!!!!!!!DD!I18/j1:0-I056!2-!X!!/1=8M5*&6;!!!!!!!!!!!!DD!483010!*&!9.==.01O-:/0<!cE.=1!5X!]!%&&6;!!!!!!DD!=--40!.N!X!.0!=100!2E8:!%&&

''!Q!N=-c!O-:2I-=

Page 23: Arduino Programming Notebook

(%&E'#,9(%&F/*'#,:Y5%)'#&',-./!0123456'$+'*+&7#=<"%'('5-%*#7#%)'-#&'$+'/%6(4%'%#$6%"'(5'(&'BP?YH'+"'(&'UYH?YH2

4.:>-/154.:?!@ABCAB6;!!!!DD!0120!o4.:[!2-!-32432

L")<#&+')#=#$(.'-#&5')%7(<.$'$+'#&-<$5T'5+'$6%0')+&d$'&%%)'$+'/%'%b-.#*#$.0')%*.("%)'(5'#&-<$5';#$6'-#&C+)%Z[2'?#&5'*+&7#=<"%)'(5'BP?YH'("%'5(#)'$+'/%'#&'('6#=6O#,-%)(&*%'5$($%2

H6%"%'("%'(.5+'*+&4%&#%&$'MAJu'-<..<-'"%5#5$+"5'/<#.$'#&$+'$6%'L$,%=('*6#-'$6($'*(&'/%'(**%55%)'7"+,'5+7$;("%2'H6%5%'/<#.$O#&'-<..<-'"%5#5$+"5'("%'(**%55%)'#&'$6%'7+..+;#&=',(&&%"9

4.:>-/154.:?!KRCAB6;!!!!!!!!DD!012!o4.:[!2-!.:432/.G.28=HI.2154.:?!JKLJ6;!!!!DD!23I:!-:!43==34!I10.02-I0

?<..<-'"%5#5$+"5';+<.)'&+",(..0'/%'<5%)'7+"'*+&&%*$#&='#&-<$5'.#8%'5;#$*6%52'P+$#*%'#&'$6%'(/+4%'%b(,-.%'#$')+%5'&+$'*+&4%"$!4.:!$+'(&'+<$-<$T'#$'#5',%"%.0'(',%$6+)'7+"'(*$#4($#&='$6%'#&$%"&(.'-<..O<-52

?#&5'*+&7#=<"%)'(5'UYH?YH'("%'5(#)'$+'/%'#&'('.+;O#,-%)(&*%'5$($%'(&)'*(&'-"+4#)%'WA',L'Z,#..#(,-5['+7'*<""%&$'$+'+$6%"')%4#*%5:*#"*<#$52'H6#5'#5'%&+<=6'*<""%&$'$+'/"#=6$.0'.#=6$'<-'(&'S3F'Z)+&d$'7+"=%$'$6%'5%"#%5'"%5#5$+"[T'/<$'&+$'%&+<=6'*<""%&$'$+'"<&',+5$'"%.(05T'5+.%&+#)5T'+"',+$+"52

Q6+"$'*#"*<#$5'+&'L")<#&+'-#&5'(&)'%b*%55#4%'*<""%&$'*(&')(,(=%'+"')%5$"+0'$6%'+<$-<$'-#&T'+"')(,(=%'$6%'%&$#"%'L$,%=('*6#-2'B$'#5'+7$%&'('=++)'#)%('$+'*+&&%*$'(&'UYH?YH'-#&'$+'(&'%b$%"&(.')%4#*%'#&'5%"#%5';#$6'('WNAu'+"'@Ju'"%5#5$+"2'

/.G.28=!.D-!Q!'(

Page 24: Arduino Programming Notebook

#%)%+!;G,!#9(%&:a%()5'$6%'4(.<%'7"+,'('5-%*#7#%)')#=#$(.'-#&';#$6'$6%'"%5<.$'%#$6%"'>Bt>'+"'SU!2'H6%'-#&'*(&'/%'5-%*#7#%)'(5'%#$6%"'('4("#(/.%'+"'*+&5$(&$'ZAO@R[2

,8=31!U!/.G.28=V18/5C.:6;!!!DD!0120!F,8=31F!1d38=!2-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!2E1!.:432!4.:

#%)%+!;H"%+,9(%&F/2!;$,:U<-<$5'%#$6%"'.+=#*'.%4%.'>Bt>'+"'SU!'($'Z$<"&5'+&'+"'+77['('5-%*#7#%)')#=#$(.'-#&2'H6%'-#&'*(&'/%'5-%*#7#%)'(5'%#$6%"'('4("#(/.%'+"'*+&5$(&$'ZAO@R[2

/.G.28=HI.2154.:?!JKLJ6;!!!DD!0120!F4.:F!2-!E.GE

H6%'7+..+;#&='%b(,-.%'"%()5'('-<56/<$$+&'*+&&%*$%)'$+'(')#=#$(.'#&-<$'(&)'$<"&5'+&'(&'S3F'*+&&%*$%)'$+'(')#=#$(.'+<$-<$';6%&'$6%'/<$$+&'6(5'/%%&'-"%55%)9

.:2!=1/!!!U!%(;!!!DD!O-::1O2!Pef!2-!4.:!%(

.:2!4.:!!!U!!";!!!DD!O-::1O2!430ET322-:!2-!4.:!"

.:2!,8=31!U!!&;!!!DD!,8I.8T=1!2-!02-I1!2E1!I18/!,8=31

,-./!01234567!!4.:>-/15=1/?!@ABCAB6;!!!!DD!0120!4.:!%(!80!-32432!!4.:>-/154.:?!KRCAB6;!!!!!DD!0120!4.:!"!80!.:432<

,-./!=--4567!!,8=31!U!/.G.28=V18/54.:6;!!DD!0120!F,8=31F!1d38=!2-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!2E1!.:432!4.:!!/.G.28=HI.215=1/?!,8=316;!!DD!0120!F=1/F!2-!2E1<!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!T322-:F0!,8=31

')!Q!/.G.28=!.D-

Page 25: Arduino Programming Notebook

!&!;')G,!#9(%&:a%()5'$6%'4(.<%'7"+,'('5-%*#7#%)'(&(.+='-#&';#$6'('@AO/#$'"%5+.<$#+&2'H6#5'7<&*$#+&'+&.0';+"85'+&'$6%'(&(.+='#&'-#&5'ZAOX[2'H6%'"%5<.$#&='#&$%=%"'4(.<%5'"(&=%'7"+,'A'$+'@AMR2',8=31!U!8:8=-GV18/54.:6;!!DD!0120!F,8=31F!1d38=!2-!F4.:F

6'+,@'L&(.+='-#&5'<&.#8%')#=#$(.'+&%5T')+'&+$'&%%)'$+'/%'7#"5$')%*.("%)'(5'BP?YH'&+"'UYH?YH2

8:8=-G!.D-!Q!'*

Page 26: Arduino Programming Notebook

!&!;')H"%+,9(%&F/2!;$,:!"#$%5'('-5%<)+O(&(.+='4(.<%'<5#&='6(");("%'%&(/.%)'-<.5%';#)$6',+)<.($#+&'Z?!C['$+'(&'+<$-<$'-#&',("8%)'?!C2'U&'&%;%"'L")<#&+5';#$6'$6%'LH,%=(@nm'*6#-T'$6#5'7<&*$#+&';+"85'+&'-#&5'RT'XT'nT'VT'@AT'(&)'@@2'U.)%"'L")<#&+5';#$6'(&'LH,%=(m'+&.0'5<--+"$'-#&5'VT'@AT'(&)'@@2'H6%'4(.<%'*(&'/%'5-%*#7#%)'(5'('4("#(/.%'+"'*+&5$(&$';#$6'('4(.<%'7"+,'AOMXX2

8:8=-GHI.2154.:?!,8=316;!!DD!cI.210!F,8=31F!2-!8:8=-G!F4.:F

L'4(.<%'+7'A'=%&%"($%5'('5$%()0'A'4+.$5'+<$-<$'($'$6%'5-%*#7#%)'-#&^'('4(.<%'+7'MXX'=%&%"($%5'('5$%()0'X'4+.$5'+<$-<$'($'$6%'5-%*#7#%)'-#&2'K+"'4(.<%5'#&'/%$;%%&'A'(&)'MXXT'$6%'-#&'"(-#).0'(.$%"&($%5'/%$;%%&'A'(&)'X'4+.$5'O'$6%'6#=6%"'$6%'4(.<%T'$6%',+"%'+7$%&'$6%'-#&'#5'>Bt>'ZX'4+.$5[2'K+"'%b(,-.%T'('4(.<%'+7'nW';#..'/%'A'4+.$5'$6"%%Oe<("$%"5'+7'$6%'$#,%T'(&)'X'4+.$5'+&%'e<("$%"'+7'$6%'$#,%^'('4(.<%'+7'@Mm';#..'/%'($'A'6(.7'$6%'$#,%'(&)'MXX'6(.7'$6%'$#,%^'(&)'('4(.<%'+7'@VM';#..'/%'A'4+.$5'+&%'e<("$%"'+7'$6%'$#,%'(&)'X'4+.$5'$6"%%Oe<("$%"5'+7'$6%'$#,%2

1%*(<5%'$6#5'#5'('6(");("%'7<&*$#+&T'$6%'-#&';#..'=%&%"($%'('5$%()0';(4%'(7$%"'('*(..'$+'(&(.+=!"#$%'#&'$6%'/(*8="+<&)'<&$#.'$6%'&%b$'*(..'$+'(&(.+=!"#$%'Z+"'('*(..'$+')#=#$(.a%()'+"')#=#$(.!"#$%'+&'$6%'5(,%'-#&[2

6'+,@'L&(.+='-#&5'<&.#8%')#=#$(.'+&%5T')+'&+$'&%%)'$+'/%'7#"5$')%*.("%)'(5'BP?YH'&+"'UYH?YH2

H6%'7+..+;#&='%b(,-.%'"%()5'(&'(&(.+='4(.<%'7"+,'(&'(&(.+='#&-<$'-#&T'*+&4%"$5'$6%'4(.<%'/0')#4#)#&='/0'WT'(&)'+<$-<$5'('?!C'5#=&(.'+&'('?!C'-#&9

.:2!=1/!U!%&;!!!!DD!Pef!c.2E!''&!I10.02-I!-:!4.:!%&

.:2!4.:!U!!&;!!!!DD!4-21:2.-9121I!-:!8:8=-G!4.:!&

.:2!,8=31;!!!!!!!DD!,8=31!N-I!I18/.:G

,-./!01234567<!!!DD!:-!01234!:11/1/

,-./!=--4567!!,8=31!U!!8:8=-GV18/54.:6;!!DD!0120!F,8=31F!1d38=!2-!F4.:F!!,8=31!DU!);!!!!!!!!!!!!!!!!DD!O-:,1I20!&W%&'(!2-!&W'**!!8:8=-GHI.215=1/?!,8=316;!!!DD!-324320!CH>!0.G:8=!2-!=1/<

'+!Q!8:8=-G!.D-

Page 27: Arduino Programming Notebook

#,;!>9*3:?(<5%5'0+<"'-"+="(,'7+"'$6%'(,+<&$'+7'$#,%'(5'5-%*#7#%)'#&',#..#5%*+&)5T';6%"%'@AAA'%e<(.5'@'5%*+&)2

/1=8M5%&&&6;!!!DD!c8.20!N-I!-:1!01O-:/

*%;;%39:a%$<"&5'$6%'&<,/%"'+7',#..#5%*+&)5'5#&*%'$6%'L")<#&+'/+(")'/%=(&'"<&&#&='$6%'*<""%&$'-"+="(,'(5'(&'<&5#=&%)'.+&='4(.<%2

,8=31!U!9.==.056;!!DD!0120!o,8=31[!1d38=!2-!9.==.056

6'+,@/H6#5'&<,/%"';#..'+4%"7.+;'Z"%5%$'/(*8'$+'D%"+[T'(7$%"'(--"+b#,($%.0'V'6+<"52

*%&9IF/>:G(.*<.($%5'$6%',#&#,<,'+7'$;+'&<,/%"5'+7'(&0')($('$0-%'(&)'"%$<"&5'$6%'5,(..%"'&<,/%"2

,8=31!U!9.:5,8=31?!%&&6;!DD!0120!F,8=31F!2-!2E1!098==1I!-N!!!!!!!!!!!!!!!!!!!!!!!!!!DD!F,8=31F!-I!%&&?!1:03I.:G!2E82!!!!!!!!!!!!!!!!!!!!!!!!!!DD!.2!:1,1I!G120!8T-,1!%&&_

*!I9IF/>:G(.*<.($%5'$6%',(b#,<,'+7'$;+'&<,/%"5'+7'(&0')($('$0-%'(&)'"%$<"&5'$6%'.("=%"'&<,/%"2

,8=31!U!98X5,8=31?!%&&6;!DD!0120!F,8=31F!2-!2E1!=8IG1I!-N!!!!!!!!!!!!!!!!!!!!!!!!!!DD!F,8=31F!-I!%&&?!1:03I.:G!2E82!!!!!!!!!!!!!!!!!!!!!!!!!!DD!.2!.0!82!=1802!%&&_

2.91!8:/!982E!Q!'"

Page 28: Arduino Programming Notebook

"!&#'*J,,#93,,#:Q%$5'('4(.<%T'+"'5%%)T'(5'$6%'5$("$#&='-+#&$'7+"'$6%'"(&)+,Z['7<&*$#+&2

I8:/-9j11/5,8=316;!!!DD!0120!o,8=31[!80!2E1!I8:/-9!011/

1%*(<5%'$6%'L")<#&+'#5'<&(/.%'$+'*"%($%'('$"<.0'"(&)+,'&<,/%"T'"(&)+,Q%%)'(..+;5'0+<'$+'-.(*%'('4("#(/.%T'*+&5$(&$T'+"'+$6%"'7<&*$#+&'#&$+'$6%'"(&)+,'7<&*$#+&T';6#*6'6%.-5'$+'=%&%"($%',+"%'"(&)+,'i"(&)+,k'&<,/%"52'H6%"%'("%'('4("#%$0'+7')#77%"%&$'5%%)5T'+"'7<&*$#+&5T'$6($'*(&'/%'<5%)'#&'$6#5'7<&*$#+&'#&*.<)#&=',#..#5Z['+"'%4%&'(&(.+=a%()Z['$+'"%()'%.%*$"#*(.'&+#5%'$6"+<=6'(&'(&(.+='-#&2

"!&#'*9*!I:"!&#'*9*%&F/*!I:H6%'"(&)+,'7<&*$#+&'(..+;5'0+<'$+'"%$<"&'-5%<)+O"(&)+,'&<,/%"5';#$6#&'('"(&=%'5-%*#7#%)'/0',#&'(&)',(b'4(.<%52'

,8=31!U!I8:/-95%&&?!'&&6;!!DD!0120!F,8=31F!2-!8!I8:/-9!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!:39T1I!T12c11:!%&&W'&&

6'+,@'Y5%'$6#5'(7$%"'<5#&='$6%'"(&)+,Q%%)Z['7<&*$#+&2

H6%'7+..+;#&='%b(,-.%'*"%($%5'('"(&)+,'4(.<%'/%$;%%&'AOMXX'(&)'+<$-<$5'('?!C'5#=&(.'+&'('?!C'-#&'%e<(.'$+'$6%'"(&)+,'4(.<%9'

.:2!I8:/R39T1I;!!DD!,8I.8T=1!2-!02-I1!2E1!I8:/-9!,8=31

.:2!=1/!U!%&;!!!!DD!Pef!c.2E!''&!I10.02-I!-:!4.:!%&

,-./!0123456!7<!!DD!:-!01234!:11/1/

,-./!=--4567!!I8:/-9j11/59.==.0566;!!!!!!!!!DD!0120!9.==.056!80!011/!!I8:/R39T1I!U!I8:/-95'**6;!!!!!DD!I8:/-9!:39T1I!NI-9!&W'**!!8:8=-GHI.215=1/?!I8:/R39T1I6;!DD!-324320!CH>!0.G:8=!!/1=8M5*&&6;!!!!!!!!!!!!!!!!!!!DD!483010!N-I!E8=N!8!01O-:/<

'#!Q!I8:/-9

Page 29: Arduino Programming Notebook

J,"%!;1-,)%&9"!+,:U-%&5'5%"#(.'-+"$'(&)'5%$5'$6%'/(<)'"($%'7+"'5%"#(.')($('$"(&5,#55#+&2'H6%'$0-#*(.'/(<)'"($%'7+"'*+,,<&#*($#&=';#$6'$6%'*+,-<$%"'#5'VnAA'(.$6+<=6'+$6%"'5-%%)5'("%'5<--+"$%)2

,-./!0123456!7!!j1I.8=_T1G.:5$+&&6;!!!DD!-41:0!01I.8=!4-I2<!!!!!!!!!!!!!!!!!!!!!!!DD!0120!/828!I821!2-!$+&&!T40

6'+,@'!6%&'<5#&='5%"#(.'*+,,<&#*($#+&T')#=#$(.'-#&5'A'Zav['(&)'@'ZHv['*(&&+$'/%'<5%)'($'$6%'5(,%'$#,%2

J,"%!;1("%&+;&9#!+!:?"#&$5')($('$+'$6%'5%"#(.'-+"$T'7+..+;%)'/0'(&'(<$+,($#*'*(""#(=%'"%$<"&'(&)'.#&%'7%%)2'H6#5'*+,,(&)'$(8%5'$6%'5(,%'7+",'(5'Q%"#(.2-"#&$Z[T'/<$'#5'%(5#%"'7+"'"%()#&=')($('+&'$6%'Q%"#(.'C+&#$+"2'

j1I.8=_4I.:2=:58:8=-GS8=316;!!DD!01:/0!2E1!,8=31!-N!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!DD!F8:8=-GS8=31F

6'+,@/K+"',+"%'#&7+",($#+&'+&'$6%'4("#+<5'-%",<$($#+&5'+7'$6%'Q%"#(.2-"#&$.&Z['(&)'Q%"#(.2-"#&$Z['7<&*$#+&5'-.%(5%'"%7%"'$+'$6%'L")<#&+';%/5#$%2

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

,-./!01234567!!j1I.8=_T1G.:5$+&&6;!!!!!!!!!!!!DD!0120!01I.8=!2-!$+&&T40<

,-./!=--4567!!j1I.8=_4I.:2=:58:8=-GV18/5&66;!DD!01:/0!8:8=-G!,8=31!!/1=8M5%&&&6;!!!!!!!!!!!!!!!!!!!DD!483010!N-I!%!01O-:/<

01I.8=!Q!'$

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

!((,&#%I

Page 32: Arduino Programming Notebook

#%)%+!;/'$+($+

H6#5'#5'$6%'/(5#*'l6%..+';+".)c'-"+="(,'<5%)'$+'5#,-.0'$<"&'5+,%$6#&='+&'+"'+772'B&'$6#5'%b(,-.%T'(&'S3F'#5'*+&&%*$%)'$+'-#&@RT'(&)'#5'/.#&8%)'%4%"0'5%*+&)2'H6%'"%5#5$+"',(0'/%'+,#$$%)'+&'$6#5'-#&'5#&*%'$6%'L")<#&+'6(5'+&%'/<#.$'#&2'

.:2!=1/C.:!U!%(;!!!!!!!!!!!!!!!DD!Pef!-:!/.G.28=!4.:!%(

,-./!0123456!!!!!!!!!!!!!!!!!!!DD!I3:!-:O17!!4.:>-/15=1/C.:?!@ABCAB6;!!!!!DD!0120!4.:!%(!80!-32432<

,-./!=--456!!!!!!!!!!!!!!!!!!!!DD!I3:!-,1I!8:/!-,1I!8G8.:7!!/.G.28=HI.215=1/C.:?!JKLJ6;!!DD!23I:0!2E1!Pef!-:!!/1=8M5%&&&6;!!!!!!!!!!!!!!!!!DD!483010!N-I!%!01O-:/!!/.G.28=HI.215=1/C.:?!P@H6;!!!DD!23I:0!2E1!Pef!-NN!!/1=8M5%&&&6;!!!!!!!!!!!!!!!!!DD!483010!N-I!%!01O-:/<'

('!Q!8441:/.X

Page 33: Arduino Programming Notebook

#%)%+!;/%&($+

H6#5'#5'$6%'5#,-.%5$'7+",'+7'#&-<$';#$6'+&.0'$;+'-+55#/.%'5$($%59'+&'+"'+772'H6#5'%b(,-.%'"%()5'('5#,-.%'5;#$*6'+"'-<56/<$$+&'*+&&%*$%)'$+'-#&M2'!6%&'$6%'5;#$*6'#5'*.+5%)'$6%'#&-<$'-#&';#..'"%()'>Bt>'(&)'$<"&'+&'(&'S3F2'

.:2!=1/C.:!U!%(;!!!!!!!!!!!!DD!-32432!4.:!N-I!2E1!Pef

.:2!.:C.:!U!';!!!!!!!!!!!!!!DD!.:432!4.:!5N-I!8!0c.2OE6

,-./!0123456!7!!4.:>-/15=1/C.:?!@ABCAB6;!!DD!/1O=8I1!Pef!80!-32432!!4.:>-/15.:C.:?!KRCAB6;!!!!DD!/1O=8I1!0c.2OE!80!.:432<

,-./!=--4567!!.N!5/.G.28=V18/5.:C.:6!UU!JKLJ6!DD!OE1OZ!.N!.:432!.0!JKLJ!!7!!!!/.G.28=HI.215=1/C.:?!JKLJ6;!!!DD!23I:0!2E1!Pef!-:!!!!/1=8M5%&&&6;!!!!!!!!!!!!!!!!!!DD!48301!N-I!%!01O-:/!!!!/.G.28=HI.215=1/C.:?!P@H6;!!!!DD!23I:0!2E1!Pef!-NN!!!!/1=8M5%&&&6;!!!!!!!!!!!!!!!!!!DD!48301!N-I!%!01O-:/!!<<

8441:/.X!Q!((

Page 34: Arduino Programming Notebook

D%)D/7$"",&+/'$+($+

Q+,%$#,%5'#$'#5'&%*%55("0'$+'*+&$"+.',+"%'$6(&'WA,('7"+,'$6%'L")<#&+2'B&'$6#5'*(5%'('CUQK3H'+"'$"(&5#5$+"'*+<.)'/%'<5%)'$+'5;#$*6'6#=6%"'*<""%&$'.+()52'H6%'7+..+;#&='%b(,-.%'e<#*8.0'$<"&5'+&'(&)'+77'$6%'CUQK3H'X'$#,%5'%4%"0'5%*+&)2

6'+,@/H6%'5*6%,($#*'56+;5'(',+$+"'(&)'-"+$%*$#+&')#+)%'/<$'+$6%"'&+&O#&)<*$#4%'.+()5'*+<.)'/%'<5%)';#$6+<$'$6%')#+)%2

.:2!-32C.:!!U!!*;!!!!!!!!DD!-32432!4.:!N-I!2E1!>@jpeB!

,-./!01234567!!4.:>-/15-32C.:?!@ABCAB6;!!!!!!DD!0120!4.:*!80!-32432<!!!

,-./!=--4567!!N-I!5.:2!.U&;!.]U*;!.^^6!!!!!!DD!=--40!*!2.910!!7!!!!/.G.28=HI.215-32C.:?!JKLJ6;!DD!23I:0!>@jpeB!-:!!!!/1=8M5'*&6;!!!!!!!!!!!!!!!!!DD!483010!%D)!01O-:/!!!!/.G.28=HI.215-32C.:?!P@H6;!!DD!23I:0!>@jpeB!-NN!!!!/1=8M5'*&6;!!!!!!!!!!!!!!!!!DD!483010!%D)!01O-:/!!<!!/1=8M5%&&&6;!!!!!!!!!!!!!!!!!!DD!483010!%!01O-:/<

()!Q!8441:/.X

Page 35: Arduino Programming Notebook

(0*/'$+($+

?<.5%;#)$6'C+)<.($#+&'Z?!C['#5'(';(0'$+'7(8%'(&'(&(.+='+<$-<$'/0'-<.5#&='$6%'+<$-<$2'H6#5'*+<.)'/%'<5%)'$+')#,'(&)'/"#=6$%&'(&'S3F'+"'.($%"'$+'*+&$"+.'('5%"4+',+$+"2'H6%'7+..+;#&='%b(,-.%'5.+;.0'/"#=6$%&5'(&)')#,5'(&'S3F'<5#&='7+"'.++-52

.:2!=1/C.:!!U!!$;!!!!!DD!CH>!4.:!N-I!2E1!Pef!

,-./!01234567<!!!!!!!!DD!:-!01234!:11/1/

,-./!=--4567!!N-I!5.:2!.U&;!.]U'**;!.^^6!!DD!80O1:/.:G!,8=31!N-I!.!!7!!!!8:8=-GHI.215=1/C.:?!.6;!!!DD!0120!TI.GE2100!=1,1=!2-!.!!!!/1=8M5%&&6;!!!!!!!!!!!!!!!DD!483010!N-I!%&&90!!<!!N-I!5.:2!.U'**;!.hU&;!.WW6!!DD!/10O1:/.:G!,8=31!N-I!.!!7!!!!8:8=-GHI.215=1/C.:?!.6;!!!DD!0120!TI.GE2100!=1,1=!2-!.!!!!/1=8M5%&&6;!!!!!!!!!!!!!!!DD!483010!N-I!%&&90!!<!<

8441:/.X!Q!(*

Page 36: Arduino Programming Notebook

('+,&+%'*,+,"/%&($+

Y5#&='('-+$%&$#+,%$%"'(&)'+&%'+7'$6%'L")<#&+c5'(&(.+=O$+O)#=#$(.'*+&4%"5#+&'ZLFG['-#&5'#$'#5'-+55#/.%'$+'"%()'(&(.+='4(.<%5'7"+,'AO@AMW2'H6%'7+..+;#&='%b(,-.%'<5%5'('-+$%&$#+,%$%"'$+'*+&$"+.'(&'S3Fc5'"($%'+7'/.#&8#&=2'

.:2!4-2C.:!U!&;!!!!DD!.:432!4.:!N-I!2E1!4-21:2.-9121I

.:2!=1/C.:!U!%(;!!!DD!-32432!4.:!N-I!2E1!Pef

,-./!0123456!7!!4.:>-/15=1/C.:?!@ABCAB6;!!DD!/1O=8I1!=1/C.:!80!@ABCAB<

,-./!=--456!7!!/.G.28=HI.215=1/C.:?!JKLJ6;!!!!DD!23I:0!=1/C.:!-:!!/1=8M58:8=-GV18/54-2C.:66;!!!!!DD!48301!4I-GI89!!/.G.28=HI.215=1/C.:?!P@H6;!!!!!DD!23I:0!=1/C.:!-NN!!/1=8M58:8=-GV18/54-2C.:66;!!!!!DD!48301!4I-GI89<'

(+!Q!8441:/.X

Page 37: Arduino Programming Notebook

2!"%!-;,/",3%3+'"/%&($+

g("#(/.%'"%5#5$+"5'#&*.<)%'G)Q'.#=6$'5%&5+"5T'$6%",#5$+"5T'7.%b'5%&5+"5T'(&)'5+'+&2'H6#5'%b(,-.%',(8%5'<5%'+7'('7<&*$#+&'$+'"%()'$6%'(&(.+='4(.<%'(&)'5%$'(')%.(0'$#,%2'H6#5'*+&$"+.5'$6%'5-%%)'($';6#*6'(&'S3F'/"#=6$%&5'(&)')#,52

.:2!=1/C.:!!!!U!!$;!!!!DD!CH>!4.:!N-I!2E1!Pef!

.:2!8:8=-GC.:!U!!&;!!!!DD!,8I.8T=1!I10.02-I!-:!8:8=-G!4.:!&

,-./!01234567<!!!!!!!!DD!:-!01234!:11/1/

,-./!=--4567!!N-I!5.:2!.U&;!.]U'**;!.^^6!!DD!80O1:/.:G!,8=31!N-I!.!!7!!!!8:8=-GHI.215=1/C.:?!.6;!!!DD!0120!TI.GE2100!=1,1=!2-!.!!!!/1=8M5/1=8MS8=566;!!!!!!!!DD!G120!2.91!,8=31!8:/!483010!!<!!N-I!5.:2!.U'**;!.hU&;!.WW6!!DD!/10O1:/.:G!,8=31!N-I!.!!7!!!!8:8=-GHI.215=1/C.:?!.6;!!!DD!0120!TI.GE2100!=1,1=!2-!.!!!!/1=8M5/1=8MS8=566;!!!!!!!!DD!G120!2.91!,8=31!8:/!483010!!<!<

.:2!/1=8MS8=567!!.:2!,;!!!!!!!!!!!!!!!!!!!!!!DD!OI1821!2194-I8IM!,8I.8T=1!!,!!U!8:8=-GV18/58:8=-GC.:6;!DD!I18/!8:8=-G!,8=31!!,!DU!#;!!!!!!!!!!!!!!!!!!!!!DD!O-:,1I2!&W%&')!2-!&W%'#!!I123I:!,;!!!!!!!!!!!!!!!!!!!DD!I123I:0!N.:8=!,8=31<'

8441:/.X!Q!("

Page 38: Arduino Programming Notebook

3,"2'/'$+($+

>+//0'5%"4+5'("%'('$0-%'+7'5%.7O*+&$(#&%)',+$+"'$6($'*(&',+4%'#&'('@mAw'("*2'L..'$6($'#5'&%%)%)'#5'('-<.5%'5%&$'%4%"0'MA,52'H6#5'%b(,-.%'<5%5'('5%"4+?<.5%'7<&*$#+&'$+',+4%'$6%'5%"4+'7"+,'@Aw'O@NAw'(&)'/(*8'(=(#&2

.:2!01I,-C.:!U!';!!!DD!01I,-!O-::1O21/!2-!/.G.28=!4.:!'

.:2!9M`:G=1;!!!!!!!!DD!8:G=1!-N!2E1!01I,-!I-3GE=M!&W%#&

.:2!43=01H./2E;!!!!!DD!01I,-C3=01!N3:O2.-:!,8I.8T=1!!,-./!01234567!!4.:>-/1501I,-C.:?!@ABCAB6;!!!DD!0120!4.:!'!80!-32432<!,-./!01I,-C3=015.:2!01I,-C.:?!.:2!9M`:G=16!!!!!7!!!!!!!!!43=01H./2E!U!59M`:G=1!Y!%&6!^!+&&;!!DD!/121I9.:10!/1=8M!!!/.G.28=HI.21501I,-C.:?!JKLJ6;!!!!!!!DD!012!01I,-!E.GE!!/1=8M>.OI-01O-:/0543=01H./2E6;!!!!!!DD!9.OI-01O-:/!48301!!/.G.28=HI.21501I,-C.:?!P@H6;!!!!!!!!DD!012!01I,-!=-c<!,-./!=--4567!!DD!01I,-!028I20!82!%&!/1G!8:/!I-28210!2-!%"&!/1G!!N-I!59M`:G=1U%&;!9M`:G=1]U%"&;!9M`:G=1^^6!!!!!!7!!!!01I,-C3=01501I,-C.:?!9M`:G=16;!!!!DD!01:/!4.:!8:/!8:G=1!!!!/1=8M5'&6;!!!!!!!!!!!!!!!!!!!!!!!!DD!I1NI10E!OMO=1!!<!!DD!01I,-!028I20!82!%"&!/1G!8:/!I-28210!2-!%&!/1G!!N-I!59M`:G=1U%"&;!9M`:G=1hU%&;!9M`:G=1WW6!!!!!!7!!!!01I,-C3=01501I,-C.:?!9M`:G=16;!!!!DD!01:/!4.:!8:/!8:G=1!!!!/1=8M5'&6;!!!!!!!!!!!!!!!!!!!!!!!!DD!I1NI10E!OMO=1!!<<

(#!Q!8441:/.X

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