Duy

79
■ Chương 1: Bắt đầu ........................................... ....... ..................................... 1 ■ Chương 2: Vẽ trong .......................................... ......... ............................. 17 ■ Chương 3: Làm việc với biến .......................................... ....... ....................... 33 ■ Chương 4: Làm quyết định ........................................... ...... ................................ 47 ■ Chương 5: kỹ thuật số Ins Và ngoài ......................................... ....... .............................. 61 ■ Chương 6: Trong Analog, Analog Out ........................................ .............. ..................... 79 ■ Chương 7: Chức năng nâng cao ........................................... ....... ........................... 95 ■ Chương 8: Mảng và bộ nhớ .......................................... ........ ......................... 121 ■ Chương 9: Thư viện Phần cứng ........................................... ...... ........................... 143

description

duy

Transcript of Duy

Chng 1: Bt u ........................................... ............................................ 1 Chng 2: V trong M .......................................... ...................................... 17 Chng 3: Lm vic vi bin .......................................... .............................. 33 Chng 4: Lm quyt nh ........................................... ...................................... 47 Chng 5: k thut s Ins V ngoi ......................................... ..................................... 61 Chng 6: Trong Analog, Analog Out ........................................ ................................... 79 Chng 7: Chc nng nng cao ........................................... .................................. 95 Chng 8: Mng v b nh .......................................... ................................. 121 Chng 9: Th vin Phn cng ........................................... ................................. 143 Chng 10: Serial v I2C .......................................... ......................................... 175 Chng 11: Tip tc M ........................................... ........................................ 201 Chng 12: Bt u t in t ........................................... ........................... 221 Ph lc: Ti nguyn .............................................cun sch ny s gip bn pht trin m ngun lm vic cho vi iu khin Arduino. Trong cc trang ny, chng ti s ch yu quan tm n cc kha cnh phn mm m tnh ton thit k vt l lm vic vi cc i tng vt l hin hnh vi hoc tng tc thng qua phn mm. Bt u vi bi cnh c bn ca nn tng Arduino nhn c v chy vi m u tin ca chng ti, chng ti s tho lun v cu trc v c php ca C da trn ngn ng lp trnh Arduino, nhn vo cc bin, cu trc iu khin, mng, v b nh. Cun sch ny sau s i vo nhiu chc nng c o pht trin Arduino kim sot u vo v u ra, thi gian, ngu nhin k thut s v analog, vit chc nng, v s dng rt nhiu cc th vin Arduino lm vic vi cc loi khc nhau ca phn cng v giao thc truyn thng.Arduino, nh ch bin trc , thng qua cc tng v mt quyn phc tho m. Chng ti s tip tc n d ny nh chng ta ni v qu trnh phc tho trong m nh l mt phng php trc quan nhanh chng th nghim nhng tng mi trong m. Hu ht cc cun sch ny c vit xung quanh tng ny pht trin k nng lp trnh thng qua phc tho. Chng ti cng s cung cp mt s gi cho cc d n mi v phn cng, ngn ng mi th ra, v cch ng gp cho cng ng. Cun sch ny c khng sng qu lu trn l thuyt in t, thit k mch, hack, hoc thc hnh c th da trn phn cng khc, mc d chng ti s xem li bn phn cng ca s vt trong chng cui cng ca chng ti cung cp mt nn tng nh cho my tnh vt l.Cun sch ny trong nhiu cch chn ni m cc Arduino Lp trnh My tnh xch tay ri i, vi nhiu hn trong cuc tho lun su v mi trng Arduino, n gin, khng kiu cch mu m, v r rng, s v hnh minh ha d c. My tnh xch tay, mt cun sch PDF nh b, kinh nghim u tin ca ti vit v Arduino v khng bao gi c ngha l c nhiu hn mt hng dn ngn gn cho sinh vin ca ti khi ti ln u tin gii thiu mt lp hc ca 15 trng i hc ngh thut v chuyn ngnh thit k Arduino trong nm 2007. K hoch iu tt nht v tt c, cun sch ny t c dch sang ting Ty Ban Nha, Nga, v H Lan (m ti bit), c t chc nhiu ni khc nhau m n l khng th theo di, v n c s dng trong cc cuc hi tho v cc lp hc trn ton th gii. Ti khng c cp nht My tnh xch tay trong vi nm qua, v trong tt c cc trung thc Ti khng hon ton chc chn phi lm g vi n by gi, v vy hy vng cun sch mi ny s lp y mt khong trng v tm thy mt tng t, p dng rng ri cc tp sch nh c c hng tt c nhng nmArduino:.Ai Sch ny l i vicun sch ny c vit cho cc i tng chnh ca nn tng ngh s, nh thit k, sinh vin, tinkerers, v to ra mi th. Trong khi bn c th c mt s kinh nghim lp trnh m bn mun mang n cho cc nn tng Arduino, chng ti s gi nh khng c kin thc trc khi vit code. Vi m ni, mt s quen thuc cho sc khe ca my tnh l hu ch, nh l s sn sng v s t m t m nhn xa hn cun sch ny cho cu tr li nht nh.a s ngi dng Arduino ch mun c c nhng iu thc hin v thng khng quan tm n nhng chi tit nh -h ch mun d n ca h lm vic. Ti hiu iu ny, v ti l mt trong nhng ngi . u tin ti pht hin ra vi iu khin lp trnh khi ti l mt sinh vin ngh thut, v vo thi im , trng ngh thut khng phi l ni chung l mi trng thun li nht cho vic hc tp nh th no vit m v dy ln ng c-ti GII THIUt nht n khng phi l trc khi Arduino n cng . Tng t nh vy, ti khng bao gi mt cho mt tnh yu ca ton hc, v may mn khng phi l mt iu kin tin quyt thng thc su sc qu trnh vit m.c Schnyca chng ti qu trnhtrong mi chng s tp trung vo mt s d n c bn c xy dng trn cc khi nim chnh c trnh by trong chng . i vi mi d n, chng ti s bt u vi mt m t d n v tho lun v phn cng c th cn thit cho d n . Chng ti cng s cung cp s v hnh minh ha lm cho cc mch n gin v interfacing chng vo hi ng qun tr Arduino. Khi bn c qua tng d n, bn nn ghi chp v vit trong l-chng ti s khng c xc phm. Th nghim, hy th nhng iu mi, v xem nhng g s xy ra.Cc d n chng minh trong cun sch ny c ngha l c nguyn mu, hoc bng chng ca khi nim thit k c bn cho mt thit b mi. Chng ti s tun th mt mc ti gin, gi cho phn cng n gin v d dng t c h tr s pht trin ca m c vit tinh vi. Mt khi bn xy dng nguyn mu, n c th c kt hp vo mt d n cui cng sau . Chng ti s khng thc s c lm iu y chng ti c th tp trung vo vic vit v pht trin m. V d ca chng ti s vay v xy dng ln nhau trong sut cun sch, xem xt li v d trc khi chng ta cn l s hiu bit ca chng ta v pht trin vit m.Mc ch vi mu m ca chng ti l vit m compartmentalized hoc m-un bt c ni no c th cho php kh nng thch ng d dng v tng lai pht trin. Chng ti s dnh nhiu thi gian pht trin k nng m ha ca chng ti khi ni n thi gian pht trin mt d n mi c lp, bn s bit bt u t u. Nhng bn phc tho c ngha l c cht lng bn c khuyn khch hack h thay i gi tr, thi gian, bi tp pin, dao, v nh vy cho n khi n khng cn hot ng. Sau c gng sa cha n. Chng ti s dnh vo mt phong cch c th ca vn bn m trong cc mu ca chng ti, mc d chng ti mong bn pht trin phong cch vit ca ring bn m phn nh cch bn suy ngh v cch bn mun xem m ca bn.Dy ln cc mch cho cc d n ca chng ti l n gin v n gin nht c th, vi t hoc khng c s hiu bit v thit b in t cn thit. Nh mt cch kt ni li cc cuc tho lun ca chng ta v lp trnh cho cc thit b in t vt l s dng trong sut cun sch, Chng 12 s cung cp mt nh gi ngn gn ca mt s thit b in t c bn, bao gm cch mch lm vic, c s , v gii thiu v hn. Nu bn thy rng bn ang u tranh vi hooking ln cc d n trong cc chng trc, bn c th mun nhy Chng 12 cho mt bi dng. Nu khng, chng ny s phc v nh l mt bn tm tt tt m c th gip tr li mt s cu hi m bn c th thm ch khng bit bn c. Trong khi lc u iu ny c v mt cht v pha sau, n lm vic kh tt trong lp hc ca ti trong vi nm qua.Arduino 1.0Ti thi im vit bi ny, cc nh pht trin Arduino l chm ch lm vic trn mt n nh hn, hiu qu hn, v ni chung phin bn ci tin ca phn mm Arduino gi l Arduino 1.0. Phin bn pht hnh cui cng ca Arduino 1.0 nn c sn ngay cng mt thi im cun sch ny c cng b. iu ny quan trng bi v trong qu trnh lm cho mi vic tt hn, mt s iu c ph v. iu ny c ngha rng mt s m c vit theo phin bn alpha ca phn mm Arduino s khng hot ng trn Arduino 1.0.Ngc li, cc m trong cun sch ny v hnh nh ca mi trng pht trin Arduino c tt c c chun b bng cch s dng mt phin bn beta ca Arduino 1.0 (http :/ / code.google.com/p/arduino/wiki/Arduino1), do hnh nh ca phn mm Arduino c th xut hin khc vi phin bn cui cng, mt s m trong cun sch ny c th khng hot ng trn cc phin bn c ca phn mm, v vn cn cc tnh nng khc ca 1.0 cha c thc hin y - ti khng th vit v h. Cng c th c cn au ang pht trin khc vi nng cp ny m chng ta khng nhn thc y vo thi im ny, v vy nu mt vn bt thng cy trng ln, sau bn c th mun li cho 1.0 v bt u c tm ra nhng g sai.cChng ti s s dng mt s cng c trong cun sch ny, bao gm phng ch c nh chiu rng ph hp biu th nhng v d m c th, ch in m lm ni bt cc khi nim mi hoc cc nh ngha, v bt c iu g vi mt du ngoc sau n-nh trong thit lp () hoc vng lp ()-s biu th mt ci g c gi l mt chc nng. Bt c lc no c mt khi ch c nh chiu rng tch ra t vn bn chnh, n l mt v d m nhiu dng, nh sau y:/ / y l mt mulitline / / m v d Lu i khi s c khu vc tch bit nh cu ny l , nh mt mt lu , tip chung, hoc cnh bo v mt ci g bn s mun ch cn thn.ti v LutCc m ngun cho cun sch ny l c sn t cc trang web Apress (www.apress.com) trong M ngun / phn ti. Nu bn ang pht hnh v d c s dng m t cun sch ny, s dng ghi bao gm tiu , tc gi, nh xut bn, nm, v ISBN ni chung l mt iu tt p lm.Chng 1Bt uMt trong nhng cha kha thnh cng ca Arduino l ti thiu s lng thi gian m phi mt cho mt ngi mi hon thnh di chuyn t m hp nh c cha cc bng giao din Arduino c m ngun u tin ca h, cn c gi l mt bn phc tho, v chy trn bo mch.Mi trng pht trin phn mm Arduino l min ph ti v v s dng khng c th tc ng k di hoc cc tha thun ngi dng cui, v c rt t hoc khng c thit lp c c hi ng qun tr chy vi my tnh ca bn, bt k nn tng, lm vic tt nh nhau trn Mac, Linux, v my tnh da trn Windows. Trang web Arduino ti www.arduino.cc cung cp d dng lm theo "Bt u" hng dn v bt c khi no bn gp kh khn lun lun c cc hot ng, thanh nhc, v ni chung l hu ch cng ng Arduino l sn sng chia s kin thc ca mnh. Ny thp ro cn lp trnh nhng in t c ngha l n c th lm cho n nhp nhy trong mi pht phng vi t hoc cha c kinh nghim.Chng ny s hng dn bn qua lch s ng sau nn tng Arduino, vi mt mt hng ti nhng g lm cho cc Arduino mt cu chuyn thnh cng nh vy . Chng ti s xem xt mt s nhng iu m c th c thc hin vi nn tng ny v gip bn bt u trn chn phi vi mt s hiu bit vng chc v kh nng ca n. iu ny bao gm mt bn tm tt i b qua cc kinh nghim mi pht u tin chng ti c th nhanh chng di chuyn vo mt s d n u tin ca chng ti trong chng k tip. Nhng trc tin, chng ta hy bt u vi mt nn t.Arduino l cho cc nh hoch nhArduino l mt nn tng phn cng lp trnh linh hot c thit k cho cc ngh s, nh thit k, tinkerers, v to ra mi th. t, bng mch mu xanh Arduino ca, mythically ly tn t mt qun ru a phng , c trong mt thi gian rt ngn thc y mt th h mi ca DIYers ca tt c cc la tui lm cho tt c cc cch thc ca d n hoang d tm thy bt c ni no t cc cn c thing ling ca cc trng i hc ca chng ti ct sa mc nng nh thiu t ca mt l hi ngh thut hng nm c bit kht ting v ch l v khp mi ni gia. Thng thng cc d n Arduino da trn yu cu t hoc khng c k nng lp trnh hay kin thc v l thuyt in t, v thng xuyn hn khng, handiness ny ch n gin l nht trn ng i.Trung tm ca hi ng qun tr giao din Arduino, th hin trong hnh 1-1, l mt onboard vi iu khin suy ngh v n nh mt my tnh nh trn mt chip.Hnh 1-1. Arduino Uno hi ng qun tr giao din, 2011vi iu khin ny xut pht t mt cng ty gi l Atmel v chip c bit n nh mt AVR. N l chm trong iu kin hin i, chy 16Mhz ch vi mt li 8-bit, v c mt s lng rt hn ch v b nh c sn, vi 32 KB lu tr v 2 kilobyte b nh truy cp ngu nhin. Hi ng qun tr giao din ca n c bit n vi thit k ch hn k quc hi cht hards v tiu chun pin khong cch, nhng n cng hnh nh thu nh cc thn ch ti gin ch lm nhng iu phc tp nh h hon ton cn phi c. Thit k ca n khng phi l hon ton mi hoc cch mng, bt u vi mt s sp nhp ca hai t m, off-the-shelf thit k tham kho, mt cho mt vi iu khin khng tn km v mt cho mt b chuyn i USB-to-ni tip, vi mt s t cc thnh phn hu ch khc tt c gi ln trong mt bng duy nht. Ngi tin nhim ca n bao gm cc Stamp BASIC ng knh, trong c bt u ca n nh u nm 1992, cng nh OOPic, ATOM c bn, BASIC-X24, v PICAXE.Trng hp tt c cc tin thn l sn phm c quyn thng ng v thng i hi mt my vi tnh nn tng s dng, mi trng pht trin Arduino l min ph cho tt c mi ngi s dng v s chy trn ch l v bt k loi my tnh c h tr Java. Hi ng qun tr phn cng thc t chi ph 30 ch mt USD hoc EUR 22 v cn khng c g phc tp hn mt cp USB nhn c v chy. Gi c phi chng ny, gn mt na so vi i th cnh tranh gn nht ca n, v thit k bn ca hi ng qun tr dn n nhiu hi ng Arduino ging nh c khu vo thu (xem Hnh 1-2), nhng vo trong qu b ng c a ra thng qua khng kh bng cch trebuchets, v thm ch gi vo khng gian bn ngoi trong thi tit kh cu.Hnh 1-2. LilyPad Arduino thu, lch s Becky Stern, sternlab.orgny t nht l cho chng ta bit mt cht v nhng g loi ngi Arduino ban u c thit k cho v v phn cng c s dng trong thit k ca n, nhng nhng iu ny mt mnh khng bt u vo ti khon cho ln ca s thnh cng c hng Arduino nh mt ton th. c c mt cm gic cho s ph bin ny, chng ta cn phi nhn vo cc h sinh thi Arduino ln hn v lm th no mt s b phn kh khc nhau n vi nhau to ra mt phong tro.Arduino h sinh thiArduino khng ch l mt iu n gin lm cho n mt cht kh khn xc nh. N l mt nn tng vi iu khin, thit k m ngun m khuyn khch sa i v ti s dng, mt cng ng chp nhn v ln ln xung quanh cc Arduino, v mt v ma mi ca cc d n v cc thit b c th theo di dng h Arduino v c li ng gp tr li s pht trin ca cc kha cnh khc nhau ca ton b h sinh thi Arduino.CcArduinoh sinh thiPlatformArduino bt u vi nn tng Arduino, bn thn mt s lp ca phn cng v phn mm lm vic vi nhau to ra mt tng th gn kt. Chng ta c th bt u vi hi ng qun tr m t, bng mch mu xanh giao din phn cng m bn xy dng cc d n ca bn. N c mt vi iu khin trn tu kh chun c th tng tc vi th gii xung quanh n bng cch s dng u vo ca n c th lp trnh v kt qu u ra, cng nh mt USBcng v b iu khin cho d dng giao tip vi my tnh ca bn. Ny kt ni USB v cm thn thin cho dy ni vi d dng cm vo, ng gp vo mc cao kh nng s dng trong vic thit k giao din hi ng qun tr(http.:khng km quan trng i vi h sinh thi ny l mi trng pht trin Arduino, mt chng trnh da trn cc mi trng pht trin ch bin / / processing.org) m bn s dng vit, chnh sa, bin dch, v ti ln m ngun Arduino ca bn hi ng qun tr giao din. i Arduino lm gi nh chung rng mi ngi khng thc s quan tm n v s cc chi tit c th lin quan n k thut vi kin trc vi iu khin h ch mun n lm mt ci g mt m. Vi ngh , mi trng pht trin Arduino kt thc tt p mt s b phn iPod hn v lp trnh vi iu khin AVR thnh tt p, th vin n gin ca lnh Arduino c th c d dng hn s dng v d hiu hn, v c xy dng ngay vo mi phc tho vn bn Arduino. Mi trng pht trin ny l rt linh hot, c mt hi ng qun tr giao din Arduino thm ch cn khng cn thit s dng n. Thay vo , chng ta c th s dng vi iu khin AVR rt ging nh c xy dng ln bng giao din, nhng trong mt thit b hon ton khc nhau, chng hn nh v d th hin trong hnh 1-3 ca mt vi iu khin trn mt breadboard c lp trnh vi mt bn phc tho Arduino.Hnh 1-3. Vi iu khin AVR Arduino tng thch trn breadboardCui cng, chng ti c a n b np khi ng Arduino, mt on m nh nm trn vi iu khin cho php n d dng lp trnh vi mt kt ni n gin ni tip thay v cu knh, phn cng bn ngoi. Min l b np khi ng c lp trnh vo vi iu khin trc, chng ta c th s dng chip trong bt c thit b chng ti la chn, chng hn nh breadboard trong hnh 1-3, v vn cn vit m cho n bng cch s dng phn cn li ca nn tng Arduino. N gip nu chng ta s dng mt trong cc vi iu khin chung cho cc Arduino, nhng y khng phi l lun lun l mt iu kin tin quyt, vi nhiu vi iu khin Atmel khc lm vic gn nh cng c t hoc khng sa i.ngun m phncngnn tng Arduino l chnh n kh hu ch cho cc d n vi iu khin, nhng iu l khng thc y s ph bin v p dng rng ri ca nn tng ny. Thay v ng ca thit k ca hi ng qun tr giao din v mi trng pht trin, ton b d n Arduino n su trong thc hnh ang ni ln ca phn cng ngun m. Khng ging nh cc phn mm m ngun m, trong Linux thng l v d thng c trch dn, phn cng ngun m tm kim s hp tc ni cc i tng vt l l kt qu. N tham gia mt m hnh phn phi ca pht trin phn cng vi nhng ngi ng gp thng tr ti cc phn khc nhau ca th gii. Ch khng phi l h thng khp kn, cc d n m ngun m cho php mt s t do c nhn truy cp vo cc tp tin m ngun ca mt thit k, ci tin, v phn phi li nhng ci tin v mt cng ng ln hn.Cc h sinh thi Arduino c bn th hin kht vng ny cho s ci m trong thit k, kin trc, hp tc, v trit hc. Bn c th nhn thy n cho chnh mnh nh tt c cc file thit k, s , v phn mm t do c sn ti v, s dng, sa i, lm li, v thm ch bn li. Nhng g bt u nh l mt quyt nh dng nh tnh c m thit k Arduino v phn mm cho cng ng ln hn, thc y bi s ng ca trng thit k, ni i Arduino ln u tin c thnh lp, dn n mt phong tro hon ton mi trong thit k. Vic thc hnh ng gp c quyn t do s dng nhng thit k ny mt cch t do (min ph nh trong bi pht biu) v khng c ngha v phi mua bt c iu g (min ph nh trong bia) gip lm cho cc Arduino l ng yu nh mt b su tp ca silic v ng c th c. Khng cp n thng tin phn hi sng to ny m bo rng tt c cc sng to ly cm hng bt ngun t nn tng Arduino c p ng vi mc ch s dng bao gi tng tng nhiu hn cho nhng th nhiu hn mi.Cng ngC l cn quan trng hn so vi nn tng phn cng ring ca mnh nhiu hn, cng ng Arduino l c kh nng duy nht bnh rng ln nht trong my Arduino. Cng ng ny ca cc nh sn xut gp phn vo h sinh thi Arduino bng cch pht trin m v th vin, thit k phn cng mi, hi tho v ging dy cc lp hc, v chia s nhng g h thc hin. Arduino hin ang c ging dy trong cc trng trung hc, cao ng, cc trng i hc khp mi ni v "Arduino Night" l mt nghi thc thng xuyn ti bt k ca mt s khng gian ca hacker trn ton th gii. Ngi n vi nhau xung quanh Arduino, nh th hin trong hnh nh ca mt hi tho hn ti maker Faire trong Hnh 1-4, gp phn vo cng ng ton cu ny lm cho Arduino l mt thnh cng nh vy.Hnh 1-4 . Hn Hi tho, ph Faire, San Mateo, CA, 2011, lch s SparkFun in tcng ng cam kt cho mt d n nh Arduino l iu cn thit cho s thnh cng hay tht bi ca d n. Thi gian ngu nhin cng gip trong Arduino n cnh cng mt lc m s tr li ca Maker v phong tro DIY cng bt u mt ln na. Ny ngy cng tng v ma mi ca cc nh sn xut c ngha l bn khng bao gi phi nhn cng tm sn sng ng phm gip v bt c iu g m ngun m, cho d l thng qua ti ca c nhn hu ch trong interweb hoc khng gian khu ph ca hacker ca bn, gip l khng bao gi xa i.Arduinolandny nghin cu v pht trin da vo cng ng dng nh c mt hiu ng php thut trn bt k d n i ra khi s tri dy ca Arduino, v vng quc phng ngn ny k diu huyn b l mt ci g ti s gi Arduinoland. C l l v thit k phn cng hot ng, c m ra, v l hack, hoc c th l v mong mun x xy dng da trn cng vic ca nhau, nhng bt c iu g, trong Arduinoland, tuyt st hn, kh gn nh khng th ko gim trong mt nh xe ch mi nm trc y, dng nh xy ra hng ngy. Bt c iu g t dt may tng tc in t, t tr my bay bay, mng bia t lnh keg, nhim v chp nh gn khng gian, v ci t kin trc nhp vai u mc ln t h sinh thi Arduino m ny.Ly CNC MakerBot CupCake v d, mt tiu $ 1.000, b da trn , nha n, my in 3D th hin trong hnh 1-5. Cn mt h thng in t gii thch cc m c gi t mt my tnh gn vo a nh v ca u in v nhit ca my n, nhm nghin cu MakerBot xy dng ra khi nn tng phn cng Arduino v mi trng pht trin to ra mt nn tng m xy dng i tng bng nha.Hnh 1-5. My in MakerBot CupCake 3D vi thit b in t Arduino tng thchHoc cho tt c nhng ngn tay mu nu ra khi m khng bao gi c th dng nh ti cy nh ca h khi cn thit nht, mt nhm sinh vin i hc New York pht trin mt o m cy tweeting gi l Botanicalls, th hin trong Hnh 1-6. Da trn thit k tham kho Arduino, kt hp vi mt m-un Ethernet off-the-shelf v mt thm d m n gin tt c cc gi ln trong mt bng mch l xanh, cc thit b Botanicalls s gi mt tweet v nhp nhy mt n LED mi khi m t ca nh my gim xung di mt ngng nht nh, cho php ch nhn ca n bit rng h s nhn c ra can ti nc ca h.Hnh 1-6. Botanicalls Arduino da trn ng h nc nh my tweeting, lch s BotanicallsCc d n ny v nhiu ngi khc u c hng li t s pht trin nhanh v tui th ng tin cy mang n cho bn Arduinoland v cng vic kh khn a vo bi i Arduino v cng ng ni chung to ra mt kin trc m cho php pht trin v sng to lin tc v tng tc.Arduino l C. .. Ch yuNgoi cc kha cnh khc nhau ca h sinh thi a dng Arduino, chng ti c ngn ng lp trnh ca nn tng Arduino, l trng tm ca cun sch ny. Ngn ng ct li c s dng trong mi trng pht trin Arduino l ngn ng lp trnh C my tnh u tin c pht trin ti Vin nghin cu ca Phng th nghim Bell vo u nm 1970 s dng vi cc h iu hnh UNIX. C s dng mt c php ngn ng th tc m cn phi c x l bng mt trnh bin dch lp bn ang con ngi c th c c hng dn my. S ph bin lu di ca C vay Arduino mt s di sn ca n, nhng cc m m chng ti ang vit trong cun sch ny l ch ch yu C.Bi v c nhng kha cnh ca ngn ng C m hnh nh n c vit bi ngi ngoi hnh tinh mc chng kh c, v vi ngn ng i khi b co buc l qu kh hiu v kh khn cho ngi mi bt u chn ln, nhm nghin cu pht trin Arduino th vin Arduino tiu chun cung cp mt tp hp n gin v nhm mc tiu cc chc nng m lm cho lp trnh hi ng qun tr giao din Arduino v d dng nh n c th nhn c. By gi, cc th vin ny l hot ng thc s C + +, t n l mt tp hp con ca ngn ng C ban u, nhng chng ti thc s khng cn phi n .iu quan trng l hu ht cc m m chng ti s vit cho Arduino, bao gm c php, cu trc ca n , nh iu hnh, bo co kim sot, v cc chc nng, vn cn c bn v chc nng tng t nh C. iu g s l duy nht cho cc Arduino, tuy nhin, tt c cc loi chc nng m bn s n bit v tnh yu, trong c pinMode (), digitalWrite () , v s chm tr () c c th cho cc th vin Arduino tiu chun. Cho cc mc ch ca cun sch ny, khun kh c bn ca C kt hp vi th vin Arduino thm t ng l mt phn ca tt c cc bn phc tho m chng ti vit, l nhng g chng ti s cp n nhArduino C. minh ha im ny, Danh sch 1-1 v 1-2 cung cp hai v d ca cng mt m ngun chp mt onboard LED kt ni vi pin k thut s 13.Listing 1-1. Nhp nhy n LED vi avr-libc.hai khc nhau Nhng Danh sch cho thy hai bn phc tho chc nng ging ht nhau, mt c vit vi th vin Arduino v mt c vit m khng c. iu thc s tin li y l, nu bn mun geek ra, mi trng pht trin Arduino l hon ton tng thch v m rng s dng C / C + + m c vit bng cch s dng th vin avr-libc, mt tp hp cc th vin C chun, v trnh bin dch GCC, c hai vn bn tiu chun vi iu khin AVR 8-bit ca Atmel. Nim yt 1-1 c vit vi avr-libc trong khi danh mc 1-2 c vit bng cch s dng th vin Arduino. C hai u tng thch vi mi trng pht trin Arduino v c th c ti ln cng mt cch hi ng qun tr Arduino. V d u tin cng tiu th mt phn nm s lng b nh nh v d th hai, n ti 210 byte nh tri ngc vi 1010 byte.G v d Arduino thiu hiu qu b nh, tuy nhin, n nhiu hn chim n cho trong kh nng s dng v tch hp vi giao din bng Arduino. V d, cp n pin k thut s LED ca chng ti c kt ni vi pin nh s 13 ni chung l d dng hn cho hu ht mi ngi hn so vi a ch 0x20 h thp lc phn trn PORTB. n gin y l mt trong nhng li ch vit m s dng Arduino C. khng phi l ni mt trong l tt hn so vi ngi khc, nhng ch n gin l kh nng m rng v tnh linh hot ny l mt li ch thng b b qua hc tp trn nn tng Arduino v n cho php va chm n ang -kh c hi pht trin thnh kin trc bao gi mnh m hn sau . Chng ti s tp trung vo lp trnh Arduino s dng cc th vin Arduino tiu chun, mc d nu bn mun bit thm, ti liu hng dn y trn bao b th vin avr-libc c th c tm thy ti www.nongnu.org/avr-libc/. Trong khi chng ti ang , n cng ng ni n l n thm ch cn c th chng trnh hi ng qun tr giao din Arduino s dng mi trng pht trin khc thng gn lin vi pht trin my tnh, chng hn nh Eclipse, NetBeans, hoc bt k gi pht trin khc m bn quen thuc vi. .. hoc nu bn c c cm vi con chim le le mug cn thitBy gi chng ta bit ti sao chng ti ang hc vit m v ni chung nhng g nn tng ny cung cp, chng ti s cn mt cht ca phn cng hon thnh cc d n c tho lun trong phn cn li ca cun sch ny. Mc d chng ti s tp trung tho lun ca chng ti ch yu vo lp trnh Arduino, phn cng l nhng g lm cho lp trnh rt nhiu Arduino vui v. Ni tt nht bt u vi to mu mch in t vi Arduino l thng qua mt trong nhng b dng c khi ng nhiu c sn t cc nh bn l khc nhau cho bt c ni no t $ 40 n $ 100 USD hoc khong 30 n 70 EUR. SparkFun in t (www.sparkfun.com) cung cp Kit Starter Kit ca sng ch; Adafruit Industries (www.adafruit.com) Pack ngn sch hoc Starter Pack; LM pha ca tp ch (www.makershed.com) vi hoc l mt Kit Bt u hoc s sng cn gi Mintronics, hoc cc ca hng ca Arduino (http://store.arduino.cc) Hi tho Kit. Hnh 1-7 cho thy nhng g b lp rp ny s nh th no.Hnh 1-7. Bt u b phn cngTrong khi mi b dng c s c nhiu hn hoc t hn nhng g bn cn, Bng 1-1 cung cp mt danh sch mua sm n gin ca mt s cc phn cng c th m chng ti s s dng trong cc trang sau y, bn c th mun mua ring l hoc t nht l kim tra hay khng b bn ang xem xt c cha cc mt hng ny. Gi ch gn ng v c lit k ch cung cp cho bn mt tng v chi phngh;.Hy ghi nh rng y ch l mt danh sch chung ca cc b phn c Cm thy t do mua mt ci g khc nhau, min l n l hi tng t nh nhng g c lit k v t hng t cc nh cung cp ca s la chn ca bn. V d, thay v s dng mt Arduino Uno, tiu chun hi ng qun tr giao din Arduino, c th bn ang quan tm n wearables hoc e-dt may v mun s dng mt LilyPad Arduino thay th. l tt, ch cn chc chn c ln trn s khc bit gia phn cng v ngh ca bn trn trang Phn cng Arduino ti http://arduino.cc/en/Main/Hardware. Tng t nh vy, nhiu ngi trong s cc mc trong danh sch, chng hn nh in tr, l loi ging nh mng nga trong gn thng s c c cng vic thc hin. i vi mt danh sch chi tit hn bao gm tt c cc b phn c s dng trong cun sch ny, hy tham kho danh sch phn cng m rng trong ph lc cui cun sch ny1-1..Bng Danh sch c vit tt Phn cngPhn M t Gi (US / EUR)Arduino Uno Vi iu khin bng giao din $ 30 / 22cp USB AB (thng c s dng cho cc my in) cho Arduino Uno $ 4/2 Solderless breadboard Hoc tiu chun (400 im tie) hoc nh (170 buc im) $ 6/4 kh kt hp dy rn 22 AWG hoc trc chm dt M / M nhy dy $ 7/5 it pht sng n LED 5mm tiu chun v cathode chung RGB LED $ 10 / 7in tr nm mi 220, 330, 1K, 10K ohm 1/4 watt hoc tng t $ 10/7 t Mt cp v chng 1 v 0,1 microfarad t ca cc ging $ 4/3 Analog cm bin trimpot 10K ohm, t bo quang in 10K ohm, cm bin nhit TMP36 $ 4/3 tc nt bm tm thi thu nh v nghing chuyn $ 3/2 Bng bn dn 2N2222 hoc 2N3904 NPN transistor hoc tng t $ 1/1 ny danh sch ti thiu ca phn cng s gip bn c c thng qua khong mt na ca cun sch vi cc thnh phn c th khc cn thit cho cc d n nng cao hn. Khi cn thit, thng tin v cc phn b sung s c cung cp khi bt u chng hoc phn. Trong khi chi tit trong mi chng, cc d n ny s bao gm vic s dng cc cm bin nhit , lc / cm bin flex, cm bin nh sng, gia tc, cm bin gi, mn hnh tinh th lng, ng c bc, servo s thch, v cc loi khc ca phn cng. Mc d, ch khng phi l p t mt hp cng c khng l ca thit b, cc d n v m s s c vit vi s linh hot cng nhiu cng tt cho php vic s dng cc b cm bin hoc c cu truyn ng khc, ty thuc vo nhng g bn c sn v li ch c nhn ca ring bn v tng d n. gi cho mi th n gin, chng ti s cung cp nng lng Arduino Uno t cng USB ca my tnh ca chng ti s dng mt cp USB cho mi mt trong nhng d n trong cun sch ny. Mt khi chng ta ti ln cc chng trnh bng ca chng ti, tuy nhin, chng trnh thng c lu tr trn bng ging nh mt a flash USB. Chng ti c th (nu chng ta mun) in Ban Arduino t mt ngun in bn ngoi, chng hn nh cung cp in DC hay pin, v khng cn cp USB tt c. bit thm thng tin, hy tham kho phn "Kt ni & Powering Arduino" trn sn chi Arduino ti http://arduino.cc/playground/Main/ArduinoCoreHardware.Bt dng v vn hnhbi thi im ny, bn c mt cm gic kh tt cho nhng g Arduino l, lch s ca n, v mt s nhng g bn c th lm g vi n. N thc s th v m vi mt s lnh c vit cn thn, m bn s hc trong cc chng sp ti, bn c th lm cho mi vic sng ln hoc di chuyn, cm nhn th gii xung quanh bn, v ni chung lm cho nhng iu th v hn.V by gi bn c mt s phn cng c bn trong tay, bao gm c mt hi ng qun tr giao din Arduino, l thi gian c c v chy. Chng ta cn phi lm nh sau trc khi chuyn sang chng tip theo:1. Ti v v ci t mi trng pht trin Arduino2. Kt ni cc bng Arduino bng cp USB v ci t trnh iu khin3. Khi ng ng dng Arduino v m v d Blink4. Chn hi ng qun tr ca bn v cng ni tip5. Ti ln bn phc tho u tin ca bnng lo lng. N khng phi l kh khn c c i. Trong thc t, n thng kh i sai, bi v n gn nh khng th ghi nh ca hoc ct t mt cnh tay vi mt Arduino. V ngay c khi bn dy ln mt ci g sai, n c th chp nhn v hi ng qun tr Arduino l mt chng trai nh kh khn v c th mt mt s lm dng. Do , khng lo lng rng bn c th mess ci g ln. Tt nhin, chng ta s thc hin mt s sai lm, nhng hy vng h s dy cho chng ta mt ci g v chng ti s tr thnh lp trnh tt hn v cc nh sn xut v n. V vy, hy v vi n.Ci tphn mmTrcu tin, bn cn phi ti v v ci t phn mm Arduino. V i Arduino lun lun lm cho bn cp nht phn mm, bn nn i n trang download chnh trn trang web Arduino (http://arduino.cc/en/Main/Software), th hin trong hnh 1-8Hnh 1-8. Arduino trang ti v phn mmT y ti v v ci t phin bn mi nht ca phn mm cho h iu hnh c th ca bn. Hng dn ci t y c sn trn trang Bt u ti http://arduino.cc/en/ Hng dn / Trang ch. Linux c th l mt cht kh khn c c ci t nh cc vn bn ny, v vy hy chc chn cn thn lm theo hng dn ng.Kt ni ArduinoVi phn mm ci t, bn s c th kt ni Arduino ca bn vo cng USB trn my tnh ca bn s dng mt AB cp USB. Ch s sc mnh ca Arduino LED s sng ln bng, cho chng ti bit rng n c sc mnh v sn sng i. Vi mt thng hiu mi Arduino Uno, ln u tin n, quyn hn ln, n LED pin 13 nh du L s bt u nhp nhy nhanh chng, cho php chng ta bit rng hi ng qun tr c kim tra y . Trn my tnh da trn Windows hoc bng Arduino c, n l cn thit ci t mt trnh iu khin cho USB trn my bay ca Arduino ni tip chuyn i, nh th hin trong hnh 1-9. Cho mi nht v cch ci t cc trnh iu khin, hy lm theo cc hng dn trn phn iu khin ca Hng dn Bt u ti http://arduino.cc/en/Guide/Windows # toc4.Hnh 1-9. Ci t trnh iu khin trn Windows 7M Phc thoBy gi bn c th khi ng mi trng pht trin Arduino. iu ny s mang n mt ca s trng rng nu y l ln u tin bn ra ngoi. M mt bn phc tho v d bng cch vo menu File V d 1.Basics v chn phc tho tn l Blink, nh th hin trong hnh 1-10. By gi bn s thy mt v d rt n gin phc tho cho nhp nhy trn my bay LED mt ln th hai.Hnh 1-10. M v d phc thoLa chn Hi ng v Serial PortTrc khi chng ti c th ti ln bn phc tho mu ca chng ti, chng ta cn phi chn kiu hi ng qun tr chnh xc v cng ni tip rng cc hi ng c gn vo trn my tnh ca chng ti. Thit lp cc hi ng qun tr chnh xc c th c thc hin trong cc cng c Ban n bng cch chn Arduino Uno hoc mt trong nhng tn bng tng ng khc, nh th hin trong hnh 1-11.Hnh 1-11. Chn loi bngTip theo, chng ta cn phi la chn cng ni tip ng theo Cng c n Serial Port, nh th hin trong hnh 1-12. Cng ny nn c t tn COM3, hoc mt ci g tng t, trn mt my tnh Windows, hoc mt ci g nh / dev / tty.usbmodem hoc / dev.tty.usbserial trn Mac1-12..Hnh La chn cng ni tipTi ln mt phc thokhi bn chn hi ng qun tr ph hp v cng ni tip, l thi gian cho cc phn th v. ti ln mt bn phc tho ln bng Arduino, ch cn nhn vo nt Upload trn thanh cng c, nh th hin trong hnh 1-13. Cc n LED trn tu nh du RX v TX s nhp nhy gin d v bn s nhn c mt tin nhn trong thanh trng thi m ni, "ti ln Done." l tt c c n!Hnh 1-13. Ti ln mt phc tho cho BanArduinoTm ttVi tt c cc ci t, kt ni, v ti ln thc hin v ra khi con ng, by gi bn cn phi c mt nhp nhy n LED trn Arduino Uno ca bn. khng phi l ni rng bn hon ton hiu n nh th no tt c cc cng trnh-v s loi nh bi ton b mc ch ca cun sch ny. Nhng by gi chng ta c mt ci g nhp nhy v bit rng chng ti c th lm cho n hot ng, chng ti cng c th nhy vo hc nhng iu c bn ca lp trnh Arduino vi d n u tin ca chng ti. Bng cch nhy ngay vo cch m hot ng, chng ta c th di chuyn t hacking cng dng m m ngi khc cho chng ti thc s vit chng mnh.CHNG 2Phc tho trong lutTrong chng cui cng, chng ti qun l c c bn phc tho u tin ca chng ti v chy vi phc tho Blink ni ting, nu khng c gi l "Xin cho th gii" v d. y thng l mt ni tt bt u v n c mt truyn thng lu i nh chng trnh u tin vit khi hc mt ngn ng mi. Trong trng hp ca phn cng lp trnh, chng ta thng s dng n LED nhp nhy cho. Trong khi l mt khi u tt, chng ti mun nhanh chng c c mt s trong nhng kha cnh th v ca Arduino C, bt u vi trng tm ca chng ny: c kh c bn v cu trc iu khin ca phc tho ang Arduino. D n u tin ca chng ti, RGB Blink, s khm ph nhng cu trc c bn, c php, v cc chc nng cn thit cho vic kim sot u ra ca mt n LED ba mu, chp nhp nhy LED ca chng ti cp tip theo.Chng ti s bt u vi mt lp sn lt trn cc phng tin g v phc tho lm sao chng ta c th t trit l ca phc tho trong m s dng. Nh chng ta s lm trong sut cun sch ny, sau chng ti s nhy ngay vo v d d n ca chng ti v mt khi bn c d n ny c dy ln v phc ha c ti ln bng Arduino, chng ti s sao lu v tip tc gii thch cch hot ng ca bn phc tho v tho lun nht cc yu t c s dng trong d n. Bng cch ny, khi chng ta nhn vo mi trong nhng khi nim c nhn trong chng ny, bn s bit lm th no h a vo s dng. Trong chng ny, chng ta s c mt ci nhn ti cc gii phu c bn ca bn phc tho d n ca chng ti v tho lun nh th no v l do ti sao Arduino C lm nhng g n lm. ng lo lng nu n khng lm cho mt s tin to ln ca thc trong u, ch lm vic thng qua n v n s nhn c r rng hn nh bn i cngny:.g cn thit cho chng Arduino Uno 5mm RGB LED vi cc m chung 1x 330 ohm v 2x 220 in tr ohm 1/4 watt hoctng t dy kh kt hp breadboard Solderlessl g Sketching trong M? tng phc tho trong m l mt cch suy ngh v cch vit m nh l mt qu trnh trc quan n gin, ging nh v trong mt quyn phc tho. Bng cch ny, mt chng trnh Arduino c gi l mt bn phc tho v c lu trong mt th mc gi l mt quyn phc tho. Phc tho c ngha l chng ta c th c c bn tay ca chng ti bn v nhanh chng th mt tng mi. N l mt k nng c sn cho tt c chng ta, khng ch cc ngh s v nh thit k, v cng khng phi l gii hn bt, giy, bt ch, hoc khn n.V vy, thng xuyn, mt tng trong mt lp hc ca ti bt u vi nhng t n gin, "N s khng c mt m nu ...?" nhanh chng phc tho ra nhng tng phc v nh l mt cch khi nim thi im ny ca cm hng. Vit m c th c nh th ny, l sau khi tt c mt qu trnh sng to c s dng gii quyt vn c th. Phc tho ng mt cm gic thng thn trong vic p dng cc nguyn vt liu, ging nh mt bt ch mt mnh giy. Mi trng pht trin Arduino cch tip cn ny tng t lm cho m n gin v trc tip cng tt. y cng l l do ti sao chng ti s bt u vi bn phc tho n gin m nhanh chng gip bn c c mt ci g lm cho ngay lp tc ch khng phi l b chm tc trong trang sau khi trang ca l thuyt phc tp hoc cc thut ton.Khi phc tho trong m, n khng quan trng vit m xu. Bn s khng lm tn thng bt c iu g. Min l bn nhn c trong v bt u mt ni no , nh lm bt c iu g lun lun l tt hn so vi khng lm g c. Nhng sai lm v hc hi nhng g lm vic v nhng g khng, l mt phn quan trng ca vic hc bt c iu g mi. Trong quyn phc tho ca chng ti, chng ti s bt u vi m ngun n gin, cc hng dn c bn cho cc Arduino nhng g cn lm, cng vi phn cng c bn, bt u nh v lm vic theo cch ca chng ti thng qua cc v d tham gia nhiu hn.Bn nn t do th nghim vi tt c cc v d, thay i gi tr, v bc th vi nhau theo nhng cch bt ng xem nhng g s xy ra. ng nn ch nu n khng hot ng ln u tin, gn b vi n v n s c r rng hn theo thi gian. Th nghim v lp i lp li l b phn quan trng ca vn bn thnh cng m. V vy, thay i m hin ti hoc vit mt s m mi thit lp mt khun kh c bn v sau xc minh rng nhng thay i ca bn bin dch mt cch chnh xc. Lm vic trong cc bc gia tng mt Ngoi ra ti mt thi im nh bn thm vo khun kh c bn cho m ca bn khi bn cui cng c mt ci g ng k, bn c th ti n vo hi ng qun tr giao din xem nhng g s xy ra. Nu mt ci g khng hon ton lm vic nh mong i, tt c cc bn cn lm l li li rng bc gia tng cui cng. Bng cch ny l mt tng tt khi bn thc hin thay i, ch thay i mt iu ti mt thi im trc khi xc nhn rng n vn hot ng trc khi chuyn sang s thay i tip theo1:.D n RGB Blink thc s bt u, chng ta s s dng mt thnh phn nh tin li c gi l mt nh sng mu -xanh-mu xanh i t pht quang, hoc n gin hn mt n LED RGB. RGB LED hot ng ra mt nguyn tc tng t nh TV v mn hnh my tnh. Bng cch s dng ba mu sc tng t ca nh sng m chng ta c th tip nhn trong tm nhn c bit mu , xanh l cy, v mu xanh-chng ta c th ti sn xut mt lot cc mu sc thng qua mt qu trnh mu trn ph gia ca chng ti. Hnh thc pha trn mu sc nn m thanh quen thuc t khoa hc trng trung hc, v c th hin trong bnh xe mu RGB trong Hnh 2-1. Trong khi l mt cht kh khn hn thc hin trong mt cun sch mu en v mu trng nh th ny, nu bn s dng tr tng tng ca bn, bn s thy rng bng cch kt hp hai mu c bn chng ti kt thc vi mt mu th cp. V d, thm mu sang mu xanh v chng ti c c mu ti hoc nu chng ta thm mu v mu xanh l cy, chng ti s nhn c vng. Nu chng ta thm tt c ba mu c bn cng nhau chng ta s kt thc vi nh sng trng.V vy, thng xuyn, mt tng trong mt lp hc ca ti bt u vi nhng t n gin, "N s khng c mt m nu ...?" nhanh chng phc tho ra nhng tng phc v nh l mt cch khi nim thi im ny ca cm hng. Vit m c th c nh th ny, l sau khi tt c mt qu trnh sng to c s dng gii quyt vn c th. Phc tho ng mt cm gic thng thn trong vic p dng cc nguyn vt liu, ging nh mt bt ch mt mnh giy. Mi trng pht trin Arduino cch tip cn ny tng t lm cho m n gin v trc tip cng tt. y cng l l do ti sao chng ti s bt u vi bn phc tho n gin m nhanh chng gip bn c c mt ci g lm cho ngay lp tc ch khng phi l b chm tc trong trang sau khi trang ca l thuyt phc tp hoc cc thut ton.Khi phc tho trong m, n khng quan trng vit m xu. Bn s khng lm tn thng bt c iu g. Min l bn nhn c trong v bt u mt ni no , nh lm bt c iu g lun lun l tt hn so vi khng lm g c. Nhng sai lm v hc hi nhng g lm vic v nhng g khng, l mt phn quan trng ca vic hc bt c iu g mi. Trong quyn phc tho ca chng ti, chng ti s bt u vi m ngun n gin, cc hng dn c bn cho cc Arduino nhng g cn lm, cng vi phn cng c bn, bt u nh v lm vic theo cch ca chng ti thng qua cc v d tham gia nhiu hn.Bn nn t do th nghim vi tt c cc v d, thay i gi tr, v bc th vi nhau theo nhng cch bt ng xem nhng g s xy ra. ng nn ch nu n khng hot ng ln u tin, gn b vi n v n s c r rng hn theo thi gian. Th nghim v lp i lp li l b phn quan trng ca vn bn thnh cng m. V vy, thay i m hin ti hoc vit mt s m mi thit lp mt khun kh c bn v sau xc minh rng nhng thay i ca bn bin dch mt cch chnh xc. Lm vic trong cc bc gia tng mt Ngoi ra ti mt thi im nh bn thm vo khun kh c bn cho m ca bn khi bn cui cng c mt ci g ng k, bn c th ti n vo hi ng qun tr giao din xem nhng g s xy ra. Nu mt ci g khng hon ton lm vic nh mong i, tt c cc bn cn lm l li li rng bc gia tng cui cng. Bng cch ny l mt tng tt khi bn thc hin thay i, ch thay i mt iu ti mt thi im trc khi xc nhn rng n vn hot ng trc khi chuyn sang s thay i tip theo1:.D n RGB Blink thc s bt u, chng ta s s dng mt thnh phn nh tin li c gi l mt nh sng mu -xanh-mu xanh i t pht quang, hoc n gin hn mt n LED RGB. RGB LED hot ng ra mt nguyn tc tng t nh TV v mn hnh my tnh. Bng cch s dng ba mu sc tng t ca nh sng m chng ta c th tip nhn trong tm nhn c bit mu , xanh l cy, v mu xanh-chng ta c th ti sn xut mt lot cc mu sc thng qua mt qu trnh mu trn ph gia ca chng ti. Hnh thc pha trn mu sc nn m thanh quen thuc t khoa hc trng trung hc, v c th hin trong bnh xe mu RGB trong Hnh 2-1. Trong khi l mt cht kh khn hn thc hin trong mt cun sch mu en v mu trng nh th ny, nu bn s dng tr tng tng ca bn, bn s thy rng bng cch kt hp hai mu c bn chng ti kt thc vi mt mu th cp. V d, thm mu sang mu xanh v chng ti c c mu ti hoc nu chng ta thm mu v mu xanh l cy, chng ti s nhn c vng. Nu chng ta thm tt c ba mu c bn cng nhau chng ta s kt thc vi nh sng trng.ti ln M Ngun c c lm vic mch ny, v cung cp cho chng ti mt ci g tho lun, chng ta s bt u vi mt phc tho n gin thay i mu RGB ca chng ti LED t mu sang mu xanh l cy sang mu xanh, lin tc mi giy. Nu bn nhn li v d Blink t chng cui cng, cc m trong Lit k 2-1 nn nhn kh ging nhau. V c bn, chng ta ang chuyn t vic s dng mt n LED s dng ba, bin mi ngi v tt theo mt th t c th. Mt khi chng ta bt u hiu v d ny, chng ti s xem li n mt ln na vi mt s m phc tp hn2.M ngun Tm ttphc tho d n u tin ca chng ti c v d Blink m chng ti ti ln trong chng u tin v c xy dng trn n bng cch thm hai mu sc b sung bng LED RGB ca chng ti, kt ni vi chn 9, 10, v 11 ch khng phi c xy dng trong LED trn pin 13 , chp mt mi mt trong ba mu sc ln lt. Nh ti s gii thch trong chng ny, c hai nhm m trong bn phc tho ny c gi l chc nng c nhm li bng cch kt hp du ngoc nhn, {}, mi tn l setup () v vng lp ()-b qua cc khong trng t kha trong thi gian ti. Chng ti s dng thit lp () thit lp trng thi ca u vo v u ra chn, cng nh cc hnh ng khc m chng ti ch cn chy mt ln. Ngc li, vng lp () s thc hin bt c hnh ng l bn trong ca n hn v hn na l vnh vin, gi s lc lng v hn nh mt iu kin tin quyt. Mi dng m c thc hin bn trong mt hm, theo th t, t trn xung di. Bn trong vng lp () chc nng, khi dng cui cng ca m t c chc nng s lp li, bt u li vi nhng dng u tin ca vng lp () chc nng.Bn trong ca mi ca cc chc nng bo co c th bao gm cc cuc gi n cc chc nng khc, chng hn nh pinMode (), digitalWrite (), v s chm tr (). Chc nng pinMode () c s dng thit lp mt pin c th cho mt trong hai vo hay u ra. digitalWrite () c s dng thit lp trng thi ca mt pin ra cao hay thp, hiu qu s dng y bt hoc tt mt n LED. Chc nng cui cng, s chm tr (), lm nh n c t tn v s chm tr chng trnh cho mt s quy nh ca mili giy. Chng ti s dnh phn cn li ca thi i chng ta cng nhau nhn vo nhng iu ny v cc chc nng khc v bo co rng chng ti s s dng khi vit m cho nn tng Arduino, nhng trc tin hy bt u vi cu trc c bn ca Arduino C.Cu trc ca Arduino Cd n u tin ca chng ti s cung cp mt bi cnh th v hiu iu g ang xy ra vi cu trc c bn ca lp trnh mt bn phc tho Arduino. Phn ny s c gng gii thch mt s ln hnim nh th no phc tho c t chc v thng lm vic v s p dng cho tt c cc bn phc tho m chng ta c th vit, khng ch l v d trc ca chng ti. Chng ti s nhn c thm v cc chi tit c th ca cc chc nng v bo co, bao gm c c php ca h v cc thng s, mt cht sau . bt u, Arduino C sau mt tp hp cc quy tc chi phi c php v cu trc v ni vi hi ng qun tr giao din lm g. Mt s cc quy tc c tha hng t C v nhng ngi khc c a vo v tr ca nhm pht trin Arduino n gin ha vic s dng cho ngi mi bt u. C l mt ngn ng lp trnh cu trc t trn xung, c ngha l dng m c thc hin theo th t t u chng trnh cho n khi n t n kt thc pha di. Chng ti s p dng phng php t trn xung trong phn tch ca chng ta v bn phc tho cho d n 1 tho lun v nhng im chnh ca c php lp trnh Arduino v c cu, bt u vi dng u tin ca chng ti m.S dng kinNhn vo v d u tin ca chng ti, ba dng u tin cha mt khi m t nh ca vn bn m chng ta gi l kin. kin c cc khu vc ca vn bn c b qua bi trnh bin dch, nhng cung cp ghi ch hu ch v ti liu cung cp cho chng ti mt t thng tin thm v bn phc tho lm cho m d dng hn hiu cho con ngi chng ta. S dng chng cung cp thng tin v cc d n m cc phc tho c vit cho, v nhng g cc bin nht nh lm, nhng thng tin mt chc nng cn phi lm vic ng cch, hoc nhng g s xy ra nu mt s phn ca m c thay i. Do cc ch thch mt khng gian b nh trn bng Arduino, h nn c s dng rng ri trong sut ha ca bn v l mt trong nhng thi quen tt c m cn c thng qua sm. Nhng ngi khc, bao gm c t trong tng lai ca bn, s c hnh phc v cm n bn. Di y l v d:/ * D n 1: RGB BlinkyS dng mt RGB LED duy nht chu k thng qua ba mu sc. * /y l mt v d v khi kin. Bt c iu g gia cc k t / * v * / l hon ton b qua v khng nh hng n kt qu ca chng trnh. kin khi c th c tri di trn nhiu dng, to ra cc khi thng tin, nhng cn phi c cn bng vi / * lc u cho trnh bin dch b qua cc vn bn sau y cho n khi t n trnh bin dch cc nhn vt ng ca, * /. Mi trng pht trin Arduino thun tin thay i kin vi mt mu xm khi h c ng k ng. iu ny cho php bn bit rng bn nhp bnh ng cch hoc bn vn cn phi ng khi kin (v ton b k ha ca bn t nhin tr thnh mu xm).Ngoi ra ngn chn kin, mt hnh thc tng t th hai ca cc kin, bnh lun gi l ng, c s dng trong sut V d phc tho. kin dng bt k dng vn bn bt u bng cc k t / / v t ng kt thc vi dng tip theo ca m. Khng ging nh cc khi bnh lun, kin dng khng cn nhn vt ng v thng c s dng phn cui ca mt tuyn b cung cp thm mt t thng tin v nhng g dng no. y l trng hp trong dng nhn xt u tin ca chng ti trong v d trc, nh sau:/ / t chn k thut s nh kt qu u raC hai loi kin cng kh hu ch cho vic v hiu ha cc phn ca mt bn phc tho th nghim v g li. Ch "ra nhn xt" mt dng vi phm xem nhng g s xy ra trong m ca bn. N cng hu ch thc hin mt s thay i trong mt phn ca m nhng li cc m c ti ni s dng bnh lun ch trong trng hp bn mun quay tr li n sau ny. Ly v d dng sau:digitalWrite (10, CAO);tuyn b ny c th b v hiu ha hoc b b qua m khng xa dng, bng cch thm kin dng pha trc ca bo co nh sau:/ / digitalWrite (10, CAO);Ngoi ra, mc d khng nht thit phi r rng hn, gi tr c th thay i bng cch s dng phng php sau y:digitalWrite (13 / * 10 * /, CAO);Trong v d ny, gi tr 10 c thc hin vo mt bnh lun s dng khi kin trong gia dng, v, do , b qua cc trnh bin dch, nhng l n pha sau trong trng hp bn qun gi tr c. Mt khi gi tr s nguyn 10 c n t cc trnh bin dch, cc s nguyn 13 s tr thnh gi tr mi cho tuyn b ny. Hy nh rng bt c khi no mt phn ca m l nhn xt ra, n s ch c hiu lc trong thi gian ti phc ha c ti ln hi ng qun tr Arduino.ng dy bnh lun lm vic cho v hiu ha dng code, nhng n s bt u c kh t nht ni dng bnh lun u mi dng trong mt khi lng ln cc m cn thit c tm thi b qua. Thay vo , khi ni kin xung quanh ton b phn c b qua, vi / * u v * / cui khi m lm cho trnh bin dch b qua n. Lu ny s khng hot ng nu mt ni no trong khi ca bn m bn c mt tp hp cc khi kin, v n khng th khi t kin bn trong ca nhau. Trong trng hp ny, bn c th phi thay i kin bn trong khi xp hng nhn xt hoc thc hin mt s sa i khc.Bnh lun l rt hu ch cho cc lp trnh vin v ngi c m ca bn, nhng i khi h c th nhn c trong cch, c bit l nu bn ang c gng vit mt cun sch. V l do ny, sau khi d n ban u ca chng ti y, chng ti s khng bnh lun m ca chng ti trn c s dng-by-line. Vng, c th m thanh mt cht nh, "lm nh ti ni, khng phi l ti lm," nhng ti hy vng rng n s lm cho cc cuc tho lun v khi nim c th m r rng hn m khng di dng thm. Nu cn thit gii nn mt ng kh khn, chng ta c th thm chng vo trong cho thm r rng.Chc nng c bnca ngn ng lp trnh C c chia thnh cc khi m c gi l chc nng hnh thnh cc khi xy dng chnh ca bt k chng trnh. Trong d n ny, chng ti c hai chc nng, thit lp () v vng lp (), tng c bo co rng lm hnh ng c th thc hin theo th t t trn xung di. L mt yu cu ca th vin Arduino, mi phc tho phi t nht cha c mt thit lp () v vng lp () chc nng hot ng, ngay c khi h c sn phm no. Sau y l mt k thut phc tho Arduino y v lm vic, mc d n khng lm c g nhiu:void setup () {}void vng lp () {}Trong khi chng ta c th v s to ra cc chc nng ca chng ta sau ny trong cun sch x l cc nhim v nht nh hoc cng c khi m, nu chng ta c nh s dng mt trong hai chc nng ny, chng ti s cn phi s dng c hai. K t khi chc nng trng l kh nhm chn, hy nhn vo cc thit lp () chc nng sau y t v d d n u tin ca chng tiBt u t u, chng ti ch nh kiu d liu ca chc nng, trong trng hp ny c hiu lc, m khng phi l vn quan trng trong thi im ny, tip theo l tn ca chc nng, thit lp, mt m v ng ngoc n, (), v mt khi m bao quanh hai bn vi m v ng du ngoc nhn, {}. Ba dng m bn trong du ngoc nhn l v d v bo co s dng thit lp trng thi ca cc chn k thut s trn bng giao din Arduino. C th, chng ti ang ni vi Arduino m ghim 9, 10, v 11 nn c s dng nh kt qu u ra v chng ti c nh s dng chng mt cht sau ny trong cc k ha.Trong hai chc nng ny, cc thit lp () c gi ch mt ln vo u phc tho ca chng ti v c s dng thit lp cc kha cnh khc nhau ca hi ng qun tr Arduino chy m ca chng ti. Mt cuc gi chc nng l mt cch khc ni rng chc nng, v tt c cc chc nng cha bn trong n, c thc hin theo th t c lit k. V d ca vic s dng cc thit lp () chc nng cng c th bao gm vic thit lp truyn thng ni tip, lm cho bi c cm bin ban u, hoc chy cc nhim v nht nh m ch cn mt thi gian. Chc nng ny s lun lun chy mt ln, ngay lp tc sau khi bt ngun ln hoc t li hi ng qun tr Arduino. Lu Bt c lc no chng ti tho lun mt chc nng trong cun sch ny, chng ti s s dng mt cp ngoc sau tn ca mnh gip phn bit chc nng t nhng th nh cc bin. V d, assignValue cp n mt bin (thm v cc trong mt thi im), ni assignValue () cp n mt cuc gi chc nng.Chc nng th hai, vng lp (), lm cho n c th cho bn phc tho ca bn chy lin tc, v bt u sau khi ngi cui cng tuyn b trong cc thit lp () chc nng hon tt thc hin. Sau khi hon thnh bo co Arduino ca n t kt thc cu lnh trong vng lp () chc nng, n s, thch hp , vng tr li u vng lp () v bt u mt ln na, v cng tn. Rt c th l y l ni m phn ln cc bn phc tho Arduino ca bn s c tr. Sau trong cun sch ny, chng ti s iu tra cch thao tc cc dng chy ca cc chng trnh v thm ch chng minh mt s phng php ny thng tin qua li gia cc chc nng ca sng to ca ring bn. Lu Khi Arduino chy mt bn phc tho, n bt u u v cc cng trnh ng hng v pha di. Ny c gi l dng chy chng trnh v cp n th t m cc bo co c thc hin. Ging nh cch cc vng lp () chc nng lin tc lp i lp li khi n t n cui bo co ca mnh, c nhng cch khc thay i dng chy chng trnh, s c tho lun sau.Bo co v C phpNh cp trc , np mnh bn trong du ngoc nhn chc nng c dng m c gi l bo co. Rt n gin, l nhng b phn ca bn phc tho m thc s lm iu g , chng hn nh cc cuc gi n cc chc nng khc, bao gm nhng chc nng m l mt phn ca th vin Arduino tiu chun, k khai,gn gi tr cho cc bin, hoc thc hin php tnh s hc hoc so snh. Trong d n u tin ca chng ti, bt c iu g gia du ngoc nhn {} l mt tuyn b, ly sau, v d:digitalWrite (9, CAO);dng m ny l mt tuyn b rng cc cuc gi mt trong xy dng trong cc chc nng ca th vin Arduino tn digitalWrite (), c s dng bt hoc tt mt trong cc chn k thut s Arduino cu hnh t trc nh mt u ra. Chng ti vt qua chc nng ny hai mu thng tin m n cn phi lm cng vic ca mnh: s lng pin v nh nc m chng ti mun pin c in Nhng thng s b sung, c th cho tng chc nng, c gi l lp lun v c tm thy bn trong tri v phi ngoc, vi nhiu i s cch nhau bng du phy. . Trong v d ny, chng ta ang ni mi trng Arduino bt pin k thut s 9 ca hi ng qun tr giao din Arduino, nh c gii thch sauC hai loi bo co c s dng trong lp trnh C: bo co n gin, bao gm cc v d gn y nht, cng nh hp cht bo co. Bo co n gin bao gm cc cuc gi chc nng, chng hn nh cuc gi ca chng ti trc digitalWrite (), bo co chuyn nhng, v php tnh s hc v lun lun kt thc bng mt du chm phy. Du chm phy (;) c s dng tch mt cu lnh n gin t khc mi trng pht trin c th phn bit chng. Qun kt thc mt tuyn b n gin bng du chm phy s dn n mt trong nhng li ph bin nht trong mi trng pht trin Arduino. Sau y l mt vi v d v bo co n gin:.Cu lnh ghp c to thnh t mt vi dng m bao gm bo co khc. Chc nng, chng hn nh thit lp () v vng lp (), trong bo co hp cht c hiu lc. Nu tuyn b, trnh by chi tit hn phn sau trong cun sch ny, l mt hnh thc ca mt cu lnh ghp. Mt v d ph bin ca cu lnh if s nh sau:tuyn b ny s kim tra tnh trng ca PIN2 bin v s thc hin cc bo co km theo sau y, bin pin 13 ngy, nu bin p ng iu kin quy nh, trong trng hp ny nu trng thi ca pin 2 bng cao. Trong v d ny, chng ta thy rng bo co hp cht s dng du ngoc nhn, {}, km theo mt hoc nhiu cu lnh bn trong n, to ra mt khi lin tc ca cc m. Du ngoc nhn phi c s dng trong cc cp kt hp v c th bao gm nhiu bo co khc, c hai n gin v hp cht, khi cn thit.Trong khi v d ca chng ti hot ng tt, du ngoc nhn ch thc s cn thit cho cu trc ca bo co hp cht a ng. Nu, nh trong v d gn y nht, bo co c iu kin ch bao gm mt tuyn b n gin khc, bo co phc tp c th c vit li nh mt tuyn b n gin bng cch loi b cc du ngoc nhn, nh trong c php sau.V d ny c chc nng ging nh mt trc khi n, mc d n tit kim cho chng ti mt s bt ng sn trn mn hnh ca chng ti v debatably lm cho m d c hn. Ni cch khc, du ngoc nhn c ch cho bao nhiu cu lnh trong mt khi lin tc ca cc m, to ra mt tuyn b hp cht trong khi bo co n gin s dng du chm phy cui mi dng. Hy nh rng bo co n gin bn trong cc bo co hp cht vn cn phi kt thc bng du chm phy.Trong nhng v d, bn cng thy vic p dng cc du ngoc n, (), gi km theo lp lun trong mt chc nng hoc, nh chng ta sau ny s thy su hn, cho cch ly s hc v cc hot ng so snh. Ngoc n c s dng theo cp, do , khng qun ng chng. Vng lp () chc nng khng c g bn trong du ngoc n ca mnh v khng c d liu c truyn ti hoc t chc nng (thm v iu ny sau). Mt khc, cc v d v digitalWrite (9, CAO) i hai gi tr n v i t digitalWrite () chc nng, trong trng hp ny s lng pin vt l trn bng giao din v phn cng iu kin ca n. Chng ti cng s dng du ngoc trong vic tch mt hot ng so snh trong trng hp nu (PIN2 == CAO), ni chng ti ang th nghim cc iu kin ca PIN2 so vi cao lin tc. Trong s hc, ngoc cng c s dng thay i th t ca cc hot ng nh trong (2 +2) * 10, mc d chng ti s nhn c so snh v php tnh s hc chi tit hn trong giy lt.Xc minh v ti lnLy khi nim ny phc tho tri tim bng cch tung cng mt s dng m m chng ti vn cha hon ton ln n tc trn, chng ti c mt bn phc tho nhp vo mi trng pht trin Arduino v chng ti ngh rng chng ti c tt c cc c php v bo co chnh xc, nhng by gi nhng g? Trong chng cui cng, chng ti blindy ti ln bn phc tho u tin ca chng ti y t tin, nhng lm th no chng ta bit nu m chng ti bc vo s lm vic hay khng trc khi ti ln n vo hi ng qun tr Arduino? tr li nhng cu hi ny, chng ta hy xem li ti ln phc tho ca chng ti hi ng qun tr Arduino, tm kim mt cht k hn thm tra v ti ln qu trnh, bao gm cch tit kim phc tho ca bn v mt s li ph bin chng ta c th chy vo.Xc minhNh cp trc , n l lun lun l mt tng tt nh k kim tra mt bn phc tho m bn ang lm vic, ch chc chn rng bn ang i ng hng, v mc d iu ny xy ra t ng trc khi ti ln mt phc tho cho Ban Arduino, l mt tng tt xc minh trc khi ti ln. xc minh m ca chng ti l kim tra xem m ca chng ti l chnh xc v tun th tt c cc quy tc c php quyn phc tho ca chng ti cn phi lm theo. Chng ti xc minh phc tho ca chng ti bng cch nhn nt Kim tra trong pha trn bn tri ca thanh cng c trong mi trng pht trin Arduino, nh th hin trong hnh 2-42-4.Hnh Kim tra / bin sonXc minh s chy phc ha qua mt qu trnh c gi l bin dch, ni c mi trng pht trin m Arduino C m chng ti vit v dch n sang mt nh dng nh phn vi iu khin thc t s hiu. Nu mi vic sun s, mt lu s xut hin di cng ca ca s ni rng, "Done bin son", v bn s c thng bo kch thc phc tho nh phn trong byte. Nu c mt li trong qu trnh xc minh, b qua v kim tra cc phn li ph bin xem nu bn c th tm ra nhng g i sai. Mt khi chng ta hon thnh bn phc tho bng vn bn ca chng ti, xc nhn n c li, v tt c mi th thnh cng, chng ti sn sng ti ln cc bn phc tho cho Ban Arduino, nhng trc khi chng ti lm iu , hy lu cng vic kh khn ca chng tivic.tit kimkhi bn c mt lm phc tho sn sng c ti ln bng Arduino ca bn, hoc thm ch nu n vn cn d dang, c l bn nn lu file ca bn thng xuyn. lu mt bn phc tho, tt c chng ta cn phi lm l nhn nt Save trn thanh cng c, nh th hin trong hnh 2-5.Hnh 2-5. Tit kimMi trng pht trin Arduino lu cc tp tin trong th mc mc nh phc tn Arduino, thng c tm thy trong th mc ti liu ca bn. Tn phc tho phi cha cc k t tiu chun v s, tuy nhin, h c th khng bt u vi mt s lng v khng c th bao gm mt nhn vt khng gian. Thay v khng gian, chng ta thng s dng gch di (_) tch cc t trong mt tn tp tin. Mi trng pht trin cng lu tr cc tp tin trong mt th mc cng tn m n s t ng to ra th mc nu khng phi l c. Sau khi lu, chng ta c th truy cp vo phc tho ca chng ti t menu Sketchbook tin .Ti lnkhi bn phc tho ca chng ti c bin dch thnh cng v c lu tr mt cch an ton trong quyn phc tho ca chng ti, chng ti sn sng ti ln bn phc tho ca chng ti hi ng qun tr Arduino bng cch nhn vo nt Upload trn thanh cng c , th hin trong hnh 2-6Hnh 2-6. Ti lnNhn vo nt Upload s gi mt tn hiu cho vi iu khin Arduino m ni vi n rng n cn phi dng li nhng g n lm v ch n m n. Ti thi im ny cc n LED c nh du RX / TX trn bng giao din s nhp nhy nh in, ch ra rng m ang c chuyn giao cho hi ng qun tr bng cch s dng giao tip ni tip qua truyn (TX) v nhn (RX) ca d liu bng cch s dng c xy dng trong USB ni tip chuyn i. Khi tt c c ni v lm, thanh thng bo s cho bn bit khi ti ln hon tt v k ha ca bn s bt u chy trong giy lt.Li thng gpBn va m vo phc tho mi ca bn ho hc thy rng nhy LED. Bn nhn nt Kim tra, v sau mt giy di hoc hai, mt li bt ln. By gi nhng g?Nu mi th khng i theo k hoch v mt li bin dch, thanh thng bo s chuyn sang mu cam v i khi cung cp cho bn mt hnh thc kh hiu ca tin nhn, nh trong hnh 2-7, v c bn s cho bn quay tr li v sa cha mt ci g Hnh 2-7. Li trnh bin dchny c th l mt cht tht vng lc u, nhng treo , ti chc chn bn s tm ra n. C hai loi chung ca li m chng ta nn quan tm n: phn cng v c php. . Sp ti l cc bc khc phc s c cc m li khc nhau gip bn c c i mt ln nali phn cng chung xy ra bi v mt ci g khng ph hp vi phn cng ca bn c mt kt ni hoc khng c thc hin mt cch chnh xc, nh trong cc li v d sau:cng ni tip khng tm thy .Vn ti ln ln my bay.u tin, kim tra xem my ca bn c kt ni vi my tnh ca bn v ch ra nng lng tt vi mt n LED thp sng nh du ON. Vi xc nhn ny, tip theo kim tra xem cc cng ni tip chnh xc v cc loi hi ng qun tr thch hp c c hai c chn trong menu Tools. Nu cp USB khng c kt ni hoc cng ni tip sai c la chn, mi trng pht trin s cung cp kt ni s dng mt cng ni tip khc nhau. i khi mt li phn cng nghim trng hn s to ra cc li tng t v bn s cn phi ni chuyn vi i l bn l ca bn i nhng vn ny ra.Cc loi li phn cng c th hin th nh l mt ci g khng lm vic theo cch bn ngh rng n phi do mt kt ni xu. Trong d n v d ca chng ti, bn mong ch n LED u tin nhp nhy mu , sau mu xanh l cy, v sau mu xanh, nhng bn khng sng ln mu cho mt s l do. y l loi li xut pht t khng dy cc thnh phn mt cch chnh xc v o chiu ca mt s b phn nh n LED, hoc c dy vo cc chn sai. iu ny c th d dng c nh bng cch cn thn s tr li trong mch phn cng, nh th hin trong s v minh ha, tm ra ni mt ci g i sai. N thm ch cn l mt tng tt c mt i mt nhn qua n ch trong trng hp h nhn thy mt ci g m bn b qua.Loi th hai li ph bin l cc li c php m bn b l mt du chm phy, du ngoc n, ngoc mc, hoc nhn vt khc hoc hnh thc c php cn thit cho vic phc tho hot ng ng, nh th hin trong hnh 2-7 v cc v d sau:..Mi trng pht trin Arduino ni chung s cung cp cho bn mt tng kh tt ni xem xt cho vn ny bng cch di chuyn con tr gn m c vn v lm ni bt m gn ni m cc li c tm thy, v vy bn c th sa cha n bng cch thay th cc nhn vt mt tch trc khi c gng xc minh m mt ln na. Lu Hy nh rng vo cui mi cu lnh n gin l mt du chm phy l cn thit tch mt tuyn b t tip theo. Ngoi ra, tt c cc du ngoc n, du ngoc nhn, v ngn chn kin cn phi c kt hp theo cp.Nhiu li c php xut pht t Arduino C l trng hp nhy cm. Trong trng hp ngn ng nhy cm, cho d th l hoa hoc ch thng phi ph hp chnh xc gia nhng g c nhp vo v c php ca hm, bin, hoc tuyn b khc ang c s dng. Khi vit bn phc tho Arduino, c mt s khc bit ln gia pinmode (), pinMode (), v PINMODE () ch l mt trong nhng thc s s lm vic. Sau y l mt s v d v cc li lin quan n trng hp:"pinmode 'khng khai bo trong phm viny"cao " khng c khai bo trong phm vi nyNhng sai lm c php l nhng v d ca vic s dng cc trng hp sai ph bin khi gi chc nng hoc s dng cc bin hoc hng s. Nhn vo dng ni bt ca m cho ni bn c th nhm ln nh my cao thay v cao, u ra thay v OUTPUT, pinmode thay v pinMode, hoc bt k trng hp khc l trng hp nhy cm.Khng c vn li, ch cn mang mt hi th v ngh rng n thng qua. Ti chc rng bn s tm thy n trong thi gian khng. Vit m c mt cch hi hc ca cn l cc k hp l v theo ngha en. Nu bn vn gp vn nhn c n i, bn c th chuyn sang cc Arduino din n thng hu ch http://arduino.cc/forum.Tm ttPh! l rt nhiu c c thng qua cho d n u tin ca chng ti, nhng chng ti lm cho n! Chng ti bt u vi trit l ca phc tho trong m; gii thiu d n u tin ca chng ti, bao gm mt s s v m ngun; tho lun v cu trc ca Arduino C, trong c s dng cc kin, cc vn c bn ca chc nng Arduino, v lm vic vi bo co v cc yu t ca c php, v sau chng ti c bao bc mi th bng cch nhn vo bin dch, tit kim, v ti ln bn phc tho ca chng ti, cng nh mt s li ph bin m c th ny sinh mt ln trong mt thi gianiu s cung cp mt ci nhn tng quan tt p ca nhng g din ra vo phc ha Arduino in hnh ca bn v a cho bn mt cm gic nh th no cc b phn khc nhau lm vic cng nhau. N thc s khng phi l xu v cng c nhiu bn lm vic vi n, d dng hn n c. By gi trc khi chng ti nhn c mt s chc nng k thut s v analog cao cp hn c sn trn Arduino, chng ta cn phi u tin bao gm mt vi vn c bn nhng cp v chng tip theo ca chng. Chng ti s bt u bng cch xem xt li RGB Blink phc tho ca chng ti t chng ny xem nhng g chng ta c th lm g vi n, trong khi cng ni v cc bin v cc loi khc nhau ca cc kiu d liu c sn cho chng ti. Treo , ti ha n s nhn c th v hn nhiu khi chng ta c c nhng vn c bn ca cchChng.3Lm vic vi binTrong d n cui cng ca chng ti, khng c g l trong cc k ha tr cho kin ca chng ti gip chng ta xc nh c mu sc LED c kt ni m pin trn bng Arduino, hoc, cho rng vn , nhng g chng ti ang chuyn mu hoc tt ti bt k thi im no trong cc m. Chng ti s ch cn phi nh rng s 9 trong dng digitalWrite (9, CAO); cp n pin Arduino 9 rng cc n LED mu c kt ni vi. Thay v c gng nh nhng iu ny, bi v thnh tht chng ti s qun hoc ngi bn cnh chng ti chia s m ca chng ti vi s khng c u mi, c mt cch tt hn vit m ca chng ti s dng mt ci g gi l bin.Trong chng ny, chng ti s xem xt li cui cng d n, ko t m ma thut ca chng ti to ra by mu trong ba mu ca chng ti LED nh l mt cch ni v nhiu cng dng cho cc bin v lm th no chng ta c th t h lm vic cho chng ti. Chng ti cng s xem xt mt s cch thao tc cc bin s dng nhiu loi khc nhau ca cc nh khai thc v lm th no h lm vic. i vi d n mi ny, chng ti s s dng cng mt phn cng t cc chng cui cng, nhng n c th l mt tng tt cp n mt thi gian ngn chng y mt ln nany:.g cn thit cho chng Arduino Uno 5mm RGB LED vi cc m chung 1x 330 ohm v 2x 220 ohm 1/4 in tr watt hoctng t dy kh kt hp breadboard SolderlessD n 2: 7-Mu BlinkNu bn s nh bnh xe mu RGB trong Hnh 2-1 ca chng cui cng, chng ta c th kt hp mu , xanh l cy, v nh sng mu xanh to ra hng triu mu sc khc nhau. Cho d n tip theo ca chng ti, chng ti s n gin phc tho ba mu t chng cui cng v ci tin n bng cch gii thiu trn mu sc n gin c c by mu sc, trong khi tm dng lu hn mt cht v mu trng cho hiu lc. iu ny s cung cp cho chng ti mt c hi gii thiu lm vic vi cc bin s v chng minh mt s hot ng c bn, l tt.Hooking It Upd n ny s dng phn cng rt ging nhau t chng cui cng, nh th hin trong hnh 3-1 v 3-2, m ch lm cho xut hin lp li y cho mc ch thun tin.ti ln M NgunM ngun cho d n ny trong Lit k 3-1 nn xem xt mt cch m h tng t nh m u tin ca d n ca chng ti. l mt cht di hn by gi to ra mt chui s dn n by mu sc c nhn. Chng ti cng thay th nhng con s 9, 10, v 11 vi cc tn bin mu , xanh l cy, v mu xanh, v thm cc bin cho thi gian ca cc phc tho. iu ny s gip chng ti c cc m tt hn v hiu chnh xc nhng g ang xy ra..M ngun Tm tt vt tt, chng ti bt u phc tho ca chng ti vi mt khi m xc nh mi bin s c s dng trong m ca chng ti. Bng cch ny chng ta s bit, v d, rng cc n LED mu c kt ni vi pin 9 v thi gian tr gia mu sc l 1000 mili giy, hoc 1 giy. Nu chng ta mun thay i bt k cc gi tr, thit lp s pin khc nhau cho cc LED RGB hoc tng hoc gim thi gian tr, chng ta s ch phi thay i gi tr ti mt a im duy nht, y nhanh tin thay i cc k ha v lm cho n d dng hn nhiu hiu. iu ny s tr nn quan trng hn sau khi bn phc tho ca chng ti bt u lm nhng iu th v hn vi cc bin s ca chng ti, nhng by gi chng ta hy nhn vo dng u tin sau m chi tit hn:dng ny tuyn b rng cc bin u tin c t tn l mu , xc nh kiu d liu ca bin l mt s nguyn, hoc int, v sau ni vi trnh bin dch m bin ny nn li lin tc s dng cc sa i ln const. Cui cng, mt dng m ny cng s ch nh cc gi tr s 9 vo bin c tn mu . Bng cch ny, cc t kha mu , xanh l cy, mu xanh l tt c cc tn bin m chng ti to xc nh pin m mi mu sc ca n LED RGB c kt ni vi, trong khi thi gian l mt bin lu tr khong thi gian m mi mu nm trn cho , v nhiu s c s dng tr hon trong mt thi gian di trn mu trng ch cho n mt cht nhn mnh.Sau trong cc k ha, chng ta thay th nhng con s m c th c tm thy bn trong cc bo co khc nhau vi cc tn bin m chng ta thit lp trc mi khi tn c gi, trnh bin dch bit tm kim cc gi tr thch hp. Bng cch s dng cc bin trong m ca chng ti, hai dng sau y s l chc nng tng ng:pinMode (, RA);pinMode (9, RA);Phn cn li ca cc m ch l mt phin bn hi di ca bn phc tho d n cui cng ca chng ti. Ngoi mu , xanh l cy, v mu xanh, bn s thy mu vng, mu lc lam, ti, v thm ch c mu trng. Kh tin li, phi khng? Ngoi bt v tt mi mu sc ca n LED, chng ta bt hai mu sc cng mt lc lm cho mu sc trung gian, v c ba mu sc lm cho trng. Bn trong vng lp () chc nng, chng ta bt u vi mu , sau thm mu xanh l cy lm cho mu vng, tt mu lm cho mu xanh l cy, mu xanh thm lm cho mu lc lam, tt mu xanh l cy lm cho mu xanh, bt mu to mu ti, v sau bt mu xanh l cy lm cho trng. Ti thi im ny, chng ti thc hin mt hot ng hp cht nhn s chm tr thi gian vi mt bin khc gi l nhiu to ra mt s chm tr cn trn mu trng. Sau chng ti thit lp li mu sc ca chng ti bng cch tt mu xanh v mu xanh l cy, ch li mu , thc hin thao tc khc trn thi gian tr hon tr li n tr li gi tr ban u ca n, v sau chng ti bt u vng lp trn mt ln na.By gi chng ta thy cc bin trong hnh ng , chng ta hy nhn vo h trong chiu su hn nhiu tm hiu lm th no chng ta c th t h lm vic cho chng ti.mt bin l g?Cc bin m chng ta s dng trong vn bn m l cc bin rt ging nhau m chng ti hc c v trong trng. C phng trnh sau y v d:a2 + b2 = c2Ti chc rng bn nhn thy iu ny trc khi, l nh l Pythagore v n kh hu ch cho vic tm kim theo chiu di ca mt bn ca mt tam gic vung gc nu chng ta bit bt k Hai bn khc. Cc ch ci a, b, c l tn cho d liu s, trong trng hp ny th c c s dng cnh huyn trong khi a v b l hai cnh kia ca tam gic. Chng ta cng c th gi cc bin ch. Bin kh n gin cha thng tin. Trong chng trnh, cc bin c mt tn cho chng ta bit nhng g d liu bin c th cha v h c mt kiu xc nh nhng loi thng tin bin c th gi, v cui cng h c mt gi tr cho d chng ta bit n l g hay khng.Chng ti c th s dng bin gn cc tn ngi c th c c nhng th nh s pin hoc cc gi tr hu ch. H cng c th c s dng lu tr cc s lin tc thay i trong khi m ca chng ti ang tch cc chy. iu ny c th hu ch cho vic thit lp b m, tnh ton hiu sut, hoc cho i qua cc gi tr mi n v i t chc nng. s dng ng mt bin, chng ta cn phi bt u vi khai bo bin. Sau , chng ta cng nn ni v tn bin tt, cc loi khc nhau ca cc bin, v mt vi th khc lin quan n lm vic vi bin3.Khai bo binKhi thit lp mt bin mi, chng ta cn phi rt t nht l xc nh hai mu thng tin: kiu d liu bin v tn ca n. Qu trnh ny c gi l khai bo mt bin ni chng ti s gi mt v tr m trong b nh ca Arduino lu tr thng tin ca chng ti. Khai bo mt bin cng n gin nh ch ra cc kiu d liu theo sau l mt tn duy nht cho bin. Sau y l mt s v d v khai bo bin n gin:int x;int myVariable;int thi gian;Cc loi d liu c th c lu tr trong mt bin, v nhng g c th c thc hin vi n, c xc nh bi kiu d liu ca bin. Cc loi d liu c la chn l rt quan trng sau khi n nh hng n nhng g chng ta c th v khng th lm g vi n. Trong v d trc, chng ti tuyn b kiu d liu s nguyn, biu th bng cc t kha int, mt kiu d liu hu ch cho cc d liu s. Sau khi thit lp cc kiu d liu, chng ta cn mt tn bin r rng cho chng ta bit bng ting Anh nhng g bin khng. Nh mt quy lut chung ca ngn tay ci, n phi c m t, nhng khng qu cng knh. Ly v d sau y:int r;int ;int redLEDConnectedToPin9;Mi ba tn bin l k thut chnh xc, nhng t tn mu bin ca chng ti thay v th r ni chung l d hiu hn. n th tn bin, vi mt vi ngoi l, thng kh c v c ngha ca, v d, mt l ch thng (L) trng rt nhiu khng khip nh hoa ti (I), hoc thm ch s 1 (1) . Trng hp cc oan, redLEDConnectedToPin9, ni chung l qu tit v lm cho c, cng nh vn bn, m hi t nht.Trng hp cc v d trc ch n gin l khai bo kiu d liu bin v tn bin, n cng c th ch nh mt gi tr cho mt bin khi chng ta khai bo n trong mt tuyn b duy nht. Trong bn phc tho v d ca chng ti, chng ti lm iu ny trong cc dng sau:int = 9; y chng ta khai bo bin c tn mu nh mt kiu d liu s nguyn v gn gi tr 9 vi tn bin bng cch s dng ton t gn s c tho lun trong thi gian ngn. Trong khi cc trnh bin dch Arduino vn s gi mt v tr m trong b nh ca n cho mt bin ngay c khi chng ta khng gn cho n mt gi tr, n thng l mt tng tt gn mt gi tr trong khai bo bin ngay c khi gi tr l 0.Tn binChng ti c th t tn mt kh nhiu bt c iu g bin chng ta mun, nhng c mt vi quy tc chng ta cn phi lm theo. Trc ht, chc nng v bin tn ch c th cha cc ch ci, du gch di, s, hoc k hiu la. Khng gian hoc cc k t l nh @ hay v khng c php v k t u tin khng th l mt s. Khng gian trng khng c php vo bn trong mt tn bin, nh thng khi khng gian mu trng c cho php, bn c th c mt khng gian hoc hng trm v n s khng thnh vn . Khng gian mu trng ny bao gm cc dng mi t nh Quay li hoc Enter, hoc tht vo t khng gian quy bar hoc phm Tab. Xem xt ny, cc tn binmyVariable, myValue, DELAY_TIME, v value1 l tt c cc tn hp l. Ngc li, cc tn bin 1stValue, thi gian tr hon, v thi gian v tin bc khng phi l tn hp l cho mt bin.By gi mt s cc tn ny khng c th l c th c c hu ht, l l do ti sao nhiu ngi lp trnh Arduino p dng nguyn tc t tn nht nh c, quy c. Quy c t tn thng gy tranh ci trong gii lp trnh, v h khng yu cu c th khi xc nh tn c o ca ring bn, nhng h c th lm cho m d c hn trong cc chng trnh ln ca s vt.V d, chng ta c th c mt tn bin vi nhiu t nhng , bi v chng ta khng th s dng khng gian bn trong tn bin ca chng ti, chng ti c th mun c mt cch tch mi t lm cho tn d c hn. Mt kh nng l s dng mt gch gia mi t, nh trong red_led_connected_to_pin_9, mt phng php thng c a chung bi cc lp trnh UNIX. Thay vo , chng ti s s dng quy c c gi l k hiu Camelback, nh trong redLEDConnectedToPin9. Theo nguyn tc ny, cc ch ci u tin ca t u tin s c ch thng trong khi cc ch ci u tin ca mi t tip theo s c vit hoa khng c khng gian gia mi t. Ly v d sau y:binmyVariablevalue1tiltSwitchValueN thc s la chn ca bn nh th no bn t tn bin ca bn v bn s thng xuyn thy c hai loi trong bn phc tho ca ngi khc, nhng chng ti cm thy rng k hiu Camelback lm cho m d c hn v ph hp vi nh dng cc nh pht trin Arduino c quyt nh cho tt c cc chc nng tch hp sn trong th vin Arduino. Tng t nh vy, l quy c chung rng cc hng i khi c vit trong tt c cc m vi gch gia nhiu t, nh trong v d sau y, mc d chng ti s khng tun th nghim ngt ny trong t tn bin lin tc ca chng taVO.CAO

BLUE_LED Lu Hy nh rng ngn ng Arduino l trng hp nhy cm, v vy bt c phong cch bn p dng, bn cn phi s dng n mt cch nht qun trong sut ha ca bn. iu ny cng c ngha l bt k bin c xc nh trc hoc tn chc nng m l mt phn ca Arduino C phi c s dng vi vn ha chnh xc.Mt iu cn lu l trong khi khng c ti a hoc di ti thiu cho tn bin, tn rt di bt u tr nn kh t nht g hn v hn. Mt khc, tn mt nhn vt thng qu kh hiu. Mt vi trng hp ngoi l ny s l trng hp ch i thp hn, l mt bin thng c s dng ch ra mt ch s cng vi cc tn bin j v k. Tng t nh vy, a, b, c, x, y, z l i khi s dng tn nh ngn khc, thng khi thm mt tn na s khng nht thit phi cung cp bt k thng tin hn3kiu d liukhi c rt nhiu loi c sn d liu vi Arduino, cho thi im ny, chng ti s bt u vi cc loi s s dng mt trong hai s nguyn hoc s thp phn. Cc kiu d liu s c sn trong hai phin bn: k kt v unsigned. Bin unsigned s lun lun c gi tr tch cc, trong khi cc bin k c th th hin s vi mt gi tr m. Thng loi nht d liu mc nh cho cc loi d liu c k, nhng c th c thay i bng cch s dng vng loi bin unsigned m t saus;.Cc kiu d liu s nguyn l kiu d liu bin chnh ca Arduino lu tr N c th c s dng lu tr cc gi tr s gia -32.768 v 32.767. Nhng gi tr ny cn phi c ton b s nh 42, 28.000, hoc -32, v khng c th bao gm cc gi tr vi cc im thp phn. Bin s nguyn kiu tiu th 16 bit hoc 2 byte c sn 32 KB ca chng ta v chng trnh b nh l do ti sao iu ny quan trng s tr nn r rng hn khi chng ti tho lun v b nh trong Chng 8. Bin s nguyn c th c khai bo vi t kha int, nh sau:int myVariable;Nu bn nhn vo cc v d m Arduino, bn s bt u thy rng s nguyn l mt loi d liu thng c s dng. i vi hu ht cc phn, chng ti s gn b vi cng c ny tr trng hp c ngha hn la chn mt loi d liu. Mt phn l do cho cn thn la chn cc kiu d liu thch hp cho cng vic l tt c cc loi d liu s, bao gm s nguyn, s ln trn theo mt hng no khi chng vt qu mc ti thiu hoc ti a cng sut. V vy, cho v d sau:x = 32767; x = x + 1;Bin x s c gi tr l -32.768, nh s nguyn vt qu kh nng ti a ca n v cn qua cng sut ti thiu ca n v bt u li . Hy nh rng iu ny cng lm c hai cch-do , nu x = -32768; v dng sau l x = x - 1, sau x s bng 32.7675.Theo nh cc s nguyn c lin quan, ch c mt gi tr t 3 n , l tt nhin v 4 s nguyn lm vic ton b s. Ngc li, s du chm ng, th hin di dng cc kiu d liu float, c kh nng th hin phn s ca mt s s dng mt im thp phn v c th c s dng i din cho v s gi tr t 3 n 5, chng hn nh 3.14159, 4.25, hoc 5.0 . Ni s dng 32 bit ca b nh v, nh s nguyn, c th th hin cc gi tr tch cc, tiu cc, hoc khng. khai bo mt bin du chm ng, chng ti s dng cc t kha ni, v nu gn mt gi tr, chng ti cng cn phi bao gm mt s thp phn im ngay c khi ch s sau du thp phn l 0. Sau y l hai v d v khai bo float:float pi = 3.14159; phao trn = 360.0;V Arduino thiu bt k phn cng chuyn dng qun l ton du chm ng, phao ni l chm x l v c th khng mang li kt qu chnh xc nht. Ch c khong 6 hoc 7 ch s chnh xc, z biu hin = 12.0 / 5.0 s mang li 2,4000000953 thay v 2.4. Trong khi cc k hu ch trong cc tnh hung nht nh, tt nht l trnh ni nu c th, c bit l trong thi gian cc ng dng quan trng.Ngoi nguyn v ni, c rt nhiu kiu d liu khc c sn trn Arduino. Byte, mt kiu d liu 8-bit, c th lu tr cc gi tr t 0 n 255. Khng ging nh cc s nguyn v phao, byte unsigned khi mt byte vt qu 255, n cun hn 0. Byte c th hu ch nu chng ta cn phi tit kim mt s b nh hoc l p, chc chn chng ti s khng c mt vn vi d liu cun qua11;.byte dataPin =Cc kiu d liu khc bao gm di 32-bit, l ngi anh ln ca cc s nguyn , v cc kiu d liu boolean 1-bit ch lu tr hai gi tr-ng hoc sai. Trong Bng 3-1 c mt s cc loi d liu khc nhau c sn cho nn tng Arduino, mt s trong chng ta s su hn sau ny trong cun sch.Bng 3-1. Cc loi d liu Arduinoboolean 1 bit ng hay saibyte 8 bit 0-255char 8 bit -128 n 127int 16 bit -32.768 n 32,767di 32 bit -2147483648 n 2,147,483,647ni 32-bit 3.4028235E 38 3.4028235E 38vng loi binNh tho lun trc , cc bin s hnh x theo nhng cch nht nh da trn cc thuc tnh ca kiu d liu ca h. Bng cch s dng vng loi bin, n c th thay i hnh vi ca cc bin nht nh trong cch m v c bn s thay i cch chng ta lm vic vi h. V d, const hoc lin tc bin vng loi lm cho gi tr ca mt bin ch c lin tc m khng th thay i mt khi gi tr c ch nh. iu ny c th hu ch trong vic phc tho ca chng ti, v vy thay v c khai bo bin nh sau:int = 9;Chng ta c th vit nhng dng nh th ny:const int = 9;Chng ti s dng t kha const u ca mt khai bo bin xc nh mt bin nh l mt gi tr khng i ngn cn chng ta v tnh thay i gi tr ca bin sau ny trong m. iu ny rt hu ch nu chng ta bit rng, nh trong v d, s lng pin ca n LED mu s khng bao gi thay i. Nu chng ta c gng gn mt gi tr mi cho bin mu lin tc, chng ti s c nhc nh vi mt li bin dch thn thin. Vng loi lin tc cng rt hu ch cho vic gim s lng b nh l cn thit bi cc m trong khi n ang chy. ng lo lng qu nhiu v iu by gi, chng ta s ni thm v b nh s dng sau ny trong Chng 89..Bn c th thy v d v cc m m s dng # define tin x l thay v const, nh trong dng # xc nh mu Vng loi lin tc ni chung l phng php a thch ca nhm pht trin Arduino trn th # define tin x l xc nh cc bin i. iu ny l do vng loi lin tc c th c kim tra li v s lm theo tt c cc quy tc ca cc bin, bao gm c phm vi bin c nh ngha trong giy lt, trong khi khng to ra bt k cuc xung t tim nng vi th vin Arduino.Nh cp mt thi gian ngn trc y, cc kiu d liu nht nh l mt trong hai k kt hoc unsigned. thay i phm vi ca mt vi trong s cc kiu d liu chng ti c th s dng vng loi unsigned v t kha khng du, lm cho chng lu tr tch cc ch gi tr. Vng loi ny l c li cho vic tng phm vi tch cc ca cc bin hoc ch ra cho ngi c ca m gi tr k vng s khng bao gi tiu cc. V d:int maxThreshold = 1024;Bng cch t cc t kha khng du pha trc ca s nguyn khai bo bin, bin maxThreshold c th by gi ch lu tr cc gi tr tch cc trong khong t 0 n 65.535. Bng 3-2 cung cp mt danh sch cc kiu d liu unsigned bin v phm vi sa i ca h.Bng 3-2. Unsignedkiu d liuTn Kch thc unsigned char 8 bit 0 n 255int 16 bit 0 n 65.535unsigned di 32 bit 0 n 4294967295Bn s thy rng mt unsigned char c phm vi gi tr tng t nh cc byte mc d, cho phm vi ca cc gi tr, byte l kiu d liu a thch. Cng nn nh rng cc loi d liu unsigned s ln trn ging nh anh em k ca h khi h vt qu mc ti thiu ca h hoc gi tr ti a.Ngoi unsigned v const, c vng loi bin khc m chng ti s xem xt li trong chng sau, khi cn thit.Cc hng s c xc nh trcNgoi ngi dng nh ngha bin i, mi trng pht trin Arduino s dng hng s c xc nh trc ca mnh. Vic u tin ca cc hng s xc nh trng thi logic Boolean da trn cc bng tht hp l s dng hai trng thi: ng v sai. iu kin gi c th d dng nh ngha l 0 hoc i khi tt. Mt khc, s tht l, bng nhiu cch, bt c iu g khc hn sai. Trong ngha ny, tht s c th l 1, hoc 'trn', nhng n cng c th l 5, -42, hoc thm ch 64.000. Khng ging nh cc hng s khc ca chng ti, ng v sai lun lun xut hin dng ch thng.Cp khc ca chng ti cc hng s, m bn nhn thy mt s, thng c s dng nh mt phn ca kh nng I / O k thut s ca Arduino v s c tho lun su hn trong sau . Cc hng s xc nh hot ng ca cc chn k thut s l mt trong hai vo hay u ra bng cch s dng pinMode () chc nng, hoc xc nh cc mc pin nh l cao hay thp, tng ng vi pin tiu bang ca 5 volts v 0 volt, hoc trong v ngoi tng ngbin.Phm viTrong khi chng ti cho n nay tho lun lm th no bin c khai bo, m chng ta khai bo cc bin l quan trng nh th no chng ta khai bo chng. V tr ca mt khai bo bin trong cc k ha ln hn xc nh ni bin m c th c s dng, hoc nhng g c gi l phm vi bin9;.const int =Bin ny t v d trc ca chng ti c khai bo bn ngoi cc thit lp () v vng lp () chc nng u ca m ngun. Ny c gi l mt bin ton cu v c th c s dng bi tt c cc chc nng trong cc k ha bt k v tr. Tuy nhin, nu bin ny c khai bo trong setup () chc nng, n s tr thnh mt bin a phng v s khng c sn lp () hoc bt k chc nng khc. Bin a phng cng c th c s dng bn trong cho cc vng, thng l quy, m ch c tuyn b rng c th s dng n v khng phi l phn cn li ca cc chc nng. Trong thc t, n l hon ton c th cho mt tn bin c s dng trong hai khc nhaucch c x ty thuc vo ni nhng bin c khai bo v s dng. Tuy nhin, nu chng ta c gng truy cp vo mt bin bn ngoi phm vi ca n, chng ta s nhn c mt mt trong nhng li nhc nh thn thin trong cc hnh thc ca mt li bin dch cho chng ti bit ni chng ti i sai.Bi v vit m cho Arduino C l mt cht khc nhau t bnh thng m ngun C, c bit trong vic s dng cc thit lp () chc nng ca chng ti thc hin mt ln duy nht nhim v, chng ti s thng xuyn s dng cc bin ton cu xc nh s pin, thit lp cc ngng, hoc xc nh cc hng s, do tt c cc chc nng trong mt bn phc tho c th s dng cng gi tr. iu ny s khng thng l trng hp vi m c vit cho cc nn tng khc, nhng n lm vic cho chng ti.S dng vn hnhBy gi chng ta trit khai thc nhng g cc bin, nhng g chng ta c th lm g vi chng? tr li cu hi ny, chng ta cn phi kim tra cc nh khai thc khc nhau, trong c k t c bit c s dng thc hin cc hot ng c th. By gi, chng ti s gn b vi nhim v n gin, s hc, v cc nh khai thc hp cht, v nhn c vo mt s ngi khc trong chng k tip.Khi chng ti ni chuyn v khai bo bin, chng ti s dng ton t gn, =, trng ging nh du bng nhng isn 't chnh xc du bng chng ta bit v yu t lp i s. Hy xem v d sau:myValue = 255; y, cc nh iu hnh chuyn nhng l ni cho trnh bin dch ly gi tr hoc biu thc bn phi ca ton t v gn gi tr vo bin pha bn tri ca nhn vt =. Trong trng hp ny, chng ti ang dng cc gi tr ca 255 v a n vo mt bin chng ti ang ku gi myValue. Xem xt cc on m sau y gi:int myValue, newValue; myValue = 255; newValue = myValue;Dng u tin khai bo hai bin kiu s nguyn trn cng mt dng. (Vng, ti bit iu ny l ninja ln lt, nhng min l chng ta tch cc tn bin vi du phy, chng ta c th khai bo nhiu bin c cng kiu d liu.) Dng th hai sau gn gi tr s 255 n myValue bin. Sau trong dng th ba, ghi nh rng cc cng vic lm vic phn no phn trc gic phi sang tri, chng ta gn gi tr ca myValue n newValue bin. Trong trng hp ny newValue s by gi cng gi gi tr ca 255. nn l tinh th r rng, phi khng? Lu Bi v chng ti ch c th khai bo mt bin trong phm vi cng mt lc, chng ti khng s dng cc loi d liu khi gn gi tr cho mt bin sau khi tuyn b u tin. Nu trong v d trc chng ti vit int myValue = 255; thay v myValue = 255, chng ti s c mt li bin dchdng:.s hc s +, -, *, /Cng vi ra khi con ng, chng ta hy nhn vo cc nh khai thc s hc n gin cng, tr, nhn, chia. bt u, chng ta hy ni chng ti mun thm hai s vi nhau v gn n vo mt bin, n s ging nh sau:myValue = 4 + 38;Bt u t bn phi, Arduino s thm 4 v 38 v ch nh s tin s dng cc myValue bin, m hin nay s tng ng vi gi tr s ca 42. Tng t nh vy, k t khi bin hnh ng ging nh nhng con s m h lu tr, h c th c bao gm trong phng trnh cng255;.myValue = NewValue = myValue - 128;Sau khi gn gi tr 255 myValue, dng tip theo tr 128 t myValue v chuyn nhng kt qu cho newValue m by gi cha s 127. Chng ti thm ch c th lm iu ny bng cch s dng bin tng t nh trong v d sau:myValue = 255; myValue = myValue - 1;Bt u vi 255, 1 c tr myValue v kt qu mi ny, 254, c iu ng n cc myValue bin. Nu chng ta thc hin dng th hai ny 255 ln trong mt hng, chng ti s gim gi tr, hoc gim gi tr ca myValue cho n khi n t n 0.Cc gi tr m chng ti ang thc hin cc hot ng trn c gi l ton hng. Kiu d liu ca cc ton hng xc nh loi d liu c s dng bi cc nh khai thc vi loi ln nht ang c s dng nu h l cc loi khc nhau. Xem xt cc on sau y m, m nn c phn no quen thuc t hnh hc trung hc:float pi = 3.14159; int ng knh = 5; ni C; C = pi * ng knh;Trong trng hp ny, cc nh iu hnh c s dng xc nh C b qua thc t l cc ng knh bin l mt kiu d liu s nguyn, v trong dng cui cng, chng ta nhn pi bin float (3.14159) vo bin s nguyn ng knh (5) v chng ti kt thc vi gi tr du chm ng ca 15,7079505920 c gn cho bin ny C. cho thy rng khi mt trong cc ton hng l cc kiu d liu float, ton du phy ng c s dng cho ton b tnh ton v kt qu l, b nhng hn ch thng thng ca kch thc b nh ln v hot ng chm.Trong v d gn y nht ny, bin C l cc kiu d liu float v kt qu l c th lu tr cc gi tr phn s. Tuy nhin, nu c hai ton hng l cc kiu d liu, cc hot ng s c thc hin bng cch s dng loi khng ph thuc vo kt qu thc t, nh sau, v d:int myValue; myValue = 9/5,tuyn b ny chia 9 5 , tuy nhin, k t khi myValue l mt bin kiu s nguyn, gi tr kt qu giao lp bng ra kt qu t 1 n myValue hn l gi tr thc t ca 1,8 v s nguyn ch c th cha s nguyn. Ch rng iu ny khng c lm trn ln hoc xung m khng tnh n bt k s phn on sau du thp phn9/0.;.Hy cn thn v v tnh chia mt s cho s khng, nh trong x = Thay v em li cho bn mt li bin dch cho mt ci g bn khng nn c th lm, trnh bin dch Arduino s thay v nh ra mt s con s kh k l v bt ngchtnh khai thc hp + +, -, + = , - =, * =, / =Trong v d trc, chng ti cn hai gi tr cho cc nh khai thc lm vic k diu ca h, nh trong cu sau y:myValue = 0; myValue = myValue 1;Thay vo , chng ta c th s dng ton t hp cht kt hp mt php ton s hc vi mt hot ng chuyn nhng, do ch cn mt tuyn b bin lm nhng g h lm. y c th c s dng hoc tng, nng cao gi tr, hoc gim, h thp gi tr, s dng ch l mt nh iu hnh. Sau y l mt v d m gia s myValue 1 bng cch s dng biu tng + + nhn vt:myValue = 0; myValue + +;tuyn b ny, chc nng ging vi m v d cui cng, s gia bin 1 v reassigns cc gi tr mi cho tn bin hin nay . Trong trng hp ny, myValue bin by gi cha gi tr s 1. Tng t nh vy, chng ta c th gim cc gi tr bng cch s dng - biu tng nhn vt, nh sau:myValue -; y, myValue by gi cha 0 mt ln na. Trong hai v d ny, cc nh khai thc hp cht + + hoc - ch tng hoc gim bi gi tr l 1. Nu chng ta mun tng hoc gim mt bin bng mt gi tr ln hn 1, chng ti c th s dng mt trong cc nh khai thc hp cht: + =, - =, * =, hoc / =. V d, nu chng ti mun tng myValue 10 chng ta c th s dng cu lnh sau:myValue + = 10;tuyn b ny, mt ln na ging vi tuyn b myValue = myValue 10; thm 10 n bt c iu g gi tr c gn cho myValue. Gi nh rng myValue cha s 10, chng ta c th nhn rng n bng mt yu t v gn gi tr mi bng cch s dng v d sau:myValue * = 1,5;Cc myValue bin c tng ln n 15. Ghi tuy nhin, nu chng ta gi nh myValue l mt s nguyn, thm * = 1.5 s cho kt qu trong 22 ch khng phi l 22,5 v s nguyn lob ra bt c iu g sau du thp phn.Chng ti s dng khai thc hp cht trong m s d n gn y ca chng ti nhn hai bin vi nhau to ra mt cn tr hon thi gian cho trng, nh trong v d sau:s chm tr (thi gian * = nhiu);Trong dng m ny, chng ta nhn gi tr ca bin nhiu bi gi tr hin ti ca thi gian, gn gi tr mi ny li cho thi gian bin , v sau chng ti tr hon cho s tin . Bng cch ny chng ta c th thay i mt trong cc gi tr ban u cho hai bin vo u ca m m khng cn phi sn lng tng dng trong cc k ha. Khai thc hp cht ny cng rt hu ch cho cc quy v cc ch s v c bit l gip nh gn m thnh mt dng d c hn khi chng ti nhn c cho cc cu trc iu khin vng saung.t hotKhi ton hc c nhiu hn mt cht phc tp, l tt bit v th t hot ng, hoc th t m cc nh khai thc c x l trong bt k biu hin no. V d, ty thuc vo cch mt biu thc c nh gi, 3 * 5 + 10 c th mang li mt trong hai 25 hoc 45 ty thuc vo vic chng ta nhn 3 ca 5

.