Arduino Manuale v0.5

Embed Size (px)

Citation preview

  • 7/25/2019 Arduino Manuale v0.5

    1/91

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

    &*,-'.#/$ 0".-"$) ,'

    !"#$% '()*+,-% *,. +% *.(/,--%0#(1, , +% *.(/.%))%0#(1, 22

    3,14(.#5 %--"%-(.#5 -.%4),--#-(.# , 61-,.1,- 22

    7.(/.%))%0#(1, $# 8%4, , %9%10%-% 22

    3*#,/%0#(1# 4,)*+#'#5 ,4,)*# *.%-#'# 22

    1-'," 2#03$)+"

    4)33)$'.0"5)*6'+

    Sold to

    [email protected]

  • 7/25/2019 Arduino Manuale v0.5

    2/91

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

    &$+",-"$(.&

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

  • 7/25/2019 Arduino Manuale v0.5

    3/91

    !"#$% '()"* %+,#"-'.%#+%/ '00"#,#+1%-*+)% * (%2"% 345

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

    6* )"#$% 1*7(% *""#"%/ 3* %( (%2"# )% 8 0%'9%4)# #004"* +#/ 3* $4#% 3'(4)'"-%539"%$%-%:

    0'#(#;.*00*(%+-'

  • 7/25/2019 Arduino Manuale v0.5

    4/91

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

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

    - ./ 1%'&+/

    - 2+3&'3'$%&'44'&+ , 5+3&'6&'3,11'&+- 2/7,& 8 9&()+$'

    - :+%+ (+ &+;,&+5,$%'- 5'%'&, 6/11' 6/11'

    - 1,&E' 5'%'&,

  • 7/25/2019 Arduino Manuale v0.5

    5/91

    - H)**,& , 16,/7,&

    - 6'%,$*+'5,%&' (+D+%/4,- .NY

    Z" N'5)$+3/*+'$+

    - 6'&%, 1,&+/4+ 16+ , +

  • 7/25/2019 Arduino Manuale v0.5

    6/91

    !

    "#$%&'()*+

    !"#$% '# %()*#+,%"- #. $#/ 0"#$/ 1"'*#2/3 2-. 45563 .-++# #. .#7"/ 89-,,#2: +,%",-' ;#,< 1"'*#2/= '#>%++#$/ ?%2@#A B. .#7"-,,/ $# 0#%()*- $/.,/ 0-"(

  • 7/25/2019 Arduino Manuale v0.5

    7/91

    [-+,%# +,*0#,/ '%..% +-$0.#(#,S (/2 (*# "#*+(## % 0"/:"%$$%"./ .% 0"#$% D/.,%A O"% +*HH#(#-2,-(/..-:%"- .% +(%"#%= - 8VI1?U '# 1"'*#2/=A

    ,- /$&%*-!

    1"'*#2/ 2%+(- 0"-++/ .IB2,-"%(,#/2 f-+#:2 B2+,#,*,- '# BD"-%3 *2 #+,#,*,/ '# H/"$%@#/2- %D%2@%,%3 0/+,*2#D-"+#,%"#/3 H/2'%,/ '% ^.#D-,,# - g-.-(/$A J%+(- #2 *2 0/+,/ 0%",#(/.%"-Q #2 *2 0%-+- (

  • 7/25/2019 Arduino Manuale v0.5

    8/91

    1"'*#2/A O+#+,/2/ +

  • 7/25/2019 Arduino Manuale v0.5

    9/91

    D-"/ - 0"/0"#/A

    O+#+,/2/ '#D-"+- H%$#:.#- '# $#("/(/2,"/../"#3 /:2*2% (/2,"%''#+,#2,% '% *2 0"/0"#/ 2/$- -'%..I/":%2#@@%@#/2- ,#0#(% '-# +*/# (#"(*#,# #2,-"2#3 (#/_ .m%"(

  • 7/25/2019 Arduino Manuale v0.5

    10/91

    .%D/"%,/A N*-+,# $%P-" a,"% (*# #. +/,,/+("#,,/b 0-"'/2/ /"- - /"- '-. ./"/ ,-$0/ 0-" .%D/"%"- %0"/:-,,# (

  • 7/25/2019 Arduino Manuale v0.5

    11/91

    %00.#(%".- 2-..% (/+,"*@#/2- '# *2 "/7/,A !-" *2 0"/:-,,/ '-. :-2-"-3 1"'*#2/ 0*Y +D/.:-"- .%H*2@#/2- '# (/2,"/../3 .-::-"- #2H/"$%@#/2# '%# +-2+/"# - ,"%+$-,,-"- # $/D#$-2,# % '-:.# %,,*%,/"#3(/$- $/,/"# - +-"D/ (/$%2'#A ^::# _ +-$0.#(- (/+,"*#"+# *2 "/7/, fBu af/ B, u/*"+-.H x Z%# '% ,-b3+/0"%,,*,,/ +- %D-,- % '#+0/+#@#/2- *2% +,%$0%2,- hf 0-" "-%.#@@%"- ,*,,- .- 0%",# $-((%2#(

  • 7/25/2019 Arduino Manuale v0.5

    12/91

    !

    "#$%$'

    !"#$%&' ) $&* +,-.#* * /%,"','&0"'11'".2 /* ,-. ,'+3) $& /%,"','&0"'11'".4 5 $& 0."/%&. ,-.*++'/%61%* /'10' * /%,"'7"',.++'".8 /* &'& ) 7"'7"%' 1* +0.++* ,'+*9 : ,'/7$0." ,-. $+%*/' 0$00% %6%'"&%8 * ,*+* ' %& $;;%,%'8 $0%1%

  • 7/25/2019 Arduino Manuale v0.5

    13/91

    7'"0. >PQ8 /* +% 7$] $0%1%

  • 7/25/2019 Arduino Manuale v0.5

    14/91

    1.66.". $& @*1'". *10' ' =*++'8 . U$%% 7*"% *

  • 7/25/2019 Arduino Manuale v0.5

    15/91

    )$%*+,- !DDLM FDDDDM /8N

    D* +,-.#* !"#$%&' Jddh8 7"'#'00* &.113*&&' Jddh8 ) +0*0* 1* 7"'6.&%0"%,. #% !"#$%&' >EF9 O"%/*#.11* Jddh ,% ;$"'&' *10"% /'#.11% ,'/. 1* adddd . 1* Eb9 X$.+0. +,-.#. &'& +'&' +0*0. +'1' #.%7"'0'0%7%8 /* ."*&' % @.%0* ;%&' * 7',' 0./7' ;*9 D* B#%.,%/%1*C 7".. %1 +$' &'/. #*1 ;*00' #%*@." @.$0' #%.,%/%1* +,-.#.9 >& @."' +$,,.++' 7." $&* B7%,,'1*C +0*"0S$7 %0*1%*&* #% &'/.!"#$%&'V >0%1%

  • 7/25/2019 Arduino Manuale v0.5

    16/91

    !"# %&@ ( 01/2"34 ).43*1/4&

    D3!"#$%&' D.'&*"#' ) $&* +,-.#* #.1 0$00' +%/%1. * !"#$%&' >EF8 +'1' ,-. $0%1%EF $0%1%

  • 7/25/2019 Arduino Manuale v0.5

    17/91

    !"#$%&' t>E ) !"#$%&' 7." :&0."&.0 #.61% F66.00%9 t>E $&%+,. %1 ,1*++%,' !"#$%&' ,'& $& 7%,,'1',-%78 ,.1*0' #* $&* +,-."/*0$"* /.0*11%,*8 +$ ,$% 6%"* $& +%+0./* '7."*0%@' bE>sD%&$r9 t>E -*$&* +,-.#* k%g% %&0.6"*0*8 $&* 7".+* L0-."&.0 . &*+,. 7." .++.". B,'&&.++'C . ;*,%1%0*". 1.,'/$&%,*E8 *77.&* *,,.+*8 ,".* $&* ".0. k%g% * ,$% ,% +% 7$] ,'11.6*". ,'& $& ,'/7$0." 7.",'&;%6$"*"1* . 7." ;*"1* ,'&&.00.". *11* ".0. k%g% .+%+0.&0.9 t>E +% 7"'6"*//* ,'& $& ,*@' >PQ'77$".8 $&* @'10* ,'&&.++' * $&* ".0. k%g%8 #%".00*/.&0. #* N%".1.++ . U$%% #* "./'0'V

    D3!GH.6* . 13!0-."'+ ,'/$&%,*&' *00"*@."+' $&* +7.,%*1. 1%="."%* ,-%*/*0* B="%#6.C8 ,-. 7."/.00.*# !"#$%&' #% %&@',*". ' 7$==1%,*". +."@% ( 01/2"34

  • 7/25/2019 Arduino Manuale v0.5

    18/91

    !"#$%&' H%,"' $0%1%PQ . +% 7"'6"*//* $0%1%

  • 7/25/2019 Arduino Manuale v0.5

    19/91

    )$%*+,- @C0

    !"# %&'? ( 01/2"34 !H7&

    P. #.+%#."*0. $& 7"'0'0%7' N%".1.++8 !"#$%&' g:F ) 1* +,.10* 6%$+0*9 D* +,-.#* 7$] '+7%0*". $&"%,.0"*+/.00%0'". mQ.. ,-. 7$] ,'/$&%,*". ,'& $&* ".0. #% "%,.0"*+/.00%0'"% +%/%1%9 g:F '+7%0* $&!GH.6*IJKO *1%/.&0*0' * I8I @'10 7." .++.". ,'/7*0%=%1. ,'& 13mQ..9 D* g:F -* U$*00'"#%,% 7%%6%0*1%8 +.% %&6".++% *&*1'6%,% . +% 7"'6"*//* ,'& $& ,*@' >PQSP."%*1. Y' gGc: M*=1.Z '77$". @%*"*#%' $0%1%

  • 7/25/2019 Arduino Manuale v0.5

    20/91

    R+5TU#% .34

    !"# %&'% ( 01/2"34 )"IJK*/ 5LM&

    D* +,-.#* #% 7"'0'0%7*PQ %&,1$#. $& ,'&&.00'". /%,"' >PQ ,'& ,$%,'11.6*"1* #%".00*/.&0. * $& 7,A +% 7$] 7"'6"*//*". +.&PQ9

    J -007Ass#[email protected]'7."9*"'%#9,'/s0''1+s*#`s%.r9-0/1

    ai

  • 7/25/2019 Arduino Manuale v0.5

    21/91

    )$%*+,- ?GU5-$#

    !"# %&'A ( 01/2"34 B+KI41*&

    !"#$%&' L+71'"* *++'/%61%* /'10' * $& ,'&0"'11." 7." @%#.'6%',-%A -* $& 7%,,'1' _'u+0%,` ".+%+0%@'8#.% 7$1+*&0%8 #.% 1.#8 $& /%,"';'&'8 $& =$

  • 7/25/2019 Arduino Manuale v0.5

    22/91

    )$%*+,- W?>0

    E.1 Jdae8 *11* H*`." g*%". #% P*& H*0.' YM*1%;'"&%*Z8 !"#$%&' -* 7".+.&0*0' % 7"'0'0%7% #% $&*&$'@%++%/* +,-.#*A !"#$%&' vLfF9 D* +,-.#* +*"W 7".+0' #%+7'&%=%1. . 7'"0."W $&* @.&0*0* #%&'@%0W *11* +0'"%,* 7%*00*;'"/*9 D* /*66%'" 7*"0. #.% 7"'#'00% =*+*0% +$ /%,"','&0"'11'"% !^f1*@'"*&' * '00' =%08 /.&0". !"#$%&' vLfF $0%1%PQSP."%*1. . 7." 1* 7"'6"*//*&' +N%0,- 7."/.00. #% +,.61%.". 1*;'&0. #% *1%/.&0*

  • 7/25/2019 Arduino Manuale v0.5

    23/91

    G"* 1. 0*&0. @*"%*&0% #% !"#$%&'8 &'& 7'0.@* /*&,*". U$.11* ,'& %1 Q1$.G''0- %&0.6"*0'9 !"#$%&' QG) +0*0* 7"'6.00*0* . #%+0"%=$%0* #* P7*"`g$& %& ,'11*='"*

  • 7/25/2019 Arduino Manuale v0.5

    24/91

    P*&6$%&' $0%1%

  • 7/25/2019 Arduino Manuale v0.5

    25/91

    P*R %&' ( P*R.II* ,4SK*1*9"T* /" *I,23" S",14,43914II41" 0P

  • 7/25/2019 Arduino Manuale v0.5

    26/91

    RY'5'22$-,+H# ,-, X +5 6+- Z-$2'[ GI+'5%M A+,\'$V+2 '8$--]'O." ".*1%E . +% 7*"1*@* *&,'"* 7','#% :&0."&.0 #.61% F66.00%8 U$.+0* +-%.1#8 .U$%7*66%*0* ,'& $& ,-%7 k%

  • 7/25/2019 Arduino Manuale v0.5

    27/91

    BaIC9 O." $0%1%& 7"%/' .+./7%' #% +-%.1# ,'/71.++' ) U$.11' ';;."0' #* U$.+0* +,-.#* ,-. $&%+,. $& '"'1'6%'*1%/.&0*0' #* $&* 7%1*8 ,-. 7$] /*&0.&.". #*0* . '"* *&,-. +. !"#$%&' &'& ) *1%/.&0*0' . $&*11'66%*/.&0' 7." $&* +,-.#* #% /./'"%* #% 0%7' Pc9 M'11.6*' 1* +-%.1# 7'0".0. ".6%+0"*". % @'+0"%#*0% +$ #.% ;%1. +*1@*0% +$11* +,-.#* Pc9 O'0".0. .+*/%&*". %1 ,'&0.&$0' #.11* +,-.#* "%/$'@.'1* ','11.6*'@% #* "./'0'8 /*6*"% *66%$&6.' $&* +-%.1# L0-."&.08 k%g% ' Q1$.G''0-9

    !"# %&'F ( D*9* )4##.1 L-".I/&

    8B3 3I+'5%P. @'1.0. +*7.". #'@. +%.0.8 7'0.0. $0%1%

  • 7/25/2019 Arduino Manuale v0.5

    28/91

    @.&0%&* #% ,*"*00."%9 O'0.0. +,"%@.". U$*1+%*+% 0.+0' +7'+0*' $& ,$"+'". . %&@%*' +.U$.&

  • 7/25/2019 Arduino Manuale v0.5

    29/91

    !"# %&'G ( O",,4I. +,-./. K.1 S",14,43914II41"W +.3+41. /" 9.SK.1*921*X /1"T.1 K.1 S4941" . S4/2I4

    MI2.P449-&

    M'/. *@.0. @%+0'8 1. +-%.1# +'&' #.11. +'1$

  • 7/25/2019 Arduino Manuale v0.5

    30/91

    !"# %&%? ( HI Y"9 Q144T.&

    85-GG#$+-5*6"+,7+ 8,7+-9&7/ '" ):"#.%%/ / 8,7+-9&7+' ;+:+#/%*+,7 PQ8 . +. "%,'&'+,.13%&@%' #% $& &$'@' 7"'6"*//*8 1' +,"%@. &.11* ;1*+- #.1 /%,"','&0"'11'".9 :1 =''01'*#." 7$] +,"%@.".#%".00*/.&0. &.11* ;1*+- . U$%% 7"'6"*//*". %1 /%,"','&0"'11'".9 b"*

  • 7/25/2019 Arduino Manuale v0.5

    31/91

    +."%*1.9

    8,-9+11/ 5,/-"A/?*1,$&% 7%& #.1 /%,"','&0"'11'". +'&' ,'11.6*0% * #.% ,'&@."0%0'"% *&*1'6%,'#%6%0*1% . U$%% 7'++'&' ;'"&%". *1 +';0N*". $&* 1.00$"* #.1 +.6&*1. 7".+.&0. +$1 7%&9 P$11. +,-.#.!"#$%&' U$.+0% 7%& +'&' #% +'1%0' #%+0%&0% #*61% *10"% . ,'&0"*++.6&*0% #* $&* 1.00."* B!C +.6$%0* #* $&&$/."'9 : 7%& *&*1'6%,% #% +'1%0' +% 7'++'&' ,'&;%6$"*". *&,-. 7." .++.". $+*0% ,'/. 7%& #%6%0*1%9

    E.*%+9?) $& 7%,,'1' ,*@' #'0*0'8 *11. .+0"./%0W8 #% #$. 7%,,'1. =*%'&.00. ,-. 7'++'&' .++.".;*,%1/.&0. %&;%1*0. &.61% B-.*#."C #% !"#$%&'9

    F+*/9"&

  • 7/25/2019 Arduino Manuale v0.5

    32/91

    )",A9/,"& / @#/AS?) $& +.6&*1. #%6%0*1.8 ;'"/*0' #* %/7$1+% ' #* $&3'* U$*#"* ,'& ;".U$.&

  • 7/25/2019 Arduino Manuale v0.5

    33/91

    !

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

    !"#$%&' &'& ) *'+' $&, *-./#, -./ 0'1/1/ 0"'2",33,"/ , 4'*1"' 0%,-%3/&1'5 3, $& *%*1/3, 6'"3,1'#,7

    $& -%"-$%1' *1,30,1' -'& 3%-"'-'&1"'++'"/5 $& *'618,"/ 0/" 0"'2",33,"+'5 $&, 4,*1, -'3$&%19 '&:+%&/ -'& -$% %&1/",2%"/ 0/" "%-/4/"/ / 6'"&%"/ *$00'"1';

    5/ @-/=(,; ,5= ABBC9 2343,30D+5 0->5 =(,;+3;;(- '( :*-;*3>>3?(-,5 '5/1(,31- 3 5//5*5 +1(=(??31- (, :(00-=('(/:-/(1(4( 5' 5=511*-'->5/1(0(E >3 65, :*5/1- 45,,5 3::*5??31- :5* =3 /+345*/31(=(1F 5 /-:*311+11- :5* =3 :-//(6(=(1F '( 5//5*5 5/5;+(1- /+ -;,( 1(:- '(0->:+15*E ;*3?(5 3 +, (,15*:*515 0G(3>31- H4(*1+3= >30G(,5I9 J"(,(?(K 3 +1(=(??3*=-:5* *53=(??3*5 /(1( 5 3::=(03?(-,( :5* #,15*,519 L;;( . 0-,/('5*31- +, =(,;+3;;(-H/1-*(0-I 5 3>:(3>5,15 3'-1131- '3 43/15 /0G(5*5 '( :*-;*3>>31-*(9M*-05//(,; . +, 3>6(5,15 '( /4(=+::- ,31- 0-, /0-:( '('311(0(9 J( :*-;*3>>3 0-,+, =(,;+3;;(- >-=1- /(>(=5 3 2343E 3**(00G(1- '( 3=0+,5 N+,?(-,( 3' 3=1- =(45==- :5*:*-'+**5 ;*3O03 (, '+5 5 1*5 '(>5,/(-,(9 #= /-N183*5 . L:5, J-+*05 0-, =(05,?3 @PQ5 /( :+K +1(=(??3*5 /+ R30 LJSE T(,'-8/ 5 !(,+U9 # :*-;*3>>( /0*(11( (, M*-05//(,;:-//-,- '(3=-;3*5 0-, )*'+(,- 5 /( :-//-,- 0->6(,3*5 =5 '+5 :(3113N-*>5E :5*5/5>:(- 0*53,'- +, 0-,1*-==5* G3*'83*5 0G5 (,15*3;(/05 0-, +, 4('5-;(-0- (,5/50+?(-,5 /+= 4-/1*- 0->:+15*99

    http://www.arduino.cc/http://www.arduino.cc/http://www.arduino.cc/
  • 7/25/2019 Arduino Manuale v0.5

    34/91

    ,++X,--/&*%'&/ #% !"#$%&'Y &''% -'& +/ %*1"$=%'&% -./ *,",&&' "%0/1$1/ 6%&' , -./ !"#$%&' ) ,+%3/&1,1';

    !" $%&'() *+ ,-*.+/" )0 $&12-& + 34"(()+ 4""2 & $&'.25

    6+7 859 : !0 ;+/&$'-0 2-+/(+204& *+ , 0"'-/#$", #% %&*1,++,=%'&/ #% !"#$%&' ) %& 2/&/"/ ,DD,*1,&=, */30+%-/; M/ $1%+%==,1/ ^%'8*0'1/1/ 6," "%6/"%3/&1' ,++/ %*1"$=%'&% 0$DD+%-,1/ *$+ *%1' #% !"#$%&'F.1107ZZ888;,"#$%&';--Z/&Za$%#/Z^%'8*G;Q/" %&%=%,"/ 0"'-$",1/4% $&, *-./#, !"#$%&' / $& -,4' 0/" -'++/2,"+, ,+ 4'*1"' -'30$1/";

  • 7/25/2019 Arduino Manuale v0.5

    35/91

    %+ -,4' $1%+%==,1' #% *'+%1' 0/" -,"%-,"/ % -/++$+,"% !"'%#;M/ +, *-./#, ) &$'4, %&6%+,1/ %+ -,4' / 6,1/ ,11/&=%'&/ -./ %+ -'&&/11'"/ /&1"% D/&/&/++X,++'22%,3/&1'; d$,' $1%+%==,1/ % -,4% 3%-"':EMJ5 6,1/ 3'+1, ,11/&=%'&/ 0/"-.e5 ,&-./ */ +,0"/*, 3%-"':EMJ ) *,+#,1, *$+ -%"-$%1' *1,30,1'5 ) 3'+1' 6,-%+/ *0/==,"+, -'& $&, 0%--'+, 6+/**%'&/;

    6+7 85= : >"?/4"0* *&4 $";'?0-& 2&- ,-*.+/"5

    O'++/2,1/ !"#$%&' ,+ 4'*1"' -'30$1/"7 +, *-./#, #'4"/DD/ ,--//"*%; f$11/ +/ *-./#/ !"#$%&' *'&'

    #'1,1/ #% ,+3/&' $& +/# -./ %&%=%/"9 , +,30/22%,"/ ' -'3$&T$/ , %%-,"/ T$,+-./ 1%0' #% ,11%4%19;Q"'D,D%+3/&1/ ^%'8* "%+/4/"9[ +, 0"/*/&=, #% $& &$'4' .,"#8,"/ / */2&,+/"9 +, "%-/"-, '+X%&*1,++,=%'&/ #% &$'4% #"%4/";

    6+7 858 : @0A" BCD *+ '+2" ,EDF 0*0''" 2&- ,-*.+/" BGH5

    >, #/*-"%=%'&/ $66%-%,+/ #/++, 0"'-/#$", #X%&*1,++,=%'&/5 "%0'"1,1, *$+ *%1' #% !"#$%&' #%-/7

    O'++/2,1/ !"#$%&' ,+ -'30$1/" / ,11//1/ -./ %'8* %&%=% %+ 0"'-/**' #% %&*1,++,=%'&/ #/%[

  • 7/25/2019 Arduino Manuale v0.5

    36/91

    #"%4/"; >X%&*1,++,=%'&/ 6,++%"9; !0"%1/ %+ Q,&&/++' #% -'&1"'++'5 T$%% ?M%*1/3, / *%-$"/==,B / %&6%&/ *$ ?M%*1/3,B; I/++, 6%&/*1", M%*1/3,5 ,0"%1/ ?2/*1%'&/ #%*0'*%1%4%B; I/++X/+/&-' #/++X.,"#8,"/ -/"-,1/ +, 4'-/ ?0'"1/ */"%,+% / 0,",++/+/B FO_U / >QfG; f", +/

    4'-% #'4"/*1/ 1"'4,"/ $&, 0'"1, ?!"#$%&' EI_ FO_U``GB; M/ &'& 1"'4,1/ +, 0/"%6/"%-,5,++'", -'&1"'++,1/ %& ?!+1"% #%*0'*%1%4%B ' ?@%*0'*%1%4% *-'&'*-%$1%BY

    O+%--,1/ -'& %+ 1,*1' #/*1"' #/+ 3'$*/ *$ ?!"#$%&' EI_ FO_U``GB / *-/2+%/1/ ?!22%'"&, %+*'618,"/ #/+ #"%4/"BY

    M-/2+%/1/ ?M6'2+%, +/ -,"1/++/ 0/" -/"-,"/ %+ #"%4/"BY I,4%2,1/ 1", +/ -,"1/++/ #'4/ ,4/1/ *-,"%-,1' / *0,--./11,1' %+ *'618,"/ #% !"#$%&' /

    +'-,+%==,1/ %+ 6%+/ ,"#$%&';%&6 -./ 1"'4/"/1/ &/++, -,"1/++, ?@"%4/"B F&'& &/++, -,"1/++, hf@A@V; I'& #'4"/1/ &/00$"/ %&*/"%"/ $& >A@ *$!"#$%&'5 0/"-.e $1%+%==/"/1/ T$/++' 2%9 , D'"#' #/++, *-./#,5 -'++/2,1' ,+ 0%& &$3/"' 1"/#%-%;

    6+7 85I : A@ ) %+ 0%C */30+%-/ 0"'2",33, -./ 0'1/1/ -,"%-,"/ *$ !"#$%&'-./ 6,--%, T$,+-'*, #% 4%*%D%+/5 */&=, -./ 4'% #'DD%,1/ ,22%$&2/"/ #/++/ 0,"1% /+/11"'&%-./; M^o p Q;!+%4/"1%

    bV

  • 7/25/2019 Arduino Manuale v0.5

    38/91

    6+7 85R : !" $%&'() 2&- ;0- 4012&77+0-& +4 !M> $+ '-"A0 /&74+ &$&12+ *&4 1&/. 6+4&5

    M% ,0"%"9 $&, &$'4, 6%&/*1", -'& $& &$'4' *S/1-.; O'3/ 2%9 #/11'5 0/" '", &'& 0"/'--$0,1/4%1"'00' #% T$/++' -./ 4/#"/1/ *-"%11';

    O'++/2,1/ !"#$%&' ,+ 4'*1"' -'30$1/"; L/"%6%-,1/ -./ *%, */+/=%'&,1, +, 0'"1, -'""/11, -'&1"'++,' %& f''+* n Q'"1; M$ ^%'8*

    #'4"/*1/ 1"'4,"/ $&, 4'-/ 1%0' O_U` F!"#$%&' EI_GY *$ U,- ,4"/1/ T$,+-'*, 1%0'Z#/4Z11H;$*D3'#/3KKK5 3/&1"/ *$ aIEZ>%&$` 1"'4/"/1/ Z#/4Z11H!OUg ' Z#/4Z11HMg ' M[;

    L/"%6%-,1/ -./ ,&-./ +X.,"#8,"/ %30'*1,1' %& f''+* n J',"# -'""%*0', ,++, 4'*1", *-./#,F0/" /*/30%' !"#$%&' EI_G;

    h%2 b;\ p h%&/*1", #% !"#$%&' -'& -,"%-,1' +' *S/1-. J+%&S; I/++, 1''+D," 1"'4,1/ % 0$+*,&1% ?L/"%6HB0/" -'&1"'++,"/ %+ +%*1,1' F[G / ?E0+',#B 0/" -,"%-,"+' *$++, *-./#, FVG;

    bb

  • 7/25/2019 Arduino Manuale v0.5

    39/91

    8@ !"#$%&'(()* #-*-(&/:0-(+7;A@ #'4"/DD/ +,30/22%,"/ 0%C 4/+'-/3/&1/;

    M/ +/ -'*/ 4,&&' 3,+/7 L/"%6%-,1/ +, 0'"1, */"%,+/7 ) T$/++, -'""/11,q r *1,1, %&*1,++,1, -'""/11,3/&1/q A@ #% ,--/'&'q !4/1/ *-/+1' +, *-./#, -'""/11,q

    Q/" 2+% %30,=%/&1%5 /--' $&, D"/4/ *0%/2,=%'&/ #/++' *S/1-.;I/+ +%*1,1' -% *'&' #/% -'33/&1%5 -%') #/++/ &'1/5 -./ !"#$%&' %2&'"/"95 3, -./ 4% */"4'&' 0/"%&*/"%"/ #/++/ %&6'"3,=%'&% #% */"4%=%' &/+ 0"'2",33, ' +, #/*-"%=%'&/ #/+ *$' 6$&=%'&,3/&1'; A@ -'++/2,'+' ,+ 0%& &$3/"' 1"/#%-% ) &/-/**,"%' *0/-%6%-,"/ -./ %+ 0%/#%&' *%-'30'"1/"9 -'3/ $&X$*-%1, *-"%4/' 7

    '-.L$#+7;, #%"/11%4,0%&U'#/ */"4/ 0/" 3'#%6%-,"/ %+ -'30'"1,3/&1' #% $& 0%& %%-,' %+ &$3/"' #/+ 0%& / %+-'30'"1,3/&1' -./ #'4"9 ,**$3/"/7 ,0"%3, %*1"$=%'&/ ) #%2%1,+^"%1/5 -./ */"4/ 0/" 6," $*-%"/ +, -'""/&1/ #, $& 0%& ' 0/" ?!--/#/"+'B;@%2%1,+^"%1/ "%-.%/#/ #$/ 0,",3/1"%7 %+ 0"%3' %%-, %+ 0%& *$ -$% ,2%"9 / %+ */-'' -./ 1%0' #%-'30'"1,3/&1' #'4"9 ,**$3/"/ %+ 0%&5 -%') */ *,"9 ,--/*' ' *0/&1'; E& 0%& *% ,--// -'& mA@7

    #-*-(&/:0-(+7;

  • 7/25/2019 Arduino Manuale v0.5

    41/91

    C

    6$-# #11078 9 #-*-(&/:0-(+7;?3>8@#+/&K7;VVV8@#-*-(&/:0-(+7;

  • 7/25/2019 Arduino Manuale v0.5

    42/91

    !

    "#$%&'( * &+ +&',%-,,&( ./.00

    !"# %&'('))*#" +#,%'-. -.- /"#0" /*1"#" /.(. 2.3" 2.(("4*#" 5%*(26" 2.31.-"-&" " #'2.1'*#"5%*(26" #'4* ,' 2.,'2"7 8* 3*44'.# 1*#&" ,"' 3*-%*(' 1#"/"-&*-. ' 2.3*-,' 9*/" *(*/2'*-,.(:*/1"&&. ,"((* 1#.4#*33*)'.-"7 ;. ,"2'/. ,' '-/"#'#" %- 2*1'&.(. ,",'2*&. *((* 1#.4#*33*)'.-"1%#*< 26" 1."99" #'/%(&*#" ,'=='2'(" 1"# 5%*(26" ("&&.#"< 1"# 2.1#'#" 5%"/&:*/1"&&. '31.#&*-&" ,'+#,%'-.< /1"//. */2%#*&.7 >%"/&. 2*1'&.(. ? /.(. %-* '-.,%)'.-" *' 2.-2"&&' "//"-)'*('7

    @( ('-4%*44'. ,"' 3'2#.2.-.((.#' ? '( ('-4%*44'. A< %- ('-4%*44'. ,"='-'&. *, B*(&. ('0"((.C< 3* -.-.11. /"31('2" 2.3" 1%-&. ,' 1*#&"-)* 1"# 26' -.- /' ? 3*' *00'2'-*&. *( 3.-,. ,"((*1#.4#*33*)'.-"7 +(2%-' 3'2#.2.-.((.#' %&'('))*-. *,,'#'&&%#* ,"' ('-4%*44' *-2.#* 1'D ,'=='2'('%"/&" #'=("//'.-' 6*--. =*&&. -*/2"#" ' ('-4%*44' B* .44"&&'C 26" 1"#3"&&.-. ,' 2#"*#" ,"'1#.4#*33' 2.- 2%' ? 1'D /"31('2" 3.,"(('))*#" 4(' */1"&&' ,"( 3.-,. #"*("7

    8* ,'=="#"-)* 1#'-2'1*(" ,"( AFF #'/1"&&. *( A ? 1#.1#'. 5%"/&*Y '( AFF /' ,"='-'/2" %- ('-4%*44'. *.44"&&'7!.&"&" ,"='-'#" %- .44"&&. B*%&.3.9'("C " *//"4-*#4(' ,"4(' *&'9%&'< 2.3"Y 1"/.< 2.(.#"< 3*#2*%"((. 26" ? ,'=='2'(" ,**11#"-,"#" ? (:*11#.22'. ,* %&'('))*#"< *-26" 1"#26b ? =*2'(" .0*#" ('9#' 26" '-/"4-'-. %-('-4%*44'. ,' 1#.4#*33*)'.-"< 3* ? #*#. .0*#" ('9#' 26" /' 1#".22%1'-. ,' /1'"4*#" 2.3"1#.4#*33*#"7 8* 9%.-* -.&')'* ? 26" %-* 0.(&* *11#"/. B'( 3"&.,.C< 1."&" *11('2*#(. * 5%*(/'*/'&'1. ,' ('-4%*44'.7

    E- 1#.4#*33*&.#" ,"0" 2*1'#" '( =%-)'.-*3"-&. ,' %- 1#.2"//.< '( 2.31.#&*3"-&. ,' %- ="-.3"-.. '( 3"&.,. 2.- 2%' /' ,"0.-. 3.,'='2*#" ,"((" '-=.#3*)'.-' " 1.' *,%#(. '- 5%*(2./* ,' =.#3*("%"/&.*11#.22'. /' ,"='-'/2" B&.1i,.V-C . *-26" B,'0'," "& '31"#*C * 3"3.#'* ,"( 3.,. ,' 1#.2","#" '-9*&&*4('* ,"4(' *-&'26' #.3*-'< 26" '-0"2" 26" 2"#2*#" ,' 2.-5%'/&*#" %- '-&"#. 1*"/"< 1#.2","0*-.1"# 1*//'< *25%'/"-,. 1'22.(" #"4'.-' 1"# 0.(&*7 8W*11#.22'. .11./&. /' 26'*3* B9.&&.3i%1C "

    1#"0"," 26" /' 1*#&* ,* %- 1'22.(. /&"1 " (. /' 2.31("&'< 1#'3* ,' 1*//*#" *( /%22"//'0. 1"# 1.'2"#2*#" ,' 2.39'-*#" '( &%&&.7 E-* 1#.2",%#* ,"( 4"-"#" 6* /"-/. /" *0"&" ,"' ,%99' /%((* =*&&'9'('&S,' %-* 2./*< *-26" /" /1"//. /' 2.39'-*-. ' ,%" *11#.22'7

    !"# %&E ( F= 6,--0#="+ 6" 0--"7"-: 12, 1+/9+3#+3+ "= 1+/9"-+ .98,90808, "= 10AA54D 12, 9+-8,CC,,>>,8, 908-, 6,==0 /018+ 0--"7"-: .98,90808, =0 1+=0@"+3,4&

    M"31. =* 3' 6*--. 26'"/&. ,' 3.,'='2*#" %- "i2.33"#2" '-/"#"-,. %- '-0'. ,' 3*'( *%&.3*&'2. 2.-(* 2#"*)'.-" ,' ,.2%3"-&' '- 1,=7 +0"-,. ,"' ,%99' /%((* =*&&'9'('&S ,"( (*0.#.< '-')'*(3"-&" /.-.1*#&'&. ,*( 9*//.< /0'(%11*-,. /%9'&. (* *#&" 1"# 4"-"#*#" %- /"31('2" ,.2%3"-&. 1,= " 1"# '-0'*#(.

    1"# 3*'(< *44'%-4"-,. '- /"4%'&. &%&&. '( #"/&.7

    jI

    .(2* 4%'5&('- %' 6(23%7*#!" $%&'""% &( '")*%+),%+' -% .%$/0,'+1 .2' ,0,,( .%3%4.()$% 5 60'""% 7%+$),% &) 03)89: -8'3,+)" 9+%.'44(3; :3(,1< &'""' $'$%+(' ' 03) 4'+(' &( 03(,) /'+(7'+(.2' &((3;+'44% ' 04.(,)= >) 89: % /+%.'44%+' 5 60'"") /)+,' &'" .%$/0,'+ .2' 4( %..0/) &('4';0(+' "' %/'+)?(%3( .2' ;"( @'3;%3% 4%,,%/%4,'= >) 89: +'.0/'+) 60'4,'

    (37%+$)?(%3( &) 03 /+%;+)$$) .2' &( 4%"(,% 5 .)+(.),% (3 $'$%+() ABC< .(%5 ")$'$%+() @%"),("'< .2' /'+&' (" .%3,'30,% 60)3&% (" .%$/0,'+ 4( 4/';3'= >) 89:0,("(??) 03 4';3)/%4,% /'+ +(.%+&)+4( 60)"' .%$)3&% 4,) '")*%+)3&%D 60'4,%4';3)/%4,% /+'3&' (" 3%$' &( E/+%;+)$ .%03,'+F '& 5 03 .%3,),%+'= B" ,'+$(3'&'""G'4'.0?(%3' &( 03G%/'+)?(%3'< (" @)"%+' &'" /+%;+)$ .%03,'+ 5 (3.+'$'3,),% &(03) 03(,H (3 $%&% .2' /03,( )""G%/'+)?(%3' 40..'44(@)= >' %/'+)?(%3( +(.2('&%3% .2'&'( &),( 4()3% .%/(),( (3 )".03' .'""' &( 4'+@(?(% (3,'+3' )"") 89:= I0'4,' .'""' 4(.2()$)3% +';(4,+(= J' "G%/'+)?(%3' /+%&0.' 03 +(40",),%< )3.2' 60'4,% 5 4)"@),% (303 +';(4,+%=>) 89: /0K '4';0(+' %/'+)?(%3( )+(,$',(.2'< %/'+)?(%3( /'+ .%/()+' &),( &) 03)/)+,' )""G)",+) &'" .%$/0,'+ ' %/'+)?(%3( /'+ .%$03(.)+' .%3 "' /'+(7'+(.2'< .(%5

    60)"4()4( );;';;(% '"',,+%3(.% .%33'44% )" .%$/0,'+ -.%$' $%04'< ,)4,('+)< 4.2'&)@(&'%< 4.2'&) &( +','< 4,)$/)3,'===1= >' /'+(7'+(.2' 4%3% .%""';),' ,+) &( "%+% .%3 03L:J< .(%5 03 7)4.(% %+&(3),% &( M"(= N;3( /'+(7'+(.) ' )3.2' "' .'""' &( $'$%+()2)33% 03 (3&(+(??% /'+ /%,'+ '44'+' (3,'++%;),' &)"") 89:=

  • 7/25/2019 Arduino Manuale v0.5

    46/91

    G?66"7"6,-, "= =07+8+&

    @ 9(.226' 26" *0"&" '-,'0',%*&. 1.//.-. "//"#" ,'/"4-*&' %&'('))*-,. ,"' /"31('2' 9(.226' 2.(("4*&'* (.#. ,* ,"((" ('-"" . ,"((" =#"22"7 k/'/&" %-* =.#3*('&S *-26" '- 5%"/&. &'1. ,' #*11#"/"-&*)'.-',/9="1, 1"1=+ 9,8 8"9,-,8, 6?, +9,80@"+3"&

    1+ +&',%-,,&( ./.008

    !"# '31*#*#" * 1#.4#*33*#" '- ApAFF 0' 1#.1.-4. ,' %&'('))*#" %- *39'"-&" ,' 1#.4#*33*)'.-".-i('-"Y VVV7',".-"72.3,.0" 1."&" 1#.0*#" /%9'&. 5%*-&. .0"#"&" ,"/2#'&&. 5%'7 J.- ,.0#"&"'-/&*((*#" -%((* /%( 0./. 2.31%&"#o

    @,".-" (*0.#* 2.- -%3"#./' ('-4%*44' ,' 1#.4#*33*)'.-"7 !#'3* ,' '-')'*#" * /2#'0"#" ,"( 2.,'2"-"((* 2*/"((* ,' &"/&.< '31./&*&" '( ('-4%*44'. 2.##"&&.< 2'.? '( AFF< %&'('))*-,. '( 3"-% * ,'/2"/* 26".0*&" -"((W*-4.(. '-="#'.#" /'-'/.7

    !"# %&L ( F6,+3, 5 ?3 0/C",3-, 6" 98+#80//0@"+3, "3 MNMOO +3P="3,&

    P i M#*&&"#T ,' ApAFF 1"#26b ,' =*&&. -.- %/"#"&" =%-)'.-*('&S /1"2'='26" ,"( AFF " 5%*-&. /2#'&&.

    0*(" /'* 1"# '( ('-4%*44'. A 26" 1"# '( AFF7 +#,%'-. 1"#T (*0.#* '- AFF7 J"((" 1#.//'3* 1*4'-"%/"#T '- 3.,. '-&"#2*39'*9'(" A " AFF7

    jl

    http://www.ideone.com/http://www.ideone.com/
  • 7/25/2019 Arduino Manuale v0.5

    48/91

    1+ 3#&2( 3#(,#-22-

    ]#* /2#'0"#"&" '( 0./. 1#'3. 1#.4#*33* '- AFFY ,"((" '/%)'.-' 1"# /&*31*#" * 0',". %-3"//*44'. ,' /*(%&.Y B;"((. q.#(,C7 @( 1#.4#*33* ? 3.(&. /"31('2"< 3* 1."99" 4'S '-&'3.#'#0'Y

    ;/.+2"0)

    /.# 3!/.?:$/0@ A 9(/.#1?BC)22$ DEF@G ()#"(. HGI

    O'2.1'*&" '( ('/&*&. -"((* 2*/"((* ,' &"/&. ,' @,".-"7 @- ApAFF 9'/.4-* "//"#" 3.(&. 1#"2'/' -"((./2#'0"#" ' 1#.4#*33'7 e -"2"//*#'. #'/1"&&*#" (" ("&&"#" 3*'%/2.(" " 3'-%/2.("7 !"# %- 2.31'(*&.#"ApAFF /2#'0"#"Y

    9/.3$0)

    ? 9"- ,'0"#/. ,*

    JKLMNOP

    ]4-' '/%)'.-" ,"0" "//"#" 2.31("&*&* 2.- %- 1%-&. " 0'#4.(*< *-26" /" '-&%'&'0*3"-&" /*#"99"'-%&'("7 f"#'='2*&" 26" &%&&" (" 1*#"-&"/' /'*-. /"31#" *1"#&" " 1.' 26'%/"7 \.0#"&" *-26" %&'('))*#","((" 1*#"-&"/' 4#*=="Y (" 1.&"&" '-/"#'#" 1#"3"-,. +8MrO F L;@hM F s " +8MrO F L;@hM F t7!"# 2.31'(*#" ", "/"4%'#" '( 2.,'2" 1#"3"&" '( 1%(/*-&" ,' 2.(.#" 0"#," 2.- (* /2#'&&* BO%-C7 \.1.5%*(26" '/&*-&"< 1.2. /.&&. *( #'5%*,#. 2.- '( 2.,'2"< -"((* /")'.-" B/&,.%&C< 2.31*#'#S '( 3"//*44'.Y

    C)22$ DE

    !"# %&Q ( F= 8">?=-0-+ 98+6+--+ 60= 7+>-8+ 98"/+ 98+#80//0 "3 MOOR S,==+ MT&&

    8* 1#'3* #'4* ,"( ('/&*&. ? 26'*3*&* *-26" B,'#"&&'0*CY

    ;/.+2"0)

    /"#0" 1"# *44'%-4"#" *( 1#.4#*33* %-* ('9#"#'* Z/&,'.76[ 2.- ,"((" =%-)'.-' *44'%-&'0" 1"# /2#'0"#"

    j`

  • 7/25/2019 Arduino Manuale v0.5

    49/91

    * 0',".7 @( ApAFF ? %- ('-4%*44'. 1.&"-&" 3* /2*#-.d 2.3" *0"&" 0'/&. ? =.#3*&. ,* 1.26" 1*#.("26'*0" " 1"# /0.(4"#" .1"#*)'.-' 1'D 2.31("//" /"#0.-. ,"((" ('9#"#'"7 8" ('9#"#'" /.-. 1"# (*3*44'.# 1*#&" 4#*&%'&" " (" 1'D 2.3%-' /.-. 4'S '-2(%/" -"( /'/&"3*7

    M%&&" (" '/%)'.-' ,"( 1#.4#*33* ,"0.-. "//"#" /2#'&&" "-. (" ,%" 1*#"-&"/' 4#*=="7 8* 1#'3*1*#"-&"/' 4#*==* ? 1./&* ,.1. (* ,'2'&%#*Y

    /.# 3!/.?:$/0@ A

    #'%,,"0" /"31#" "//"#" 1#"/"-&" '- %- 1#.4#*33* ApAFF "/"4%'9'("7 8* 1*#.(* %,('-,'2* 26" '(1#.4#*33* *( &"#3'-" ,"((W"/"2%)'.-" #"/&'&%'#S %- -%3"#. Z,' 2%' -.- 2' '-&"#"//* 3.(&.[7 8*1*#.(* 26'*0" /"%0< #*226'%/* * 1*#"-&"/' &.-,"< '-,'2* 26" '( 1#.4#*33* -.- #'2"0"#S ,"' ,*&' '-'-4#"//.7

    E- 1#.4#*33* "/"4%'9'(" ,"0" .99('4*&.#'*3"-&" #"/&'&%'#" %- -%3"#.7 !"# 5%"/&. 1#'3*,"((W%(&'3* 1*#"-&"/' 4#*==* ,.0#"&" '-/"#'#"Y

    ()#"(. HG

    O"/&'&%'#"&" )"#.< 26" 1"# 2.-0"-)'.-" /'4-'='2* B&%&&. 9"-"C7 @- #"*(&S 1.&"&" %&'('))*#" '( -%3"#.26" 1#"="#'&"7 J"( 2*/. 26" /' /'*-. 0"#'='2*&' ,"4(' "##.#'< /' ? /.('&' #"/&'&%'#" %- -%3"#. -"4*&'0.YiP7

    !"# /2#'0"#" %- /*(%&.< /' ,"0" %&'('))*#" $)%,(1< 26" -.- .0"#"&" * (" 1*#.(" 26'*0" ,"( ApAFF1"#26b ? %-* 12,+%",*< 2'.? %- =#*33"-&. ,' 2.,'2" 26" 0'"-" #'1"&%&. /1"//.< * 2%' 1"# 2.3.,'&S ?/&*&. ,*&. %- -.3" ,' 2.3.,.< 1"# "0'&*#" ,' #'1"&"#" '-%&'(3"-&" '-/'"3' ,' .1"#*)'.-'7 E-*=%-)'.-" #'2"0" ,"' 1*#*3"'< "/"4%" %- 2.31'&. /1"2'='2. " 1%T #"/&'&%'#" %- #'/%(&*&.7 @( 1*#*3".26" #'2"0" $)%,(1? (* /'-4* ,* /&*31*#" * 0',".7

    9(/.#1?QC)22$ DEQ@G

    O'2.#,*&"0' ,' &"#3'-*#" &%&&' ' 2.3*-,' 2.- '( 1%-&. " 0'#4.(*< *('3"-&' '( 2.,'2" -.- =%-)'.-"#S ".&&"##"&" ,"4(' "##.#'7

    !#.0*&" * /&*31*#" ,%" #'46" ,' &"/&.< %&'('))*-,. ,%" 1#'-&=< %-* ,' /"4%'&. *((W*(*7

    ;/.+2"0)

    /.# 3!/.?:$/0@ A 9(/.#1?BC)22$F@G 9(/.#1?BR$(20EF@G ()#"(. HGI

    !#.9*9'(3"-&" '( #'/%(&*&. -.- /*#S 5%"((. *&&"/.Y (" 1*#.(" B;"((.C " Bq.#(,oC /.-. *&&*22*&"%*-,. /' /0.(4.-. ,"((" .1"#*)'.-' 3*&"3*&'26" 9'/.4-* =*#" 3.(&* *&&"-)'.-" *'&'1' -%3"#'2' 26" /' %&'('))*-.7 L" %&'('))*&" /.(. '-&"#' Z'-&[< '( #'/%(&*&. /*#S * /%* 0.(&* '-&"#.7!#.0*&" * =*#" (* /"4%"-&" ,'0'/'.-"Y

    /.# (), Y ZH T iG

    @( #'/%(&*&. ? 1*#' * "Y 0' /'"&" 1"#/' &%&&" (" 0'#4.(" 1"#26b ' -%3"#' '-&"#' -.- (" 1#"0",.-.7 !"#*0"#" %- #'/%(&*&. 1'D 1#"2'/. ,.0"&" %&'('))*#" '( &'1. =(.*&7

    12$!# (), Y ZH T iG

    +-26" 2./a '( #'/%(&*&. -.- /*#S 2.##"&&. " 0*##S /"31#" "7 !"#26bc !"#26b /&*&" ,'0',"-,. ,%"-%3"#' /"-)* 0'#4.(* ZPI " ` /.-. ,%" '-&"#'[< 26" -.- 1.//.-. 1#.,%##" %- #'/%(&*&. 2.- 0'#4.(*7 !"#*0"#" '( #'/%(&*&. 1#"2'/. ,.0"&" =*# 2*1'#" *( 2.31'(*&.#" 26" &%&&' ' -%3"#' 26" /&*&" %&'('))*-,./.-. ,"' =(.*&Y /1"2'='2*&" (* 0'#4.(* " ' ,"2'3*(' *-26" /" /.-. 1*#' * BIC7

    12$!# (), Y ZH=H T i=HG9(/.#1?QK2 (/,"2#!#$ _` a1Q% (),@G

    @- 5%"/&. 2*/. '( #'/%(&*&. ? 1*#' * `7````7

    !"# =.#)*#" %- &'1. -%3"#'2. 1.&"&" =*#" %- (6$* !'7(%,4Z%-* =.#)*&%#* ,' &'1.[ /2#'0"-,. ,*0*-&' *(-%3"#. . *((* 0*#'*9'(" '( &'1. '- 2%' 0.##"/&" */=.#3*#(.7

    12$!# (), Y ?12$!#@ZH T ?12$!#@iG

    "##->

    + 0.(&" %-* /"31('2" 0*#'*9'(" -.- ? /%=='2'"-&" " 0' 1."/&" .0*#" 2.- (* -"2"//'&S ,' ,.0"# 2#"*#"

    ` i !"# 9#"0'&S -"4(' "/"31' /"4%"-&'< -.- #'1.#&"#T '( ('/&*&. '-&"#.Y 2.31("&*&"(. 0.' *44'%-4"-,.(:'-2(%,"< '( 3"&.,. 3*'-< (" 1*#"-&"/' 4#*==" " (:'/%)'.-" #"&%#-7

    jR

  • 7/25/2019 Arduino Manuale v0.5

    54/91

    &*-&' B2*//"&&'C 1"# 3"3.#'))*#" &*-&" '-=.#3*)'.-' ,'0"#/" 3* 3.(&. /'3'(' * ,' (.#. -"(/'4-'='2*&.7!#.0'*3. * 0","#" %- 2*/. /"31('2" 3* 2.-2#"&.Y 2*(2.(*#" (* 3",'* ,' 2'-5%" -%3"#'7 !"#2*(2.(*#" (* 3",'* ,"='-'&" 2'-5%" 0*#'*9'(' ,'=="#"-&'< %-* 1"# .4-' -%3"#.< 1.' (" /.33*&" ",'0',"&" '( #'/%(&*&. 1"# 2'-5%"7 A6'*3*&" (" 0*#'*9'('Y -P< -l< -`< -j< -m7

    12$!# .Z Y Z=ZG12$!# .[ Y [=iG12$!# .i Y i=jG12$!# .k Y k=ZG12$!# .d Y d=lG12$!# 3)0/! Y ?.Z h .[ h .i h .k h .d@ T d=HG

    A"#&. -.- ? 3.(&. 1#*&'2. ,.0"# 2#"*#" 2'-5%" 0*#'*9'(' ,'=="#"-&'7 E- *##*_ ? 2.3" %- 2*//"&&.,.&*&. ,' /2.31*#&'7 @( -%3"#. ,' /2.31*#&' ? 1#","='-'&.7 A#"*&" %- 2*//"&&. B&"31"#*&%#"C '- 4#*,.,' 3"3.#'))*#" " ,'0"#/' 0*(.#'Y

    12$!# #)39)(!#"()bicG

    @-,'26"#"&" '( -%3"#. ,' 1./&' ,'/1.-'9'(' Z. /2.31*#&'[ *44'%-4"-,. '( -%3"#.< #*226'%/. ,*1*#"-&"/' 5%*,#"< /%9'&. ,.1. '( -.3" ,"((* 0*#'*9'("7 !.&"&" *-26" -.- '-,'2*#" '( -%3"#. ,' 1./&' "(*/2'*#" 0%.&" (" 1*#"-&"/' 5%*,#"< '- 5%"/&. 2*/.< /%9'&. ,.1. (:%4%*("< "("-26"#"&" 4(' "("3"-&',"((:*##*_ #*226'%/' ,* %-* 2.11'* ,' 1*#"-&"/' 4#*==" " /"1*#*&' ,* 0'#4.(* Z

  • 7/25/2019 Arduino Manuale v0.5

    55/91

    ?-#@ A*#(B

    E-* ,"((" =%-)'.-' 1#'-2'1*(' " 1'D '31.#&*-&' ,' %- ('-4%*44'. ,' 1#.4#*33*)'.-" ? 5%"((* ,' 1.&"#B1#"-,"#" ,"((" ,"2'/'.-'C777 26" '- ('-4%*44'. 3"-. =*-&*/2'"-&'='2. /'4-'='2* B=*#" ,"' &"/&C7 e #*#.26" %- 1#.4#*33* *99'* %- =(%//. 2.-&'-%. " #"4.(*#" ,*((:'-')'. *((* ='-"Y /1"//. /' ,"0.-.3'/%#*#" ,"((" 0*#'*9'(' . 0*(%&*#" ,"((" 2.-,')'.-' 1"# 1.' 1#"-,"#" ,"((" ,"2'/'.-'7 !"# 0*(%&*#" %-*2.-,')'.-" /' ,"0" "/"4%'#" %- &"/& 26" #"/&'&%'/2" %- #'/%(&*&. 26" 1%T "//"#" B0"#.C . B=*(/.C7 J.-

    /.-. *33"//" /'&%*)'.-' '-&"#3",'"< 1"#26b /&'*3. 1*#(*-,. ,' (.4'2* B,* 2*(2.(*&.#'C .B9..("*-*C7 k/'/&.-. 3.(&' &'1' ,' (.4'26"< * 2%' *-26" *(2%-" 1*#&'2.(*#'< 1'D /'3'(' *( -./. 3.,.,' #*4'.-*#"< 26'*3*&" (.4'26" h%))_< ,.0" -.- 2:? /.(. 0"#. . =*(/. 3* /.-. *33"//" *-26"/'&%*)'.-' '-&"#3",'" . /=%3*&"7

    @- ApAFF 1.&"&" %/*#" ,"((" 0*#'*9'(' ,' &'1. 9..("*-.< 26" *33"&&.-. /.(. %" " =*(/" 2.3" 0*(.#'%'-,'#'("0* (* 2.-,')'.-" ,' ='-" 2'2(. Z&"#3'-"#S 5%*-,. ' /*#S 3*44'.#" . 1*#' * "[ " (* 3.,*('&S ,''-2#"3"-&. ,"((* 0*#'*9'(" Z'FF[7 f'/&. 26" ' ? 3'-.#" ,' "< '( 9(.22. ,' '/%)'.-' #*226'%/. * (",%" 1*#"-&"/' 4#*==" 1%T "//"#" "/"4%'&. Z2.#1. ,"( 2'2(.[< ,.1.,'26b '( 1#.4#*33* '-2#"3"-&* (*0*#'*9'(" '< 26" .#* 0*##S B,%"C< 0"#'='2* (* 2.-,')'.-" Zl ~ `[ " "/"4%" ,' -%.0. '( 2.#1. ,"( 2'2(.7

    +( 1*//. /%22"//'0. ' 0*##S B"C " (* 2.-,')'.-" -.- /*#S 1'D 0"#'='2*&* Z` ~ `[< 5%'-,' '(1#.4#*33* /*(&* *((* ='-" ,"( 2'2(. =.# " 1#./"4%"7

    !.&"&" 3.,'='2*#" '( B1*//.C /./&'&%"-,. 'FF 2.- (* 3.,*('&S ,' '-2#"3"-&. 26" 1#"="#'&"7 !.&"&"*0*-)*#" * 1*//' ,' ,%" %-'&S %&'('))*-,.Y

    ;/.+2"0)

    /.# 3!/.?@ A 1$( ?/.# / Y ZG / < ZHG & % & ;

  • 7/25/2019 Arduino Manuale v0.5

    60/91

    1$( ?/ Y ZG / < ZHG / Y / h [@ A TT+$(9$ 0)2 +/+2$ 1$(I

    !.&"&" 3.,'='2*#" (" #'1"&')'.-' ,' %- 2'2(. %&'('))*-,. ' 2.3*-,' 9#"*^ " 2.-&'-%"7 @( 1#'3.< 5)*'

  • 7/25/2019 Arduino Manuale v0.5

    61/91

    D%'5&('&

    E- 3.,. '-&%'&'0. ,' 1#.4#*33*#" ? 5%"((. ,' '-')'*#" * /2#'0"#" ' 2.3*-,' %-. ,.1. (W*(.< '-/"5%"-)*7 A./a ? 2.3" /' =*2"0* %-* 0.(&*< 1"# "/"31'. %&'('))*-,. ('-4%*44' 2.3" '( G+L@A< '- 2%',.0"0*&" *-26" '-/"#'#" ' -%3"#' ,' ('-"*Y

    ZH xPM 9($5(!33! '!,/+

    [H yPz s Y ZHiH JxKLz skH {NzN iH

    +-26" -"( G+L@A "#*-. 1#"0'/&' 2'2(' h]O . q;@8k< 3* *0"0*&" *-26" (* 1.//'9'('&S ,' "/"4%'#","' /*(&' %&'('))*-,. (" r]M]7 >%"/&* 1#*&'2* -.- ? 3.(&. 9"- 0'/&* ,*' 1#.4#*33*&.#' 1'D "/1"#&'-0-+ 12,

    ?-"="@@0 ?30 A?3@"+3, WEX 8"12"0/0-0 "3 9"Y 9?3-" 6,= 1+6"1, WEX&

    J"((* ='4%#* j7Q 6. 2"#2*&. ,' #*11#"/"-&*#" 4#*='2*3"-&" '( 2*/. ,' 2.,'2" /"-)* =%-)'.-' " 2.,'2"26" %&'('))* ,"((" =%-)'.-'7 J"( ('/&*&. ,' ,"/* 2:? %- 4#%11. ,' ('-"" ZP[ 26" /.-. #'1"&%&" 1'D 0.(&"'- ,'0"#/' 1%-&' ,"( 2.,'2"7 8* /'&%*)'.-" /' 1%T 3'4('.#*#" '-.,%2"-,. %-* =%-)'.-" Z`[ 26"2.-&"##S (" ('-"" ,' 2.,'2" #'1"&%&.7 8* =%-)'.-" /*#S #'26'*3*&* ,* 1'D 1*#&' *((:'-&"#-. ,"( ('/&*&.Zl[7

    !"# %&'('))*#" (* =%-)'.-" ? /%=='2'"-&" /2'0"#" '( /%. -.3" " =.#-'#" ' 1*#*3"' -"2"//*#'7 !.&"&"1*//*#4(' ,'#"&&*3"-&" -%3"#' " /'-46"< .11%#" ,"((" 0*#'*9'('7

    /.# :!2$() Y $9)(!6/$.)X3!#)3!#/+!?k% +@G

    L" (* =%-)'.-" -.- #"/&'&%'/2" %- 0*(.#" ,' #'&.#-. ? /%=='2'"-&" '-0.2*#(*Y

    !++).0/X,#!39!.#)?|,#!39!.#) /. +$((/0$/$}@G

    E-* =%-)'.-" 1%T *-26" -.- 1#"0","#" ,"' 1*#*3"'7

    /.# ."3)($X:/.+).#)?@ A/.# + Y ."3)($X!X+!,$?@G()#"(. +G

    I

    E-* =%-)'.-" 1%T -.- #"/&'&%'#" -"//%- #'/%(&*&. " '- 5%"/&' 2*/' /' 26'*3"#"99" $)"!*02)'7 @-

    5%"/&. 2*/. (* 1#'3* 1*#.(* ,* /2#'0"#"< 1#'3* ,"( -.3" ,"((* =%-)'.-"< ? 0.', 26" '-,'2* 26" -.-#"/&'&%'#"&" #'/%(&*&'7 J"( 2.#1. ,"((* =%-)'.-" -.- /"#0" %/*#" #"&%#-d 1"#26b -.- #"/&'&%'#"&" -%((*7

    :$/0 /.:/!X9/.5 ?e#(/.5 ,#(@ AR)'D2/).#=9/.5?,#(@G

    I

    \.0" /' 3"&&.-. (" =%-)'.-'c @- ApAFF (" 1.&"&" ,"='-'#" ,.0" 0.("&"< *((W'-')'. . *((* ='-" ,"(2.,'2"< * 1*&&. 26" *((:'-')'. ,"( ('/&*&. 2' /'* /"31#" (* ,"='-')'.-" ,"((* =%-)'.-"< 2'.? (*,"/2#')'.-" ,"((* =%-)'.-" /"-)* '( B2.#1.C7 !.&"&" '-/"#'#" (* =%-)'.-" 2.31("&* *((:'-')'. ,"(('/&*&.< 2.3" -"((:"/"31'. /"4%"-&"Y

    ;/.+2"0)

    mH

  • 7/25/2019 Arduino Manuale v0.5

    63/91

    &.! #:==1)&.! 1> &.! 4* +5"!?5. 1 ; 47

    ,

    /.# 3!/.?:$/0@ A

    /.# (), Y ,$33!?ZH% d@G 9(/.#1?Q,$33! Y a0 S.Q% (),@G

    ()#"(. HGI

    8* =%-)'.-" B/.33*C ? 1./&* *((:'-')'. ,"( ('/&*&.< "/&"#-*3"-&" *( 3"&.,. 1#'-2'1*(" B3*'-C7 L"1#"="#'&"< 1"# 3*44'.# B1%(')'*C< 1.&"&" '-/"#'#" /.(. (* ,'26'*#*)'.-" ,"((* =%-)'.-" " 1.' 1.##" '(2.#1. ,.0" 1#"="#'&"< 2.3" -"((:"/"31'. /"4%"-&"Y

    ;/.+2"0)

    &.! #:==1)&.! 1> &.! 4*7

    /.# 3!/.?:$/0@ A

    /.# (), Y ,$33!?ZH% d@G 9(/.#1?Q,$33! Y a0 S.Q% (),@G

    ()#"(. HGI

    &.! #:==1)&.! 1> &.! 4* +5"!?5. 1 ; 47

    ,

    8* =%-)'.-" B/.33*C -.- ? /&*&* #'1"&%&*Y '( 2.31'(*&.#" ,"0" /*1"#" 26" (* %&'('))"#"&" " /'*22.-&"-&* ,' *0"#" %-* /"31('2" ,'26'*#*)'.-" ,' 2.3" /*#S (* =%-)'.-"7 @( 2.#1. 2.31("&. ,"((*=%-)'.-" /' 1%T 3"&&"#" '- =.-,. *( ('/&*&. . *-26" '- %- ='(" "/&"#-.7

    mR

  • 7/25/2019 Arduino Manuale v0.5

    64/91

    59

    !

    #$%&$'(('$) *$+,-.%In questo capitolo imparerete le basi di Arduino, cio i comandi essenziali per creare la maggior

    parte dei progetti. Resterete stupiti, ma i comandi fondamentali sono solo cinque: pinMode per configurare i pin della scheda, digitalWrite per accendere un pin, digitalRead per leggere lo stato di un pin, analogWrite per creare dei segnali variabili, analogRead per leggere segnali analogici.

    /% 01)234Il punto di partenza di ogni progetto con Arduino lo sketch, cio il listato, che come sapete organizzato in due sezioni principali:

    setup eseguito solo all'accensione della scheda o dopo la pressione del tasto RESET; loop che contiene le istruzioni che saranno ripetute in continuazione fino che Arduino

    alimentato.Impostate lo sketch in questo modo:

    void setup() {

    //codice eseguito all'avvio

    }

    void loop() {//codice ripetuto

    }

    Dovete assicurarvi che siano sempre presenti le due sezioni setup e loop, altrimenti apparirannodegli errori. Setup e loop sono due funzioni che non restituiscono nessun risultato e non richiedono

    parametri, per questo vanno precedute dalla parola chiave void.

    Potete caricare uno sketch vuoto cliccando sulla voce del menu File: Esempi > Basic >BareMinimum.

    obbligatorio creare uno sketch con loop e setup, ma non necessario inserire del codiceallinterno delle due sezioni. Potreste avere uno sketch in cui presente del codice solo nellasezione loop, oppure solo nella parte setup (cos che sia eseguito una volta sola). Potreste anchecaricare uno sketch vuoto su Arduino, per ripulirlo da programmazioni precedenti.

    5%() 3'$-3'$) ,.% 01)234

    Riporto in questo paragrafo la procedura da seguire per caricare uno sketch su Arduino. Ecco lasequenza di operazioni che dovrete ripetere ogni volta:

    avviate lambiente di programmazione di Arduino; scrivete il vostro sketch nella finestra del programma; componete il circuito elettronico e collegatevi Arduino;

    connettete Arduino al vostro computer utilizzando il cavo USB;

  • 7/25/2019 Arduino Manuale v0.5

    65/91

    60

    verificate che sia impostata la porta corretta controllando in Tools > Port. Su Windows

    dovreste trovare una voce tipo COMx (Arduino UNO); su Mac avrete qualcosa tipo

    /dev/tty.usbmodemXXX, mentre su GNU/Linux troverete /dev/ttyACM0 o /dev/ttyS0 o S1.

    verificate che anche lhardware impostato in Tools > Board corrisponda alla vostra scheda

    (per esempio Arduino UNO);

    premete il pulsante Verify (il primo della toolbar);

    Fig. 5.1 La finestra di Arduino con evidenziato il pulsante per la verifica dello sketch.

    il computer fruller per qualche secondo mentre controlla il vostro listato. Se tutto andatobene e non ci sono errori, nella parte inferiore della finestra (la console), dovreste vedere

    solo delle scritte di colore bianco.

    premete Upload (il secondo pulsante della toolbar), per trasferire il programma alla

    scheda;

    Fig 5.2 La finestra di Arduino con evidenziato il pulsante upload per caricare lo sketch.

    i LED TX e RX lampeggeranno per qualche istante fino a che tutto il programma non stato

    trasferito sulla scheda.

    Non preoccupatevi se i passi della procedura di upload vi sembrano tanti, perch una volta presa

    confidenza, questa richieder solo pochi istanti. Al termine del trasferimento, nella parte inferiore

    della finestra, troverete indicate la dimensione in byte dello sketch, l'occupazione di memoria

    espressa in percentuale e altre informazioni simili.

  • 7/25/2019 Arduino Manuale v0.5

    66/91

    61

    Fig 5.3 Messaggi presenti nell'area inferiore della finestra di Arduino a seguito di un upload

    senza errori.

    Se ci sono stati errori fase di verifica, oppure durante l'upload, nell'area inferiore appariranno dei

    messaggi di colore arancione che forniranno delle indicazioni utili per risolvere il problema. Nelcaso di errori di scrittura del codice troverete indicata la riga in cui stato rilevato l'errore.

    Caricando uno sketch su Arduino potreste incappare in problemi di trasferimento. Solitamentequesti errori sono dovuti alla porta seriale che potrebbe bloccarsi, oppure al cavo che non fa bene

    contatto o anche a qualche problema con il circuito che avete collegato ad Arduino. In questi casi

    provate a scollegare la scheda, salvare il listato, chiudere del tutto Arduino e ripartire da capo. A

    volte potrebbe anche essere necessario riavviare il computer per risolvere la situazione. Un errore

    comune si ha quando il vostro circuito utilizza i pin numero 0 e 1, che sono condivisi con la porta

    seriale collegata al computer. Per caricare correttamente lo sketch dovrete scollegare

    temporaneamente i componenti che avete collegato a questi pin.

    Tutto quello che connesso ai pin 0 e 1 pu interferire con il caricamento degli sketch.

    Fig 5.4 Messaggi di errore nell'area inferiore della finestra di Arduino: stato rilevato un errore

    alla linea 8, colonna 5 dello sketch.

  • 7/25/2019 Arduino Manuale v0.5

    67/91

    62

    !"#$%&'

    L'aspetto magico di Arduino1 la possibilit di modificare il comportamento di un pin

    direttamente e semplicemente con un'istruzione software. I pin digitali possono funzionare come

    1 - Il fatto di poter modificare la destinazione, o mappatura, di un pin a vostro piacere non

    un'esclusiva di Arduino ma di tutti i microcontrollori moderni. Alcuni circuiti integrati (chiamatiFPGA), possono modificare le connessioni al loro interno come se fossero una breadboard.

    )*'+&)%+*&

    "#$ %&'$(%)$&( * +#$ ,-'./$0' 1$2)0'11$ -'& .),1&+/&' &$-/($3'#1' -&)1)1/-/ '0'11&)#/./4 5)# *

    #'.',,$&/) +1/0/66$&' +# ,$0($1)&'4 7$ 1$2)0'11$ * &'$0/66$1$ /# 3$1'&/$0' -0$,1/.) '( * 8)/1$ (/ #+3'&),/

    8)&/ /# .+/ ,9/#,'&/,.)#) .)3-)#'#1/ '0'11&)#/./ ' 8/0/ (/ .)00':$3'#1) ;.

  • 7/25/2019 Arduino Manuale v0.5

    68/91

    63

    ingressi o uscite. Li possiamo utilizzare per accendere LED, inviare segnali verso il mondo esterno,

    rilevare la pressione di un pulsante o ricevere informazioni. Prima di utilizzare un pin dovete

    dichiarare che tipo di comportamento assumer: sar un ingresso o unuscita? Questoperazione

    necessario farla una sola volta, quando la scheda si accende e lATmega328 inizia a leggere lo

    sketch. Il comando da utilizzare :

    pinMode( numero_pin, direzione );

    pinMode una funzione a cui dovrete passare due parametri:

    il numero del pin che volete configurare (per Arduino UNO vanno da 0 a 13);

    la direzione o il comportamento del pin, usando le parole chiave (in realt sono delle

    variabili costanti), INPUT o OUTPUT.

    Per utilizzare il pin undici come unuscita, nel blocco setup scrivete:

    void setup() {

    pinMode(11, OUTPUT);

    }

    Fig 5.6 Arduino UNO ha 14 pin digitali che possono comportarsi come ingressi o uscite.

    Per utilizzare il pin come un ingresso digitate:

    void setup() {

    pinMode(11, INPUT);

    }

    Nel capitolo due ho descritto in dettaglio la scheda Arduino UNO, elencando anche una serie di

    ingressi speciali, destinati alla lettura di segnali analogici. Questi pin sono contrassegnati con le

    sigle da A0 ad A5. Vedrete tra poco come utilizzare questi ingressi, ma per farlo non dovrete

    configurarli con pinMode.

    Se vi servono molti canali digitali, probabilmente vi converr impiegare un ArduinoMega che non

    presenta fondamentali differenze rispetto a un semplice Arduino, sennonch ha un maggior numero

    di pin, porte e funzioni. Tutti i pin sono numerati, quindi per utilizzarne uno, verificate il suonome sulla scheda e configuratelo con pinMode. Impostate il pin 32 di Arduino Mega scrivendo:

    void setup() {

  • 7/25/2019 Arduino Manuale v0.5

    69/91

    64

    pinMode(32, OUTPUT);

    }

    void loop() {

    //il resto delle istruzioni

    }

    Fig 5.7 Arduino Mega ha 54 pin di ingresso/uscita digitali

    Non dimenticatevi di dichiarare i pin nel setup! Se non dichiarerete i pin in modo corretto o se viscorderete di farlo, osserverete dei comportamenti strani e inspiegabili. Per esempio: se collegate un

    LED a un pin e poi vi dimenticate di impostarlo come OUTPUT, il LED non si accender

    correttamente. In circuiti pi complessi potreste osservare dei malfunzionamenti generali e

    inspiegabili.

    !"#$%L'istruzione delay introduce una pausa nel flusso di esecuzione delle istruzioni. Quando Arduino

    incontra questo comando, si mette in pausa, cio si blocca per il tempo specificato dall'istruzione.

    delay ( durata_della_pausa);

    L'istruzione delay accetta quindi un solo parametro di tipo long (senza segno) che corrisponde alla

    pausa desiderata, espressa in millisecondi. Pu sembrare esagerato usare una tale precisione ma

    Arduino in grado di svolgere 16 milioni di operazioni al secondo e quindi di poter lavorare

    tranquillamente con tempi di microsecondi! Per introdurre una pausa di un secondo dovrete

    '($)*" +,#*" -. /(0 (*.#.11$2" 32!(.),4

    !" $%$&'(" )*"+, -( .'-/(0& ," /0 0/$%'& -( +1'(22/'% *($(2"2&3 4*( +5%21,6 -/'"02% *7/8*&"- +&0& 1&8("2(

    (0 9/%+27"'%" -( $%$&'(" 1,% $"02(%0% *% (0)&'$":(&0( "01,% 9/"0-& .'-/(0& ; +8%02&3 !" $%$&'("

    )*"+, ; +($(*% " /0" 1,("

  • 7/25/2019 Arduino Manuale v0.5

    70/91

    65

    ! #$%

    !" $%& ' () *+,-+).)/. .".//0+)1*+ *2. -(3 .,.//.0. 4.""5 "(*.6 ()5 7-.*1. 41 "5,-541)58 95 "5

    -50/1*+"501/: 41 ;.).050. "5 "(*. 1) ,+4+ ,+"/+ .

  • 7/25/2019 Arduino Manuale v0.5

    71/91

    66

    scrivere:

    delay(1000);

    un secondo infatti pari a mille millisecondi. Per ottenere delle pause molto lunghe, oltre le decine

    di secondi, si preferiscono utilizzare altri metodi che evitano di bloccare il microcontrollore troppo

    a lungo.

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

    Per attivare unuscita digitale si utilizza il comando digitalWrite indicando il numero del pin e lo

    stato da assegnargli: alto o basso (HIGH o LOW).

    digitalWrite( numero_del_pin, stato );

    Un pin, utilizzato come uscita digitale pu assumere solo due valori, corrispondenti ad acceso espento, cio cinque o zero volt. Quando configurato in questo modo, pu anche fornire una

    corrente in uscita. Un pin impostato come ingresso pu assorbire una corrente. Quando la corrente

    che attraversa il pin eccessiva, si corre il rischio di danneggiarlo irrimediabilmente. Con Arduinoil limite di corrente di qualche decina di milliampere, per questo motivo non possibile collegare

    direttamente un rel o un motore, che richiedono centinaia di milliampere, ma si devono utilizzare

    transistor o MOSFET di pilotaggio.

    Potete accendere o spegnere tutti i pin che vanno dal numero 0 al numero 132. Per verificare

    subito il comportamento di digitalWrite, provate ad accendere il LED sul pin 13 ( integrato sulla

    scheda).

    Fig 5.9 Il LED integrato sulle schede Arduino collegato al pin 13.

    Per accenderlo aprite un nuovo sketch e scrivete:

    void setup() {

    pinMode(13, OUTPUT);}

    void loop() {

    digitalWrite (13, HIGH);

    }

    2 - se utilizzate Arduino UNO che ha quattordici pin digitali.

  • 7/25/2019 Arduino Manuale v0.5

    72/91

    67

    Nel setup dello sketch avete configurato il pin 13 come unuscita. Nel loop lo accendete impostando

    lo stato HIGH con digitalWrite. Caricate lo sketch premendo verify e poi upload: vedrete il

    LED L accendersi e restare acceso. Per spegnere il LED modificate lo sketch modificando i

    parametri dell'istruzione digitalWrite:

    digitalWrite (13, LOW);

    Per spegnere il LED l'uscita deve essere posta al valore LOW. In questi sketch l'istruzione

    digitalWrite posta nella sezione loop. Potete riscriverli in modo pi furbo:

    void setup() {

    pinMode(13, OUTPUT);

    digitalWrite (13, HIGH);

    }

    void loop() {

    }

    Le istruzioni nel blocco loop sono ripetute in continuazione, mentre non necessario ripetere

    digitalWrite una volta che stato modificato lo stato dell'uscita. Per questo potete mettere i due

    comandi nel blocco setup e lasciare il loop completamente vuoto.

    I pin digitali mantengono il loro stato fino a che non lo modificherete con un nuovo comando.

    !"# %&'()**+&,-) '.,-&-. /0 0,& 12)&31.&23

    Vi propongo un semplice esercizio per far lampeggiare un LED posto su una breadboard. Dovrete

    comporre un circuito utilizzando Arduino, un LED e una resistenza. La resistenza serve per limitarela corrente in uscita dal microcontrollore e alimentare correttamente il LED senza danneggiare

    Arduino. In alcuni esempi si vede spesso un LED inserito direttamente nei pin di Arduino, senzal'uso di una resistenza. Potete permettervi di collegare un LED in questo modo solo se infilate

    l'anodo nel pin 13 e il catodo nel pin GND (posto di fianco). Questo possibile perch il pin 13

    collegato al LED L presente sulla scheda tramite una resistenza e quindi non rischierete di

    danneggiare Arduino.

    Fig 5.10 LED collegato senza resistenza sui pin 13 e GND.

  • 7/25/2019 Arduino Manuale v0.5

    73/91

    68

    In ogni altro caso dovrete fare un semplice calcolo per determinare la resistenza da collegare in

    serie al LED. Immaginate di avere un LED verde che richiede una tensione di alimentazione di 2

    volt e una corrente di 10 mA. I pin di Arduino per, quando sono configurati come uscite e posti a

    livello alto, producono 5 volt.

    Immaginate di sostituire al pin che utilizzerete per accendere il LED, una batteria da 5 volt. La

    batteria sar collegata alla resistenza e quindi al LED (l'ordine non importante perch la correntenon si comporta proprio come lacqua che scorre in un tubo!).

    Dovrete scrivere un bilancio in cui da una parte avete la batteria e dall'altra la resistenza con il LED.

    5V = VLED+ RI

    Risolvendo questa formula in R:

    RI = 5V - VLED

    R = (5V - VLED) / I

    Sostituite 2 a VLED e 10 mA (0,010 A) a I:

    R = (5V 2V) / 0,010A = 3V / 0,010A = 300 ohm

    La resistenza da utilizzare ha un valore di 300 ohm, che purtroppo non troverete in commercio.

    Dovrete accontentarvi di una resistenza da 270 o 330 ohm.

    Procediamo con l'esercizio. Procuratevi il necessario: il LED, la resistenza, la breadboard e dei fili(o jumper) per i collegamenti.

    Ecco cosa dovete fare:

    assicuratevi che Arduino sia scollegato dal computer;

    avviate lIDE di Arduino;

    copiate lo sketch per far lampeggiare il led sul pin 11 che trovate riportato qui di seguito.

    void setup() {

    pinMode(11, OUTPUT);

    }

    void loop() {

    digitalWrite (11, HIGH);

    delay(1000);digitalWrite (11, LOW);

    delay(1000);

    }

    con Arduino scollegato dal computer, componete il circuito presentato in figura 5.11;

    collegate Arduino al computer utilizzando il cavo USB;

    caricate lo sketch premendo verify e quindi upload;

    dopo qualche istante, terminata la procedura di upload, il LED inizier a lampeggiare.

  • 7/25/2019 Arduino Manuale v0.5

    74/91

    69

    Fig 5.11 - Schema elettrico del circuito con il LED e Arduino.

    !"#$%&'&()" +",,( #-".$/

    Nel setup, pinMode, configura il pin 11 come uscita. La prima operazione che s'incontra nel loop

    digitalWrite(11, HIGH), che accende il LED. Subito dopo, listruzione delay, impone una pausa

    della durata di un secondo: il LED rimarr acceso per tale tempo. Al termine della pausa,digitalWrite(11, LOW), spegne il LED e poi un nuovo delay impone una pausa di un secondo. Altermine della pausa le quattro istruzioni sono ripetute: il LED lampegger con intervalli di un

    secondo.

    !"#$%&'&()" +", $&%$0&.(

    Su una breadboard inserite un LED e una resistenza da 330 !. Collegate il pin undici di Arduino

    allanodo del LED e un terminale del resistore al pin GND, come indicato nella figura 5.12.

    Fig 5.12 - Composizione del circuito elettrico con Arduino, una resistenza e un LED sul pin 11.

    Non collegate direttamente ai pin di Arduino dispositivi e componenti elettronici che richiedono

    correnti maggiori di 40/50 mA. I dispositivi da evitare sono tutti quelli che includono delle bobine o

    avvolgimenti, come motori elettrici, rel e magneti e dispositivi che producono calore .

  • 7/25/2019 Arduino Manuale v0.5

    75/91

    70

    !"#"$%&'(%!

    Per leggere lo stato di pin digitale utilizzato come ingresso si utilizza digitalRead, indicando come

    parametro il numero della linea da leggere.

    digitalRead( numero_del_pin);

    La funzione restituir un valore numerico di tipo intero (int) che potr valere solo HIGH o LOW.

    Solitamente il risultato della funzione salvato in una variabile di tipo int:

    int tasto1 = digitalRead( 7);

    * +(" ,"- +(#.($" !" /.!0"-1

    !"#$%&' )*+ ,- ./& 0/&1% 2%& #%3%1-4%5 !0/1/ 6-2%1' ./&/7 0/&1%8 &'& 9$-11'"#%6% 6':/ 1"'0-1/

    ;1-:2%34%-1' ;$44- ;6,/#-5 < ;/% 2%& =;/3"/1%> &'& ;'&' -41"' 6,/ 34% %&3"/;;% -&-4'3%6% 6'&1"-;;/3&-1% 6'& 4/

    ;%34/ #- !? -# !@5 < 2%& -&-4'3%6% 6'""%;2''&' -% &$:/"%7 AB8 A@8 AC8 AD8 AE / AF5 G$-' $1%4%HH-1/ $&'

    #% 9$/;1% 2%& 6':/ =#%3%1-4/>8 &'& 2'1/1/ $1%4%HH-"4' -&6,/ 6':/ %&3"/;;' -&-4'3%6'5 I/" 6'&J%3$"-"/ % 2%&

    &'& #'0/1/ J-"/ -41"' 6,/ #%6,%-"-"&/ 4K$1%4%HH' 6'& 2%&L'#/5

    M66' 6':/ J-" 4-:2/33%-"/ $& NMO ;$4 2%& !?7

    %&;/"%1/ $& NMO / $&- "/;%;1/&H- #- PD? ',: ;$ $&- ."/-#.'-"# Q0/#% J%3$"-RS

    6'44/3-"/ 4K-&'#' QTR #/4 NMO ;$4 2%& !?S

    6'44/3-1/ %4 1/":%&-4/ =4%./"'> #/44- "/;%;1/&H- - U*OS

    6-"%6-1/ %4 ;/3$/&1/ ;V/16,7

    void setup() {

    pinMode(14, OUTPUT); //il pin A0

    }

    void loop() {digitalWrite(14, HIGH);delay(1000);

    digitalWrite(14, LOW);

    delay(1000);

    }

    !"# %&'( ) *++,-..-//0123 4-5050 .-16"#7/3/0 #+" "1#/088" 313+-#"." .-90 4-/50 :"#"53+"&

  • 7/25/2019 Arduino Manuale v0.5

    76/91

    71

    Per utilizzare un pin come ingresso digitale, dovete ricordarvi di dichiararlo come tale nella sezionesetup dello sketch. Usate pinMode per configurare il pin numero 7:

    void setup() {

    pinMode(7, INPUT);}

    Il caso pi semplice di utilizzo di digitalRead per rilevare la pressione di un pulsante. Il pinconfigurato come ingresso digitale pu rilevare se la tensione applicata pari a zero o cinque volt. necessario costruire un piccolo circuito con un pulsante e una breadboard. Lo schema elettrico illustrato nella figura seguente.

    Figura 5.14 Schema elettrico di collegamento di un pulsante ad Arduino.

    Vi dovrete procurare un pulsante del tipo normalmente aperto, una resistenza da 10000 ohm, unLED verde e una resistenza da 330 ohm, oltre a una breadboard e alcuni jumper per realizzare icollegamenti. La figura 5.15 illustra la disposizione dei componenti sulla breadboard.

    Figura 5.15 Arduino collegato a un pulsante sul pin 7 e a un LED sul pin 11.

    Il pulsante ha due terminali3: uno dei due collegato a massa tramite la resistenza da 10 k!e ancheal pin 7. Laltro contatto collegato ai cinque volt dellalimentazione. In questo modo lingresso diArduino collegato stabilmente a zero volt tramite la resistenza. Non circola corrente e quindi il pin7 si pu considerare a livello basso. Quando premiamo il pulsante, colleghiamo i cinque volt alla

    3

    In realt questo tipo di pulsante ha quattro terminali per ragioni di stabilit meccanica, che sonocollegati a coppie.

  • 7/25/2019 Arduino Manuale v0.5

    77/91

    !"#$#%"&'( " *+$&,$ (- .$& /0 1" &2& 3$ 42##" -( !"#$#%"&'(5 .!"6"&,2 $- %(#%2 +&$!"662 ,$!"%%(6"&%" $

    3$&*+" 72-% 32& -( 6(##(5 3!"(&,2 +& 32!%2 3$!3+$%28

    92 #:"%3; &2& < 62-%2 326.-$3(%2=

    !"#$ &'()*+, -*#./"$'+01 23456,7*#./"$'+881 956456,7

    :

    !"#$ ;""*+, -#.( (#("--( #"'$2&" -22.5 $- .!2?!(66( -"??" -2 #%(%2 ,"- .$& / 32& ,$?$%(-A"(, " -2 #(-7( &"--(

    7(!$(B$-" ,$ %$.2 $&% ,$ &26" C.+-#(&%"D0 9( 4+&'$2&" ,$?$%(-A"(, !$3;$"," +& #2-2 .(!(6"%!25 $-

    &+6"!2 ,"- .$& ,( -"??"!" " 42!&$#3" -2 #%(%2 ,"- .$& 3;" .+E "##"!" FGHF 2 9IJ0 9( .!$6( !$?(,"--( #"'$2&" -22. -"??" -2 #%(%2 ,"- .$& " -2 #(-7( &"--( 7(!$(B$-" C%(#%2@D0 G- 32&%"&+%2 ,"--(

    7(!$(B$-" < 32&%!2--(%2 ,(--K$#%!+'$2&" $45 " #" *+"#%2 < .(!$ ( FGHF ."!3;L *+(-3+&2 ;( .!"6+%2 $-.+-#(&%"5 7"&?2&2 "#"?+$%" -" $#%!+'$2&$ !(33;$+#" %!( -" ,+" .(!"&%"#$ ?!(44"= ,$?$%(-J!$%" (33"&," $-

    .$& @@ " .2$ 3K< +&( .(+#( ,$ +& #"32&,20 M2.2 -( .(+#(5 $- .!2?!(66( "#3" ,(- CB-2332 $4D " %!27(

    -K$#%!+'$2&" ,$?$%(-J!$%" 3;" #."?&" $- 9NM01" &"##+&2 .!"6" $- %(#%25 -( -"%%+!( ,"- .$& !"#%$%+$#3" 9IJ " *+$&,$ O!,+$&2 &2& "#"?+" -"

    $#%!+'$2&$ (--K$&%"!&2 ,"--K$45 .(##(&,2 ,$!"%%(6"&%" (--K+-%$6( ,$?$%(-J!$%" 3;" #."?&" $- 9NM0

    P2%!"BB" 7"&$!7$ +& ,+BB$2 #+ 326" 32--"?(!" $- .+-#(&%" (, O!,+$&20 >2& 32--"?(%"-2 6($

    ,$!"%%(6"&%" (- .$&0 Q& "!!2!" 326+&" < *+"--2 ,$ 32--"?(!" +& %"!6$&(-" ,"- .+-#(&%" ($ R 72-% "-K(-%!2 %"!6$&(-" (, O!,+$&25 32#S *+(&,2 .!"6"!"%" $- %(#%2 (..-$3;"!"%" ,$!"%%(6"&%" R 72-% (-

    6$3!232&%!2--2!"0 P+!%!2..2 &2& (33(," 32#S= $- .$& ,$ O!,+$&2 *+(&,2 $- .+-#(&%" &2& < .!"6+%2

    &2& < 32--"?(%2 ( &+--( " (##+6" ,"?-$ #%(%$ ( 3(#20

    !"#$ &$'( ) *+,,- ./0+12 2 ."*".342 ", 56,.2*3+ 7 /-,,+#23- /-44+3321+*3+ 28 9486"*-: ,- ./0+12 ."

    8+.342 1-.342 /-1+ *-* 8-;4+3+ 12" /-,,+#24+ 6* 56,.2*3+ 2 6* 1"/4-/-*34-,,-4+$

    /T

  • 7/25/2019 Arduino Manuale v0.5

    78/91

    73

    !"!#$%&'()*

    La funzione analogWrite produce un segnale PWM, cio unonda quadra cui potete modificare a

    piacere la percentuale di segnale acceso e spento. AnalogWrite richiede due parametri: il pin di

    uscita e un numero che indica il rapporto tra acceso e spento. Il numero non una percentuale, ma

    un valore che va da zero a 255. Non tutti i pin di Arduino possono generare un segnale di questo

    tipo, quelli abilitati sono: 3, 5, 6, 9, 10 e 11. Li riconoscerete perch sulla scheda, di fianco al

    numero c una piccola tilde (~).

    analogWrite ( numero_del_pin, valore_pwm);

    Il nome di questa funzione trae in inganno, perch non produce un segnale analogico, ma unonda

    quadra variabile (cio un segnale PWM)!

    Arduino legge segnali analogici ma non pu produrli.

    Da uno dei suoi 14 pin non potrete far uscire 2,25 volt, ma solo 0 o 5. Applicando un segnale PWM

    a un LED potrete per modulare la sua luminosit con grande precisione. Quando il valore delPWM a 0, il LED spento perch londa quadra in uscita sempre a livello basso. Provate il

    seguente sketch:

    void setup() {

    pinMode(11, INPUT);

    analogWrite(11, );

    }void loop() {}

    Per utilizzare lo sketch dovrete costruire un semplice circuito, come illustrato nella figura seguente.

    Utilizzate un LED che collegherete al pin 11 di Arduino. Vi serviranno anche una breadboard, dei

    jumpers e una resistenza da 330 ohm. Caricatelo e non vedrete nulla: il LED sar spento.

    Fig 5.17 collegamento di un LED al pin 11 per lesperimento con il segnale PWM.

    Quando il valore del PWM pari a 255, dal pin uscir un segnale costante, pari a 5 volt e il LED

    sar completamente acceso:

    void setup() {

    pinMode(11, INPUT);analogWrite(11, 55);

    }

    void loop() {}

    Caricate lo sketch e osserverete che il LED rimarr sempre acceso. Ora provate a modificare il

  • 7/25/2019 Arduino Manuale v0.5

    79/91

    74

    valore fornito ad analogWrite, inserendo un numero compreso tra 0 e 255. Per accendere il LED amet potenza inserite, per esempio, 127.

    void setup() {

    pinMode(11, INPUT);analogWrite(11, 7);

    }

    void loop() {}

    Il LED ora sembra accendersi a met della sua potenza ma unillusione ottica. In realt dal pin 11esce un segnale velocissimo che passa da 0 a 5 volt numerose volte in un secondo. Modificando ilvalore passato alla funzione, modificherete il rapporto tra il tempo in cui il segnale nello stato altoe quello in cui nello stato basso, dando limpressione che il LED si accenda di pi o di meno.

    Un segnale PWM pu essere utilizzato anche per controllare la velocit di un motore elettrico. Noncollegate direttamente il motore ad Arduino! Serve un transistor per evitare di danneggiare ilmicrocontrollore.

    Se per impostare la luminosit, utilizzare un numero da 0 a 255, risulta un po inusuale, poteteadottare la funzione map, che esegue una proporzione e ri-mappa i numeri da 0 a 255 su quelli da 0a 100.

    void setup() {

    pinMode(11, OUTPUT);

    }

    void loop() {int lum = 10;

    int pwm = map(lum, 0,100, 0,255);

    analogWrite (11, pwm);

    }

    Nello sketch trovate due variabili di tipo intero chiamate: lum e pwm.

    La funzione map riceve come parametro la variabile lumche rappresenta la luminosit desiderataespressa in percentuale e la ri-mappa tra 0 e 255. Se lum vale 10, allora map restituir 25,5, mavisto che deve essere un numero intero, avremo 25.

    Caricate lo sketch su Arduino e osservate il comportamento del LED. Modificate il valore di lum eosservate come cambia la luce emessa dal LED.

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

    Non facile capire quello che accade allinterno di Arduino. Se lo sketch semplice e tuttofunziona, non ci sono problemi, ma se qualcosa va storto non immediatamente possibilecomprendere cosa stia capitando. possibile far trasmettere delle informazioni attraverso la portaseriale di Arduino e quindi leggerle dal vostro PC4. Quando la porta seriale non impegnata nella

    programmazione del microcontrollore, potete utilizzarla per scambiare informazioni che si possonovisualizzare su una finestra del computer. Per utilizzare la porta seriale di Arduino necessarioconfigurarla nel setup:

    4Solo quando Arduino e il PC sono collegati con un cavo USB.

  • 7/25/2019 Arduino Manuale v0.5

    80/91

    75

    void setup() {

    Serial.begin(9600);}

    La configurazione della porta seriale richiede un solo parametro, la velocit di comunicazione, che

    di solito simposta a 9600 baud5. Ora potete scrivere sulla seriale con:

    Serial.println(Hello World!);

    Ecco lo sketch completo:

    void setup() {

    Serial.begin(9600);

    Serial.println("Hello World!");

    }

    void loop() {

    }

    Dove finiscono questi messaggi? Sono inviati verso il computer e si possono leggere aprendo il

    Serial Monitor di Arduino, cio una finestra che visualizza i messaggi ricevuti (e pu anche

    trasmetterli!).

    Fig. 5.18 Per aprire il Serial Monitor premete il pulsante sulla toolbar di Arduino.

    Ecco uno sketch che, ogni secondo, invia un messaggio al PC:

    5

    Un baud indica il numero di simboli, cio gruppi di bit, trasmessi in un secondo attraverso unalinea digitale.

  • 7/25/2019 Arduino Manuale v0.5

    81/91

    76

    void setup() {

    Serial.begin(9600);

    }

    void loop() {

    Serial.println(Hello World!);

    delay(1000);

    }

    Nel setup si configura la porta seriale, indicando la sua velocit di trasmissione. Nella sezione loop,

    listruzione Serial.println invia un testo alla porta seriale, quindi delay imposta la pausa di un

    secondo.

    Caricate lo sketch e poi aprite il Serial monitor per ricevere il messaggio. Noterete che quando

    aprite il serial monitor, Arduino si resetter6.

    Fig 5.19 Il serial monitor riceve i messaggi inviati da Arduino.

    Con questo metodo potete controllare il valore di una variabile o una condizione presente in unosketch e inviarla al Serial Monitor, per capire come si sta comportando lo sketch. Provate a caricarelo sketch seguente:

    int i = 0;

    void setup() {

    6Il Serial Monitor invia un segnale standard chiamato RTS che sulla scheda collegato a reset.

    Inevitabilmente, ogni volta che aprite il serial monitor, Arduino si resetter. Potete evitarlo con un

    terminale che vi permette di non inviare il segnale di RTS, disattivando il controllo di flusso dellatrasmissione seriale.

  • 7/25/2019 Arduino Manuale v0.5

    82/91

    77

    Serial.begin(9600);

    }

    void loop() {

    Serial.print(i = );

    Serial.println(i);

    delay(1000);

    i++;}

    Caricate lo sketch su Arduino e poi aprite il serial monitor: vedrete una sequenza di numeri crescere

    a intervalli di un secondo.

    Fig. 5.20 Serial monitor con la sequenza progressiva di numeri trasmessi da Arduino.

    Lo sketch usa una variabile esterna alle sezioni loop e setup e che quindi visibile in entrambi i

    blocchi. Nel loop listruzione print stampa un testo senza andare a capo. Listruzione seguente,

    println, stampa la variabile i. Println a differenza di print aggiunge un carattere di a capo.

    Lultima istruzione del loop incrementa la variabile i di ununit.

    !"!#$%&'!(

    Arduino non pu generare dei segnali analogici, ma pu leggerli con la funzione:

    analogRead ( numero_porta_analogica);

    AnalogRead converte il valore di tensione presente su uno degli ingressi analogici dedicati (i pin da

    A0 a A5) in un numero compreso tra 0 e 10237. Potete collegare un qualsiasi tipo di sensore

    analogico che produca una tensione compresa tra zero e cinque volt. Provate a collegare una foto-

    7

    Il valore minimo di segnale che potete leggere pari a 5 V / 1024 e cio 0,0048 V, cio circa 5millivolt.

  • 7/25/2019 Arduino Manuale v0.5

    83/91

    78

    resistenza ad Arduino e a leggerne il valore. La foto resistenza componente speciale, sensibile alla

    luce. Ha una resistenza di qualche kilo-ohm che collegherete in serie con una resistenza da 10 kilo-

    ohm, formando una partitore di tensione. Collegate il pin A0 al punto centrale del partitore.

    Fig. 5.21 Schema elettrico del circuito per collegare una foto resistenza ad Arduino.

    Fig. 5.22 realizzazione del circuito su una breadboard.

    Non necessario dichiarare gli ingressi analogici.

    Ecco lo sketch per controllare la quantit di luce che raggiunge la foto resistenza:

    void setup() {

    Serial.begin(9600);

    }

    void loop() {

    int luce = analogRead(A0);

    Serial.print(livello luce: );

    Serial.println(luce);

  • 7/25/2019 Arduino Manuale v0.5

    84/91

    79

    delay(200);

    }

    Nel setup impostate solo la porta seriale, perch non necessario dichiarare gli ingressi analogici

    come tali. Nel loop il valore prelevato dallanalogRead conservato nella variabile intera luce. Il

    valore della variabile stampato sul serial monitor. Infine trovate una pausa da 200 millisecondi,

    per evitare che Arduino vomiti una valanga di letture.

    Collegate Arduino e caricate lo sketch, quindi aprite il serial monitor per leggere la sequenza di

    numeri. Dovreste vedere cambiare i valori quando farete ombra alla foto resistenza (o se la

    illuminerete).

    Provate a scrivere uno sketch per accendere un led solo quando buio.

  • 7/25/2019 Arduino Manuale v0.5

    85/91

    !"#$% '()"* %+,#"-'.%#+%/ '00"#,#+1%-*+)% * (%2"% 345

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

    6* )"#$% 1*7(% *""#"%/ 3* %( (%2"# )% 8 0%'9%4)# #004"* +#/ 3* $4#% 3'(4)'"-%539"%$%-%:

    0'#(#;.*00*(%+-'

  • 7/25/2019 Arduino Manuale v0.5

    86/91

    !"#$$%&'()* ,#% -*.#% / 01(2* )&3,"#$*!" $%&'$()*% +(' $,-(./ "( 0*,$1,)*' 23 ( 4.+5')% 6,))% 1%.*,*% )5%&% ')*(.(00( 1(. "76%88'0*'9,

    ("(**.%)'9,: ;($1.( 1'< )5%&' ,11,00'%),*'/ 95.'%0'/ ')&()*%.' ( '))%&,*%.' 0' ,&&'9'),)% , )5%&( (1%*()*' *(9)%"%='( 1(. 9.(,.( 1.%*%*'1' ( 9'.95'*' 9%$1"(00': >( 1%*()?',"'*@ %AA(.*( +,' )5%&'

    0*.5$()*' 0%)% '))5$(.(&%"' ( , &%"*( 0*.,8'"',)*': B6'5)C5( 15D 1.%=.,$$,.( 5), 096(+, 4.+5')%50,)+% 5) 0($1"'9( 9,&% E;F ( 9%0*.5'.( +.%)'/ .%8%* ( 0*,$1,)*' 23: G(. 1%*(. (00(.( ')+'1()+()*'

    0(.&%)% 5) 1%7 +' (01(.'()?, ( ,"95)( 9%)%09()?( +' 8,0( 96( )%) 0($1.( 0%)% A,9'$()*( .(1(.'8'"'

    ') H(*(: I5(0*% "'8.% )%) &5%"( (00(.( 5) )5%&% *(0*% 05 4.+5')%/ *.,**,)+%"% 0%"% ') $%+%$,.='),"(/ $, 1.%1%)( ," "(**%.( 5), 0(.'( +' ,11.%A%)+'$()*' *(%.'9' ( 1.,*'9' 1(. 9%$1.()+(.(

    C5(0*, ,AA,09'),)*( $,*(.', ( 1(. (00(.( ,5*%)%$' )(""% 0&'"511% +(' 1.%1.' 1.%=(**': !" *(0*% ')9"5+(

    +(""( 0(?'%)' *(%.'96( )(9(00,.'( 1(. 01'(=,.( ( 9,1'.( ="' (01(.'$()*' %"*.( 96, , (0(.9'?' (,11"'9,?'%)' 1.,*'96(: B6( 9%$1%)()*' 0' 1%00%)% 50,.( %"*.( , >J3 ( 15"0,)*'K B%$( A5)?'%), 5)

    *.,)0'0*%. ( , 9%0, 0(.&(K B%$( 0' ,$1"'A'9, 5) 0(=),"(K B%$( 0' ,"'$()*, 5) 1.%*%*'1%K

    !"#%&''()#((*+)#%&,()*(- .//!-001112,"!!"3(*%&4"#2(/0!5663(7&,()*(0

  • 7/25/2019 Arduino Manuale v0.5

    87/91

    4567#8(9' ,#% "* :$*3,* 67L5**% C5(""% 96( 0(.&( 0,1(.( 1(. 1,00,.( +," +'0(=)% ,""7%==(**% 0*,$1,*%

    B%$( 5*'"'??,.( MN23(0'=) 1(. 9.(,.( +'0(=)' ,+,**' ,+ (00(.( 0*,$1,*' 9%) 5), 0*,$1,)*( 23:;9%1.' 9%07O ", 0*,$1, 23 ( 9%$( 9.(,.( A'"( ,+,**' ,+ (00(.( 0*,$1,*': E) "'8.% 1(. 96' 0' ,&&'9'),

    ," $%)+% +("", 0*,$1, 23 ( )%) 6, A,$'"',.'*@ 9%) 5) 1.%=.,$$, B43:

    !"#%&''()#((*+)#%&,()*(- .//!-001112,"!!"3(*%&4"#2(/0!5663(7&,()*(0

    http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/
  • 7/25/2019 Arduino Manuale v0.5

    88/91

    ;" -*'1*"# 2#" -*.#%B%0, 0'=)'A'9, (00(.( 5) $,-(.K B%$( 0' 15D 1,.*'.( +, 5)7'+(, ( .()+(.", .(,"*@K I5,"' 0%)% ="'0*.5$()*' , )%0*., +'01%0'?'%)(K J 9%$( 1%00',$% (&'*,.( +' 01.(9,.( 5) ,))% +' ",&%.% 1(.

    9%0*.5'.( C5,"9%0, 96( )(005)% +(0'+(.,KP!" Q,)5,"( +(" Q,-(.R .'01%)+( , C5(0*( ( , *,)*( ,"*.( +%$,)+( 05" A()%$()% 96( 0*,

    .'&%"5?'%),)+% '" $%+% +' 1.%=(**,.( ( 1.%+5..( ="' %==(**'/ +," 1(??% +' .'9,$8'% %.$,' ')*.%&,8'"(

    1(. ", &(996', ",&,*.'9( ,""( 1'< 9%$1"(00( ( A,)*,0'%0( $,996')( ')*(.,**'&(:!) 2NS 1,=')(/ 9%) %"*.( 2TT '$$,=')' , 9%"%.'/ *5**( "( *(9)'96( ( "( 1.,*'96( 1(. *.,0A%.$,.(

    '$$(+',*,$()*( "( 1.%1.'( '+(( ') 1.%=(**' 9%)9.(*'/ 5*'"'??,)+% "( )5%&( *(9)%"%='( +'='*,"'/"7("(**.%)'9, ( ", 1.%=.,$$,?'%)(:

    ;1'(=,?'%)' 96',.( ( 15)*5,"' 1(. "'8(.,.( ", 9.(,*'&'*@/ =(0*'.( 1.%=(**' +' 0599(00% ( +,.( &'*, , 5)

    850')(00 0%0*()'8'"(:

    !"#%&''()#((*+)#%&,()*(- .//!-001112,"!!"3(*%&4"#2(/0!5663(7&,()*(0

    http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/http://www.zeppelinmaker.it/pubblicazioni/
  • 7/25/2019 Arduino Manuale v0.5

    89/91

    :$*3,* 67 / :$*

  • 7/25/2019 Arduino Manuale v0.5

    90/91

    7( ,%&88(3* 18)($*>

    >, =5'+, 9%$1"(*, ( =.,*5'*, 05" $%)+% +("", 0*,$1, 23X *(9)%"%='(/ *(%.',/ 0%A*Y,.( ( 1.%=.,$$':

    !"#%&''()#((*+)#%&,()*(- .//!-001112,"!!"3(*%&4"#2(/0!5663(7&,()*(0

  • 7/25/2019 Arduino Manuale v0.5

    91/91

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

    !"#$%&' . $&, /%00'), 102-#, -)-33"'&%0, #'3,3, #% $& +%0"'0'&3"'))'"-40%'. $& /%00')' 0'+/$3-"4 02- 02%$&5$- /$6 %+/,","- , $3%)%77,"- %& 8"-9-3-+/' /-" "-,)%77,"- 0%"0$%3% -)-33"'&%0% %&3-",33%9%: ;-" 19%)$//,"- $&/"'