Tải bản đầy đủ (.pdf) (658 trang)

arduino cookbook( arduino chuẩn bằng tiếng Anh)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (13.43 MB, 658 trang )



Arduino Cookbook



Arduino Cookbook

0LFKDHO0DUJROLV

Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo


Arduino Cookbook
E\0LFKDHO0DUJROLV
&RS\ULJKW‹0LFKDHO0DUJROLVDQG1LFKRODV:HOGLQ$OOULJKWVUHVHUYHG
3ULQWHGLQWKH8QLWHG6WDWHVRI$PHULFD
3XEOLVKHGE\2¦5HLOO\0HGLD,QF*UDYHQVWHLQ+LJKZD\1RUWK6HEDVWRSRO&$
2¦5HLOO\ERRNVPD\EHSXUFKDVHGIRUHGXFDWLRQDOEXVLQHVVRUVDOHVSURPRWLRQDOXVH2QOLQHHGLWLRQV
DUHDOVRDYDLODEOHIRUPRVWWLWOHV KWWSP\VDIDULERRNVRQOLQHFRP
)RUPRUHLQIRUPDWLRQFRQWDFWRXU
FRUSRUDWHLQVWLWXWLRQDOVDOHVGHSDUWPHQW 
RUFRUSRUDWH#RUHLOO\FRP

