công nghệ ngày càng phát triển. và nhu cầu tiếp cận với các tài liệu chuẩn về kỹ thuật bằng Tiếng Anh ngày càng cao, tài liệu tiếng Anh mang lại cho bạn đọc các kiến thức cơ bản nhất, nền tảng nhất và hơn nữa là gồm cả những kiến thức chuyên sâu. mà ít sáng tiếng Việt nào đáp ứng được. và đây là cuốn sách nói về công nghệ của chíp điều khiển arduino, tài liệu 100% bằng tiếng Anh, hứa hẹn sẽ làm thỏa mãn nhu cầu khám phá của những bạn đọc có đam mê
Arduino Cookbook Arduino Cookbook 0LFKDHO0DUJROLV Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo Arduino Cookbook E\0LFKDHO0DUJROLV &RS\ULJKW0LFKDHO0DUJROLVDQG1LFKRODV:HOGLQ$OOULJKWVUHVHUYHG 3ULQWHGLQWKH8QLWHG6WDWHVRI$PHULFD 3XEOLVKHGE\2¦5HLOO\0HGLD,QF*UDYHQVWHLQ+LJKZD\1RUWK6HEDVWRSRO&$ 2¦5HLOO\ERRNVPD\EHSXUFKDVHGIRUHGXFDWLRQDOEXVLQHVVRUVDOHVSURPRWLRQDOXVH2QOLQHHGLWLRQV DUHDOVRDYDLODEOHIRUPRVWWLWOHVKWWSP\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 Getting Started ,QVWDOOLQJWKH,QWHJUDWHG'HYHORSPHQW(QYLURQPHQW,'( 6HWWLQJ8SWKH$UGXLQR%RDUG 8VLQJWKH,QWHJUDWHG'HYHORSPHQW(QYLURQPHQW,'( VHQVRUWRFKDQJHYDOXHVRQDGLJLWDO SLQZKHQVRPHRQHPRYHVQHDUE\ 6HQVRUVVXFKDVWKH6SDUN)XQ3,50RWLRQ6HQVRU6(1 DQGWKH3DUDOOD[3,5 6HQVRU FDQEHHDVLO\FRQQHFWHGWR$UGXLQRSLQVDVVKRZQLQ)LJXUH )LJXUH&RQQHFWLQJD3,5PRWLRQVHQVRU &KHFNWKHGDWDVKHHWIRU\RXUVHQVRUWRLGHQWLI\WKHFRUUHFWSLQV7KH3DUDOOD[VHQVRU KDVSLQVPDUNHG£287¤£¤DQG£¤IRU2XWSXW*QGDQG9 7KH6SDUN)XQ VHQVRULVPDUNHGZLWK£$ODUP¤£*1'¤DQG£'&¤IRU2XWSXW*QGDQG9 6.3 Detecting Motion (Integrating Passive Infrared Detectors) | 171 7KHIROORZLQJVNHWFKZLOOOLJKWWKH/('RQ$UGXLQRSLQZKHQWKHVHQVRUGHWHFWV PRWLRQ /* */ PIR sketch a Passive Infrared motion sensor connected to pin lights the LED on pin 13 const int ledPin = 13; const int inputPin = 2; void setup() { pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); } // choose the pin for the LED // choose the input pin (for the PIR sensor) void loop(){ int val = digitalRead(inputPin); if (val == HIGH) { digitalWrite(ledPin, HIGH); delay(500); digitalWrite(ledPin, LOW); } } // declare LED as output // declare pushbutton as input // read input value // check if the input is HIGH // turn LED on if motion detected // turn LED off Discussion 7KLVFRGHLVVLPLODUWRWKHSXVKEXWWRQH[DPSOHVVKRZQLQ&KDSWHU7KDW¦VEHFDXVH WKHVHQVRUDFWVOLNHDVZLWFKZKHQPRWLRQLVGHWHFWHG'LIIHUHQWNLQGVRI3,5VHQVRUV DUHDYDLODEOHDQG\RXVKRXOGFKHFNWKHLQIRUPDWLRQIRUWKHRQH\RXKDYHFRQQHFWHG 6RPH VHQVRUV VXFK DV WKH 3DUDOOD[ KDYH D MXPSHU WKDW GHWHUPLQHV KRZ WKH RXWSXW EHKDYHVZKHQPRWLRQLVGHWHFWHG,QRQHPRGHWKHRXWSXWUHPDLQVHIGHZKLOHPRWLRQ LVGHWHFWHGRULWFDQEHVHWVRWKDWWKHRXWSXWJRHV HIGHEULHIO\DQGWKHQ LOWZKHQ WULJJHUHG7KHH[DPSOHVNHWFKLQWKLVUHFLSH¦V6ROXWLRQZLOOZRUNLQHLWKHUPRGH 2WKHUVHQVRUVPD\JR LOWRQGHWHFWLQJPRWLRQ,I\RXUVHQVRU¦VRXWSXWSLQJRHV LOW ZKHQPRWLRQLVGHWHFWHGFKDQJHWKHOLQHWKDWFKHFNVWKHLQSXWYDOXHVRWKDWWKH/(' LVWXUQHGRQZKHQLOW if (val == LOW) // motion when the input is LOW 3,5VHQVRUVFRPHLQDYDULHW\RIVW\OHVDQGDUHVHQVLWLYHRYHUGLIIHUHQWGLVWDQFHVDQG DQJOHV&DUHIXOFKRLFHDQGSRVLWLRQLQJFDQPDNHWKHPUHVSRQGWRPRYHPHQWLQSDUWRI DURRPUDWKHUWKDQDOORILW 3,5VHQVRUVUHVSRQGWRKHDWDQGFDQEHWULJJHUHGE\DQLPDOVVXFKDVFDWV DQGGRJVDVZHOODVE\SHRSOHDQGRWKHUKHDWVRXUFHV 172 | Chapter 6: Getting Input from Sensors 6.4 Measuring Distance Problem