Editors: 6LPRQ6W/DXUHQWDQG%ULDQ-HSVRQ
Production Editor: 7HUHVD(OVH\
Copyeditor: $XGUH\'R\OH
Proofreader: 7HUHVD(OVH\

Indexer: /XFLH+DVNLQV
Cover Designer: .DUHQ0RQWJRPHU\


Interior Designer: 'DYLG)XWDWR
Illustrator: 5REHUW5RPDQR

Printing History:
0DUFK

)LUVW(GLWLRQ

1XWVKHOO+DQGERRNWKH1XWVKHOO+DQGERRNORJRDQGWKH2¦5HLOO\ORJRDUHUHJLVWHUHGWUDGHPDUNVRI
2¦5HLOO\0HGLD,QF$UGXLQR&RRNERRNWKHLPDJHRIDWR\UDEELWDQGUHODWHGWUDGHGUHVVDUHWUDGHPDUNV
RI2¦5HLOO\0HGLD,QF
0DQ\RIWKHGHVLJQDWLRQVXVHGE\PDQXIDFWXUHUVDQGVHOOHUVWRGLVWLQJXLVKWKHLUSURGXFWVDUHFODLPHGDV
WUDGHPDUNV:KHUHWKRVHGHVLJQDWLRQVDSSHDULQWKLVERRNDQG2¦5HLOO\0HGLD,QFZDVDZDUHRID
WUDGHPDUNFODLPWKHGHVLJQDWLRQVKDYHEHHQSULQWHGLQFDSVRULQLWLDOFDSV
:KLOHHYHU\SUHFDXWLRQKDVEHHQWDNHQLQWKHSUHSDUDWLRQRIWKLVERRNWKHSXEOLVKHUDQGDXWKRUVDVVXPH
QRUHVSRQVLELOLW\IRUHUURUVRURPLVVLRQVRUIRUGDPDJHVUHVXOWLQJIURPWKHXVHRIWKHLQIRUPDWLRQFRQ
WDLQHGKHUHLQ

,6%1
>/6,@



Table of Contents

Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
1. Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
 ,QVWDOOLQJWKH,QWHJUDWHG'HYHORSPHQW(QYLURQPHQW ,'(

 6HWWLQJ8SWKH$UGXLQR%RDUG

 8VLQJWKH,QWHJUDWHG'HYHORSPHQW(QYLURQPHQW ,'(
WR3UHSDUH
DQ$UGXLQR6NHWFK
 8SORDGLQJDQG5XQQLQJWKH%OLQN6NHWFK
 &UHDWLQJDQG6DYLQJD6NHWFK
 8VLQJ$UGXLQR








2. Making the Sketch Do Your Bidding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19





















6WUXFWXULQJDQ$UGXLQR3URJUDP
8VLQJ6LPSOH3ULPLWLYH7\SHV 9DULDEOHV

8VLQJ)ORDWLQJ3RLQW1XPEHUV
:RUNLQJZLWK*URXSVRI9DOXHV
8VLQJ$UGXLQR6WULQJ)XQFWLRQDOLW\
8VLQJ&&KDUDFWHU6WULQJV
6SOLWWLQJ&RPPD6HSDUDWHG7H[WLQWR*URXSV
&RQYHUWLQJD1XPEHUWRD6WULQJ
&RQYHUWLQJD6WULQJWRD1XPEHU
6WUXFWXULQJ5HWXUQLQJ0RUH7KDQ2QH9DOXHIURPD)XQFWLRQ
7DNLQJ$FWLRQV%DVHGRQ&RQGLWLRQV
5HSHDWLQJD6HTXHQFHRI6WDWHPHQWV
5HSHDWLQJ6WDWHPHQWVZLWKD&RXQWHU
%UHDNLQJ2XWRI/RRSV
7DNLQJD9DULHW\RI$FWLRQV%DVHGRQD6LQJOH9DULDEOH
&RPSDULQJ&KDUDFWHUDQG1XPHULF9DOXHV
&RPSDULQJ6WULQJV
3HUIRUPLQJ/RJLFDO&RPSDULVRQV






















v


 3HUIRUPLQJ%LWZLVH2SHUDWLRQV
 &RPELQLQJ2SHUDWLRQVDQG$VVLJQPHQW




3. Using Mathematical Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

















$GGLQJ6XEWUDFWLQJ0XOWLSO\LQJDQG'LYLGLQJ
,QFUHPHQWLQJDQG'HFUHPHQWLQJ9DOXHV
)LQGLQJWKH5HPDLQGHU$IWHU'LYLGLQJ7ZR9DOXHV
'HWHUPLQLQJWKH$EVROXWH9DOXH
&RQVWUDLQLQJD1XPEHUWRD5DQJHRI9DOXHV
)LQGLQJWKH0LQLPXPRU0D[LPXPRI6RPH9DOXHV
5DLVLQJD1XPEHUWRD3RZHU
7DNLQJWKH6TXDUH5RRW
5RXQGLQJ)ORDWLQJ3RLQW1XPEHUV8SDQG'RZQ
8VLQJ7ULJRQRPHWULF)XQFWLRQV
*HQHUDWLQJ5DQGRP1XPEHUV
6HWWLQJDQG5HDGLQJ%LWV
6KLIWLQJ%LWV
([WUDFWLQJ+LJKDQG/RZ%\WHVLQDQLQWRUORQJ
)RUPLQJDQLQWRUORQJIURP+LJKDQG/RZ%\WHV


















4. Serial Communications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

















6HQGLQJ'HEXJ,QIRUPDWLRQIURP$UGXLQRWR6HQGLQJ)RUPDWWHG7H[WDQG1XPHULF'DWDIURP$UGXLQR
5HFHLYLQJ6HULDO'DWDLQ$UGXLQR
6HQGLQJ0XOWLSOH7H[W)LHOGVIURP$UGXLQRLQD6LQJOH0HVVDJH
5HFHLYLQJ0XOWLSOH7H[W)LHOGVLQD6LQJOH0HVVDJHLQ$UGXLQR
6HQGLQJ%LQDU\'DWDIURP$UGXLQR
5HFHLYLQJ%LQDU\'DWDIURP$UGXLQRRQD&RPSXWHU
6HQGLQJ%LQDU\9DOXHVIURP3URFHVVLQJWR$UGXLQR
6HQGLQJWKH9DOXHRI0XOWLSOH$UGXLQR3LQV
+RZWR0RYHWKH0RXVH&XUVRURQD3&RU0DF
&RQWUROOLQJ*RRJOH(DUWK8VLQJ$UGXLQR
/RJJLQJ$UGXLQR'DWDWRD)LOHRQ6HQGLQJ'DWDWR7ZR6HULDO'HYLFHVDWWKH6DPH7LPH
5HFHLYLQJ6HULDO'DWDIURP7ZR'HYLFHVDWWKH6DPH7LPH
6HWWLQJ8S3URFHVVLQJRQDQG5HFHLYH6HULDO'DWD


















5. Simple Digital and Analog Input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133





8VLQJD6ZLWFK
8VLQJD6ZLWFK:LWKRXW([WHUQDO5HVLVWRUV
5HOLDEO\'HWHFWLQJWKH&ORVLQJRID6ZLWFK
'HWHUPLQLQJ+RZ/RQJD6ZLWFK,V3UHVVHG

vi | Table of Contents
















5HDGLQJD.H\SDG
5HDGLQJ$QDORJ9DOXHV
&KDQJLQJWKH5DQJHRI9DOXHV
5HDGLQJ0RUH7KDQ6L[$QDORJ,QSXWV
'LVSOD\LQJ9ROWDJHV8SWR9
5HVSRQGLQJWR&KDQJHVLQ9ROWDJH
0HDVXULQJ9ROWDJHV0RUH7KDQ9 9ROWDJH'LYLGHUV










6. Getting Input from Sensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165




















'HWHFWLQJ0RYHPHQW
'HWHFWLQJ/LJKW
'HWHFWLQJ0RWLRQ ,QWHJUDWLQJ3DVVLYH,QIUDUHG'HWHFWRUV

0HDVXULQJ'LVWDQFH
0HDVXULQJ'LVWDQFH$FFXUDWHO\
'HWHFWLQJ9LEUDWLRQ
'HWHFWLQJ6RXQG
0HDVXULQJ7HPSHUDWXUH
5HDGLQJ5),'7DJV
7UDFNLQJWKH0RYHPHQWRID'LDO
7UDFNLQJWKH0RYHPHQWRI0RUH7KDQ2QH5RWDU\(QFRGHU
7UDFNLQJWKH0RYHPHQWRID'LDOLQD%XV\6NHWFK
8VLQJD0RXVH
*HWWLQJ/RFDWLRQIURPD*36
'HWHFWLQJ5RWDWLRQ8VLQJD*\URVFRSH
'HWHFWLQJ'LUHFWLRQ
*HWWLQJ,QSXWIURPD*DPH&RQWURO3DG 3OD\6WDWLRQ

5HDGLQJ$FFHOHUDWLRQ





















7. Visual Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217














&RQQHFWLQJDQG8VLQJ/('V
$GMXVWLQJWKH%ULJKWQHVVRIDQ/('
'ULYLQJ+LJK3RZHU/('V
$GMXVWLQJWKH&RORURIDQ/('
6HTXHQFLQJ0XOWLSOH/('V&UHDWLQJD%DU*UDSK
6HTXHQFLQJ0XOWLSOH/('V0DNLQJD&KDVH6HTXHQFH .QLJKW
5LGHU

&RQWUROOLQJDQ/('0DWUL[8VLQJ0XOWLSOH[LQJ
'LVSOD\LQJ,PDJHVRQDQ/('0DWUL[
&RQWUROOLQJD0DWUL[RI/('V&KDUOLHSOH[LQJ
'ULYLQJD6HJPHQW/(''LVSOD\
'ULYLQJ0XOWLGLJLW6HJPHQW/(''LVSOD\V0XOWLSOH[LQJ
'ULYLQJ0XOWLGLJLW6HJPHQW/(''LVSOD\V8VLQJ0$;6KLIW
5HJLVWHUV















Table of Contents | vii


 &RQWUROOLQJDQ$UUD\RI/('VE\8VLQJ0$;[[6KLIW5HJLVWHUV
 ,QFUHDVLQJWKH1XPEHURI$QDORJ2XWSXWV8VLQJ3:0([WHQGHU
&KLSV 7/&

 8VLQJDQ$QDORJ3DQHO0HWHU$VD'LVSOD\





8. Physical Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
 &RQWUROOLQJWKH3RVLWLRQRID6HUYR
 &RQWUROOLQJ2QHRU7ZR6HUYRVZLWKD3RWHQWLRPHWHU
RU6HQVRU
 &RQWUROOLQJWKH6SHHGRI&RQWLQXRXV5RWDWLRQ6HUYRV
 &RQWUROOLQJ6HUYRVIURPWKH6HULDO3RUW
 'ULYLQJD%UXVKOHVV0RWRU 8VLQJD+REE\6SHHG&RQWUROOHU

 &RQWUROOLQJ6ROHQRLGVDQG5HOD\V
 0DNLQJDQ2EMHFW9LEUDWH
 'ULYLQJD%UXVKHG0RWRU8VLQJD7UDQVLVWRU
 &RQWUROOLQJWKH'LUHFWLRQRID%UXVKHG0RWRU
ZLWKDQ+%ULGJH
 &RQWUROOLQJWKH'LUHFWLRQDQG6SHHGRID%UXVKHG0RWRUZLWKDQ
+%ULGJH
 8VLQJ6HQVRUVWR&RQWUROWKH'LUHFWLRQDQG6SHHGRI%UXVKHG

0RWRUV /+%ULGJH

 'ULYLQJD%LSRODU6WHSSHU0RWRU
 'ULYLQJD%LSRODU6WHSSHU0RWRU 8VLQJWKH(DV\'ULYHU%RDUG

 'ULYLQJD8QLSRODU6WHSSHU0RWRU 8/1$

















9. Audio Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297









3OD\LQJ7RQHV
3OD\LQJD6LPSOH0HORG\
*HQHUDWLQJ0RUH7KDQ2QH6LPXOWDQHRXV7RQH
*HQHUDWLQJ$XGLR7RQHVDQG)DGLQJDQ/('
3OD\LQJD:$9)LOH
&RQWUROOLQJ0,',
0DNLQJDQ$XGLR6\QWKHVL]HU









10. Remotely Controlling External Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317






5HVSRQGLQJWRDQ,QIUDUHG5HPRWH&RQWURO
'HFRGLQJ,QIUDUHG5HPRWH&RQWURO6LJQDOV
,PLWDWLQJ5HPRWH&RQWURO6LJQDOV
&RQWUROOLQJD'LJLWDO&DPHUD
&RQWUROOLQJ$&'HYLFHVE\+DFNLQJD5HPRWH&RQWUROOHG6ZLWFK








11. Using Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
 &RQQHFWLQJDQG8VLQJD7H[W/&''LVSOD\
viii | Table of Contents















)RUPDWWLQJ7H[W
7XUQLQJWKH&XUVRUDQG'LVSOD\2QRU2II
6FUROOLQJ7H[W
'LVSOD\LQJ6SHFLDO6\PEROV
&UHDWLQJ&XVWRP&KDUDFWHUV

'LVSOD\LQJ6\PEROV/DUJHU7KDQD6LQJOH&KDUDFWHU
'LVSOD\LQJ3L[HOV6PDOOHU7KDQD6LQJOH&KDUDFWHU
&RQQHFWLQJDQG8VLQJD*UDSKLFDO/&''LVSOD\
&UHDWLQJ%LWPDSVIRU8VHZLWKD*UDSKLFDO'LVSOD\
'LVSOD\LQJ7H[WRQD79












12. Using Time and Dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367







&UHDWLQJ'HOD\V
8VLQJPLOOLVWR'HWHUPLQH'XUDWLRQ
0RUH3UHFLVHO\0HDVXULQJWKH'XUDWLRQRID3XOVH
8VLQJ$UGXLQR$VD&ORFN
&UHDWLQJDQ$ODUPWR3HULRGLFDOO\&DOOD)XQFWLRQ

8VLQJD5HDO7LPH&ORFN








13. Communicating Using I2C and SPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389










&RQWUROOLQJDQ5*%/('8VLQJWKH%OLQN00RGXOH
8VLQJWKH:LL1XQFKXFN$FFHOHURPHWHU
,QWHUIDFLQJWRDQ([WHUQDO5HDO7LPH&ORFN
$GGLQJ([WHUQDO((35200HPRU\
5HDGLQJ7HPSHUDWXUHZLWKD'LJLWDO7KHUPRPHWHU
'ULYLQJ)RXU6HJPHQW/('V8VLQJ2QO\7ZR:LUHV
,QWHJUDWLQJDQ,&3RUW([SDQGHU
'ULYLQJ0XOWLGLJLW6HJPHQW'LVSOD\V8VLQJ63,
&RPPXQLFDWLQJ%HWZHHQ7ZRRU0RUH$UGXLQR%RDUGV












14. Wireless Communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425






6HQGLQJ0HVVDJHV8VLQJ/RZ&RVW:LUHOHVV0RGXOHV
&RQQHFWLQJ$UGXLQRWRD=LJ%HHRU1HWZRUN
6HQGLQJD0HVVDJHWRD3DUWLFXODU;%HH
6HQGLQJ6HQVRU'DWD%HWZHHQ;%HHV
$FWLYDWLQJDQ$FWXDWRU&RQQHFWHGWRDQ;%HH







15. Ethernet and Networking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451







6HWWLQJ8SWKH(WKHUQHW6KLHOG
2EWDLQLQJ5HVROYLQJ+RVWQDPHVWR,3$GGUHVVHV '16

×