BO CO N 1 TI: THIT K MCH O NHIT S DNG BOARD ARDUINO, HIN TH TRN 4 LED 7 THANH V TRUYN PHT KHNG DY S DNG MODULE nRF24L01
Gio vin hng dn : TS. Sinh vin thc hin :
Lp : TH2-K56
H ni, 11-2013 Mc lc
Trang 2
MC LC
MC LC ...................................................................................................................... 2 DANH MC HNH V ................................................................................................. 4 DANH MC BNG S LIU ...................................................................................... 6 LI NI U................................................................................................................ 7 Chng 1: TNG QUAN .............................................................................................. 8 1.1. Gii thiu chung v Arduino .................................................................................. 8 1.2. Gii thiu v board Arduino Uno ........................................................................... 9 1.3. Gii thiu v board Arduino Nano ....................................................................... 10 1.4. Gii thiu v IC 74HC595 ................................................................................... 12 1.5. Gii thiu v cm bin nhit LM35 ................................................................. 13 1.6. Gii thiu v module truyn pht nRF24L01 ....................................................... 15 1.6.1. Thng s k thut: ......................................................................................... 15 1.6.2. Phn tch........................................................................................................ 16 1.7. Gii thiu chung v phn mm m phng Proteus ............................................... 17 1.8. Th vin Arduino trong Proteus ........................................................................... 18 1.9. Gii thiu v Arduino IDE v ngn ng lp trnh cho Arduino ............................ 19 Chng 2: THIT K, LP TRNH V LP T MCH O NHIT V TRUYN PHT KHNG DY........................................................................... 22 2.1. Thit k mch trn Proteus................................................................................... 22 2.1.1. Thit k mch o nhit khng truyn pht ................................................ 22 2.1.2. Thit k mch o nhit truyn pht khng dy vi module nRF24L01 ..... 25 2.2. Lp trnh cho mch o nhit ............................................................................ 27 2.2.1. Lp trnh cho mch o nhit khng truyn pht c cnh bo gii hn trn v di ............................................................................................... 27 2.2.2. Lp trnh cho mch o nhit c truyn pht khng dy ............................. 30 a. Cc th vin s dng: ...................................................................................... 30 Mc lc
Trang 3
b. Vn lp trnh truyn pht khng dy vi nRF24L01 ................................... 30 2.3. Lp t mch o nhit v th nghim trn test board ...................................... 33 2.3.1. Lp t v th nghim mch o nhit khng truyn pht .......................... 33 2.3.2. Lp t v th nghim mch o nhit c truyn pht vi nRF24L01 ........ 36 a. Lp t mch truyn (Transmitter) v mch nhn (Receiver) ........................... 36 b. Qu trnh th nghim ....................................................................................... 38 2.4. Chi ph thc hin ti ........................................................................................ 44 Chng 3: TNG KT ............................................................................................... 46 TI LIU THAM KHO ........................................................................................... 48 PH LC ..................................................................................................................... 49 Danh mc hnh v
Trang 4
DANH MC HNH V
Chng 1: TNG QUAN Hnh 1.1: Nhng thnh vin khi xng Arduino. ........................................................... 8 Hnh 1.2. Board Arduino Uno. ......................................................................................... 9 Hnh 1.3. Board Arduino Nano. ..................................................................................... 11 Hnh 1.4. Cu to IC 74HC595. ..................................................................................... 12 Hnh 1.5. Cm bin LM35. ............................................................................................ 14 Hnh 1.6. S chn cm bin LM35. ........................................................................... 14 Hnh 1.7. Module nRF24L01. ........................................................................................ 15 Hnh 1.8. S chn module nRF24L01. ...................................................................... 17 Hnh 1.9. Giao din khi ng phn mm Proteus. ........................................................ 18 Hnh 1.10. Cc linh kin trong th vin Arduino cho Proteus. ....................................... 19 Hnh 1.11. Giao din phn mm Arduino IDE. .............................................................. 20 Chng 2: THIT K, LP TRNH V LP T MCH O NHIT V TRUYN PHT KHNG DY Hnh 2.1. S nguyn l mch o nhit khng truyn pht thit k trn Proteus. .... 23 Hnh 2.2. M phng hin th nhit trn Proteus. ........................................................ 24 Hnh 2.3. M phng mch o nhit khng truyn pht c thm chc nng cnh bo gii hn nhit bng n led......................................................................... 25 Hnh 2.4. Mch o nhit khng truyn pht lp t trn test board. ........................... 34 Hnh 2.5. Ch hin th nhit thang Celsius ( o C) trn mch o nhit .................. 35 Hnh 2.6. Hin th nhit thang Fahrenheit ( o F) trn mch o nhit . ....................... 36 Hnh 2.7. Mch transmitter lp t trn test board. ......................................................... 37 Hnh 2.8. Mch Transmitter hin th nhit o c. .................................................. 37 Hnh 2.9. Mch Receiver lp t trn test board sau khi c cp ngun in. .............. 38 Hnh 2.10. Mch Transmitter v Receiver khi cha c cp ngun in. ..................... 39 Danh mc hnh v
Trang 5
Hnh 2.11. Hot ng ca 2 mch Transmitter v Receiver trong qu trnh th nghim. ..................................................................................................... 40 Hnh 2.12. Hot ng ca mch Transmitter. ................................................................. 41 Hnh 2.13. Hot ng ca mch Receiver. ..................................................................... 41 Hnh 2.14. Ton cnh qu trnh o, truyn - pht, hin th nhit ca mch Transmitter v Receiver........................................................................................ 42 Hnh 2.15. Giao din hin th ca mch Transmitter qua chc nng Serial Monitor ca Arduino IDE. ........................................................................................................... 43 Hnh 2.16. Giao din hin th ca mch Receiver qua chc nng Serial Monitor ca Aruino IDE. ............................................................................................................. 44 Hnh 2.17. Giao din hin th trn my tnh ca c mch Transmitter v mch Receiver. .......................................................................................................... 44
Danh mc bng s liu
Trang 6
DANH MC BNG S LIU
Chng 1: Bng 1.1. S kt ni chn Arduino vi module nRF24L01. ...................................... 17 Chng 2: Bng 2.1. S kt ni chn linh kin IC 74HC595 v Transistor trong mch o nhit c truyn pht .................................................................................... 26 Bng 2.2. Chi ph thc hin ti n 1. ..................................................................... 44
Li ni u
Trang 7
LI NI U Ngy nay khoa hc cng ngh ngy cng pht trin, vi iu khin AVR v vi iu khin PIC ngy cng thng dng v hon thin hn , nhng c th ni s xut hin ca Arduino vo nm 2005 ti Italia m ra mt hng i mi cho vi iu khin. S xut hin ca Arduino h tr cho con ngi rt nhiu trong lp trnh v thit k, nht l i vi nhng ngi bt u tm ti v vi iu khin m khng c qu nhiu kin thc, hiu bit su sc v vt l v in t . Phn cng ca thit b c tch hp nhiu chc nng c bn v l m ngun m. Ngn ng lp trnh trn nn Java li v cng d s dng tng thch vi ngn ng C v h th vin rt phong ph v c chia s min ph. Chnh v nhng l do nh vy nn Arduino hin ang dn ph bin v c pht trin ngy cng mnh m trn ton th gii. Trn c s kin thc hc trong mn hc : Tin hc i cng , in t tng t v s cng vi nhng hiu bit v cc thit b in t, chng em quyt nh thc hin ti : Thit k mch o nhit s dng board Arduino, hin th trn 4 led 7 thanh v truyn pht khng dy s dng module nRF24L01 vi mc ch tm hiu thm v Arduino, lm quen vi cc thit b in t v nng cao hiu bit cho bn thn. Do kin thc cn hn hp, thm vo y l ln u chng em thc hin n nn chc chn khng trnh khi nhng thiu st , hn ch v th chng em rt mong c c s gp v nhc nh t thy gio c th hon thin ti ca mnh. Chng em xin chn thnh cm n thy gio TS.Nguyn Hong Nam gip chng em rt nhiu trong qu trnh tm hiu ,thit k v hon thnh ti n 1 ny.
H Ni, ngy 29 thng 11 nm 2013 Sinh vin thc hin
Chng 1: Tng quan
Trang 8
Chng 1 TNG QUAN
1.1. Gii thiu chung v Arduino Arduino thc s gy sng gi trn th trng ngi dng DIY (l nhng ngi t ch ra sn phm ca mnh) trn ton th gii trong vi nm gn y, gn ging vi nhng g Apple lm c trn th trng thit b di ng. S lng ngi dng cc ln v a dng vi trnh tri rng t bc ph thng ln n i hc lm cho ngay c nhng ngi to ra chng phi ngc nhin v mc ph bin.
Hnh 1.1: Nhng thnh vin khi xng Arduino. Arduino l g m c th khin ngay c nhng sinh vin v nh nghin cu ti cc trng i hc danh ting nh MIT, Stanford, Carnegie Mellon phi s dng; hoc ngay c Google cng mun h tr khi cho ra i b kit Arduino Mega ADK dng pht trin cc ng dng Android tng tc vi cm bin v cc thit b khc? Arduino tht ra l mt bo mch vi x l c dng lp trnh tng tc vi cc thit b phn cng nh cm bin, ng c, n hoc cc thit b khc. c im ni bt ca Arduino l mi trng pht trin ng dng cc k d s dng, vi mt ngn ng lp Chng 1: Tng quan
Trang 9
trnh c th hc mt cch nhanh chng ngay c vi ngi t am hiu v in t v lp trnh. V iu lm nn hin tng Arduino chnh l mc gi rt thp v tnh cht ngun m t phn cng ti phn mm. Ch vi khong $30, ngi dng c th s hu mt board Arduino c 20 ng I/O c th tng tc v iu khin chng y thit b. Arduino ra i ti th trn Ivrea thuc nc v c t theo tn mt v vua vo th k th 9 l King Arduin. Arduino chnh thc c a ra gii thiu vo nm 2005 nh l mt cng c khim tn dnh cho cc sinh vin ca gio s Massimo Banzi, l mt trong nhng ngi pht trin Arduino, ti trng Interaction Design Instistute Ivrea (IDII). Mc d hu nh khng c tip th g c, tin tc v Arduino vn lan truyn vi tc chng mt nh nhng li truyn ming tt p ca nhng ngi dng u tin. Hin nay Arduino ni ting ti ni c ngi tm n th trn Ivrea ch tham quan ni sn sinh ra Arduino. 1.2. Gii thiu v board Arduino Uno Arduino Uno l 1 bo mch thit k vi b x l trung tm l vi iu khin AVR Atmega328. Cu to chnh ca Arduino Uno bao gm cc phn sau:
Hnh 1.2. Board Arduino Uno.
Chng 1: Tng quan
Trang 10
- Cng USB: y l loi cng giao tip ta upload code t PC ln vi iu khin. ng thi n cng l giao tip serial truyn d liu gia vi iu khin v my tnh. - Jack ngun: chy Arduino th c th ly ngun t cng USB trn, nhng khng phi lc no cng c th cm vi my tnh c . Lc ta cn mt ngun t 9V n 12V. - C 14 chn vo/ra s nh s th t t 0 n 13, ngoi ra c mt chn ni t (GND) v mt chn in p tham chiu (AREF). - Vi iu khin AVR: y l b x l trung tm ca ton bo mch. Vi mi mu Arduino khc nhau th con chip l khc nhau. con Arduino Uno ny th s dng ATMega328. - Cc thng s chi tit ca Arduino Uno: Vi x l: Atmega328 in p hot ng: 5V in p u vo: 7-12V in p u vo (Gii hn): 6-20V Chn vo/ra (I/O) s: 14 ( 6 chn c th cho u ra PWM) Chn vo tng t: 6 Dng in trong mi chn I/O: 40mA Dng in chn ngun 3.3V: 50mA B nh trong: 32 KB (ATmega328) SRAM: 2 KB (ATmega328) EEPROM: 1 KB (ATmega328) Xung nhp: 16MHz
1.3. Gii thiu v board Arduino Nano Board Arduino Nano c cu to, s lng chn vo ra l tng t nh board Arduino Uno tuy nhin c ti gin v kch thc cho tin s dng hn. Do c ti Chng 1: Tng quan
Trang 11
gin rt nhiu v kch thc nn Arduino Nano ch c np code v cung cp in bng duy nht 1 cng mini USB.
Hnh 1.3. Board Arduino Nano.
Thng s k thut chi tit: + Vi x l ATmega328 (phin bn v3.0) + in p hot ng 5 V + in p u vo (khuyn ngh) 7-12 V + in p u vo (gii hn) 6-20 V + Chn vo/ra s 14 (6 chn c kh nng xut ra tn hiu PWM) + Chn vo tng t 8 + Dng in mi chn vo/ra 40 mA + B nh 16 KB (ATmega168), 32 KB (ATmega328) trong 2 KB dng np bootloader + SRAM 1 KB (ATmega168) hoc 2 KB (ATmega328) Chng 1: Tng quan
Trang 12
+ EEPROM 512 bytes (ATmega168) hoc 1 KB (ATmega328) + Xung nhp 16 MHz + Kch thc 0.73" x 1.70"
1.4. Gii thiu v IC 74HC595 IC 74HC595 l thanh ghi dch 8bit kt hp cht d liu, u vo ni tip u ra song song. Chc nng: Thng dng trong cc mch qut led 7, led matrix tit kim s chn vi iu khin ti a (3 chn) . C th m rng s chn vi iu khin bao nhiu ty thch m khng IC no lm c bng vic ni tip u vo d liu cc IC vi nhau.
Hnh 1.4. Cu to IC 74HC595.
Gii thch ngha hot ng ca mt s chn quan trng: + Chn 14 (Data pin): u vo d liu ni tip. Ti 1 thi im xung clock ch a vo c 1 bit. + Cc chn ni ra led (QA=>QH): 15, 1, 2, 3, 4, 5, 6, 7 tng ng vi cc 8 thanh led: a, b, c, d, e, f, g, dp. + Chn 13: chn cho php tch cc mc thp. Khi mc cao, tt c cc u ra ca IC 74HC595 tr v trng thi cao tr, khng c u ra no c cho php. Chng 1: Tng quan
Trang 13
+ Chn 12 (Latch pin): xung clock cht d liu. Khi c 1 xung clock tch cc sn dng th cho php xut d liu trn cc chn output. Lu c th xut d liu bt c lc no. + Chn 11 (Shift clock pin): chn vo xung clock. Khi c 1 xung clock tch cc sn dng(t 0 ln 1) th 1 bit c dch vo IC. + Chn 10: khi chn ny mc thp(mc 0) th d liu b xa trn chip. + Chn 9 (QH): chn d liu ni tip. Nu dng nhiu IC 74HC595 mc ni tip nhau th chn ny a vo u vo ca con tip theo khi dch 8 bit. + Chn 8: chn ni t GND. + Chn 16: ni ngun VCC.
1.5. Gii thiu v cm bin nhit LM35 Cm bin LM35 l b cm bin nhit mch tch hp chnh xc cao m in p u ra ca n t l tuyn tnh vi nhit thang Celsius. Chng khng yu cu cn chnh ngoi v vn chng c cn chnh. Cm bin LM35 c 3 chn: + Chn ngun VCC + Chn u ra Vout (chn tng t) + Chn ni t GND.
Chng 1: Tng quan
Trang 14
Hnh 1.5. Cm bin LM35.
Hnh 1.6. S chn cm bin LM35.
c im chnh ca cm bin LM35 : - in p u vo t 4V n 30V - phn gii in p u ra l 10mV/C - chnh xc cao 25 C l 0.5C Chng 1: Tng quan
Trang 15
- Tr khng u ra thp 0.1 cho 1mA ti Di nhit o c ca LM35 l t -55C n 150C vi cc mc in p ra khc nhau. Xt mt s mc in p sau : - Nhit 55C in p u ra -550mV - Nhit 25C in p u ra 250mV - Nhit 150C in p u ra 1500mV.
Ty theo cch mc ca LM35 ta o cc gii nhit ph hp. i vi h thng ny th o t 0C n 150C.
1.6. Gii thiu v module truyn pht nRF24L01 1.6.1. Thng s k thut:
Hnh 1.7. Module nRF24L01.
Chng 1: Tng quan
Trang 16
- Radio: +Hot ng gii tn 2.4G + C 126 knh + Truyn v nhn d liu + Truyn tc cao 1Mbps hoc 2Mbps. - Cng sut pht: + C th ci t c 4 cng sut ngun pht: 0,-6,-12,-18dBm. - Thu: + C b lc nhiu ti u thu + Khuch i b nh hng bi nhiu thp (LNA) - Ngun cp: + Hot ng t 1.9-3.6V. + Cc chn IO chy c c 3.3 ln 5V. - Giao tip: + 4 chn giao tip theo giao thc SPI + Tc ti a 8Mbps + 3-32 bytes trn 1 khung truyn nhn.
1.6.2. Phn tch
+ Module nRF24L01 hot ng tn s sng ngn 2.4G nn Modul ny kh nng truyn d liu tc cao v truyn nhn d liu trong iu kin mi trng c vt cn + Module nRF24L01 c 126 knh truyn. iu ny gip ta c th truyn nhn d liu trn nhiu knh khc nhau. + Module kh nng thay i cng sut pht bng chng trnh, iu ny gip n c th hot ng trong ch tit kim nng lng. + Ch : in p cung cp cho l 1.93.6V. in p thng cung cp l 3.3V. Nhng cc chn IO tng thch vi chun 5V. iu ny gip n giao tip rng di vi cc dng vi iu khin. 1.6.3. S phn cng v kt ni vi Arduino Chng 1: Tng quan
Trang 17
+ S chn nRF24L01:
Hnh 1.8. S chn module nRF24L01. + S kt ni vi Arduino: Bng 1.1. S kt ni chn Arduino vi module nRF24L01.
1.7. Gii thiu chung v phn mm m phng Proteus Phn mm Proteus l phn mm cho php m phng hot ng ca mch in t bao gm phn thit k mch v vit chng trn iu khin cho cc h vi iu khin nh MCS-51, PIC, AVR, Proteus l phn mm m phng mch in t ca Lancenter Electronics, m phng cho hu ht cc linh kin in t thng dng, n bit h tr cho cc MCU nh PIC, 8051, AVR, Motorola. Tn chn S th t chn Chn kt ni tng ng trn Arduino GND 1 GND VCC 2 3.3V CE 3 8 CSN 4 7 SCK 5 13 Chng 1: Tng quan
Trang 18
Phn mm bao gm 2 chng trnh: ISIS cho php m phng mch v ARES dng v mch in. Proteus l cng c m phng cho cc loi vi iu khin kh tt, n h tr cc dng vi iu khin PIC, 8051, PIC, dsPIC, AVR, HC11,cc giao tip I2C, SPI, CAN, USB, Ethenetngoi ra cn m phng cc mch s, mch tng t mt cch hiu qu.
Hnh 1.9. Giao din khi ng phn mm Proteus.
1.8. Th vin Arduino trong Proteus Th vin Arduino l mt b sung rt hay cho phn mm m phng Proteus n gip cho vic m phng Arduino c thun tin v d dng hn thay v ch m phng c chip ATmega328(nhn ca Arduino), th vin ny c pht trin bi cc k s Cesar Osaka, Daniel Cezar, Roberto Bauer v c ng ti trn blog ting B o Nha: http://blogembarcado.blogspot.de/ Th vin bao gm cc linh kin sau: - Arduino Uno (Phin bn chip ATmega328 chn DIP) - Arduino Uno (Phin bn chip ATmega328 chn SMD) Chng 1: Tng quan
Trang 19
- Arduino Mega - Arduino Lilypad - Arduino Nano - Cm bin siu m Ultrasonic V2
Hnh 1.10. Cc linh kin trong th vin Arduino cho Proteus.
1.9. Gii thiu v Arduino IDE v ngn ng lp trnh cho Arduino Thit k bo mch nh gn, trang b nhiu tnh nng thng dng mang li nhiu li th cho Arduino, tuy nhin sc mnh thc s ca Arduino nm phn mm. Mi trng lp trnh n gin d s dng, ngn ng lp trnh Wiring d hiu v da trn nn tng Chng 1: Tng quan
Trang 20
C/C++ rt quen thuc vi ngi lm k thut. V quan trng l s lng th vin code c vit sn v chia s bi cng ng ngun m l cc k ln.
Hnh 1.11. Giao din phn mm Arduino IDE. Arduino IDE l phn mm dng lp trnh cho Arduino. Mi trng lp trnh Arduino IDE c th chy trn ba nn tng ph bin nht hin nay l Windows, Macintosh OSX v Linux. Do c tnh cht ngun m nn mi trng lp trnh ny hon ton min ph v c th m rng thm bi ngi dng c kinh nghim. Ngn ng lp trnh c th c m rng thng qua cc th vin C++. V do ngn ng lp trnh ny da trn nn tng ngn ng C ca AVR nn ngi dng hon ton c th nhng thm code vit bng AVR vo chng trnh nu mun.Hin ti, Arduino IDE c th download t trang ch http://arduino.cc/ bao gm cc phin bn sau: Chng 1: Tng quan
Trang 21
- Arduino 1.0.5 - Arduino1.5.5 BETA (H tr cho 2 board Arduino mi nht l: Arduino Yun v Arduino Due) - Arduino IDE cho Intel Galileo Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 22
Chng 2 THIT K, LP TRNH V LP T MCH O NHIT V TRUYN PHT KHNG DY.
2.1. Thit k mch trn Proteus 2.1.1. Thit k mch o nhit khng truyn pht Ban u, nhm ng vi phng n thit k mch o nhit hin th ra 4 led 7 thanh bao gm cc chc nng hin th C v c th hin th F bng cch nhn gi cng tc. thit k c mch ny, sau khi tho lun v tham kho kin ca thy gio hng dn, nhm thng nht s dng phng php qut led dng transistor hin th nhit trn 4 led 7 thanh. Phng php ny c p dng da trn hin tng lu nh trn vng mc ca mt. phng php ny, tn hiu c truyn t cm bin LM35 vo Arduino v c tnh ton ra nhit , ri tn hiu ny li c truyn t Arduino ra led, tn hiu truyn ra khng lin tc m theo tng xung nhp mt. Mi xung nhp s cch nhau 1ms. Do hin tng lu nh trn vng mc ca mt, hnh nh c lu li trn vng mc mt trong khong thi gian l 40ms nn ta vn nhn thy nhit hin th trn led l cc s r rng ch khng thy c tn hiu b ngt qung. truyn d liu t Arduino ra led 7 thanh, nhm s dng thm 1 IC ghi dch HC74595 vi chc nng l gim thiu s chn phi cm vo Arduino so vi trng hp cm trc tip 4 led 7 thanh vo Arduino. Phng php qut led cng s dng n Transistor A1015 (PNP) a c tn hiu ra led.
Mch c thit k trn phn mm Proteus: Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 23
Hnh 2.1. S nguyn l mch o nhit khng truyn pht thit k trn Proteus.
Sau khi vit c code v np code thnh cng, mch m phng hot ng ng theo cc chc nng mong mun. Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 24
Hnh 2.2. M phng hin th nhit trn Proteus.
Nhm tip tc ci tin thm chc nng cnh bo ngng trn v ngng di. Tuy nhin do cu to ca Arduino (khng chn ra, chn Interrupt) nn khng th lm c mch cnh bo c hin th v iu chnh nhit cnh bo ngng trn v ngng di m thay vo l mch o nhit c n led cnh bo ngng trn v ngng di vi nhit cnh bo khng hin th trn led m c thay i trong code lp trnh. Mch m phng thnh cng trn Proteus.
Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 25
Hnh 2.3. M phng mch o nhit khng truyn pht c thm chc nng cnh bo gii hn nhit bng n led.
2.1.2. Thit k mch o nhit truyn pht khng dy vi module nRF24L01 Do linh kin module truyn pht khng dy module nRF24L01 khng c trong bt c 1 th vin no ca Proteus nn nhm khng th thit k mch m phng linh kin ny m thay vo , nhm phi trc tip lp mch tht trn board test, sau vit v np code test trc tip trn m hnh tht. Mi board Arduino Uno v Arduino Uno u ch c 14 chn xut tn hiu ra s (digital). S lng chn ra s rt hn ch nn vic kt ni vi cc thnh phn chnh phc v o nhit (IC ghi dch, cm bin, led 7 thanh) v module truyn pht s dng ht 12 chn ra s t chn 2 n chn 13 ca board Arduino. Ta ch c th s dng 2 chn ra s 0 v 1 cho cc chc nng khc, tuy nhin 2 chn s 0 (RX) v chn 1(TX) cn Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 26
c s dng nhn v truyn d liu ni tip TTL (TTL serial data), nhng chn ny c kt ni vi cc chn tng ng trn chip ni tip Atmega8U2 USB-to-TTL. Do vy, vic s dng cc chn ny trong mch vi chc nng nh chn ra cho cng tc chuyn hin th thang C hay thang F hay chn ra led cnh bo l khng kh thi. Thc t khi np code v s dng nhng chn ny, mch o gp li hin th khng chun xc v n led khng th iu khin c nhp nhy ng nhit cnh bo. V vy nhm quyt nh ct b chc nng dng cng tc chuyn kiu hin th nhit 2 thang o C, F v chc nng cnh bo nhit gii hn trn v di bng 2 led cnh bo. Thay vo nhm lp trnh mch cnh bo nhit gii hn 1 ngng bng nhp nhy trc tip trn mn hnh 4 ch s led 7 thanh. Mch truyn v mch nhn nhit cng c kh nng o v hin th ring bit tnh trng nhit o c, nhit nhn c ln mn hnh my tnh ring bit qua chc nng Serial Monitor ca phn mm Arduino IDE. Vic hin th ny s gip cho ngi s dng d dng bit c nhit trc tip ti im o v cn gip ngi thit k nh gi c tr trong vic truyn, nhn t hiu. Th vin nRF24L01p cng mc nh sn cch kt ni chn gia Arduino v module nRF24L01, cho nn, s dng c mt cch n gin nht v khng phi can thip qu nhiu vo th vin, ta s iu chnh chn kt ni IC74HC595 v transistor vi Arduino. C th thay i th hin trong bng sau:
Bng 2.1. S kt ni chn linh kin IC 74HC595 v Transistor trong mch o nhit c truyn pht. Linh kin Chn linh kin Chn kt ni tng ng trn Arduino IC 74HC595 11 (Shift Clock) 6 12 (Latch Clock) 9 14 (Data pin) 10 Transistor 1 Base 2 Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 27
Transistor 2 Base 3 Transistor 3 Base 4 Transistor 4 Base 5
Kt ni module nRF24L01 vi Arduino theo s gii thiu phn trn. Mch thu v hin th nhit ch thc hin chc nng hin th nhit nn s khng c lp t cm bin LM35, cc linh kin cn li mch pht v thu c kt ni ging nhau. 2.2. Lp trnh cho mch o nhit 2.2.1. Lp trnh cho mch o nhit khng truyn pht c cnh bo gii hn trn v di Code lp trnh cho mch o nhit c vit bng phn mm Arduino IDE. Nh chng trc gii thiu, cm bin LM35 o nhit v th hin nhit di dng in p (c 10mV l 1 , ti a in p cung cp l 5000mV 10bit), do vy cho ra c gi tr nhit chnh xc, trc ht, ta s dng hm analogRead() c gi tr in p t cm bin LM35 di dng nhit . Gi tr in p ny s c tnh ton ra gi tr nhit theo cng thc: tempC=(val/(1024*10))*5000 = val* 0.48828125 (trong : val l gi tr c vo t cm bin, tempC l gi tr nhit thang Celsius) Chuyn i sang nhit thang Farenheit ( o F)
ta dng cng thc: tempF=(tempC*9)/5+32 = tempC*1.8+32
Mch o c lp trnh gi tr nhit o c hin th trn led 7 thanh bao gm 4 k t: ch s hng chc, hng n v ca nhit , k hiu v thang o (XX o C hoc XX o F), do mn hin th ch c 4 led 7 thanh nn khi nhit ln hn 100 o th hin th: ch s hng trm, hng chc, hng n v ca gi tr nhit , k hiu nhit (XXX o ). Mun hin th c nh vy, ta cn dng bin conv chuyn i kiu d liu ca gi tr nhit o c t kiu thc (float) sang kiu s nguyn (int) ri dng thut ton tch Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 28
ring cc hng trm, chc, n v ca gi tr nhit hin th trn tng led 7 thanh. Ta dng on code sau: conv=tempC; //Dng cho thang Celsius ht = conv/100; h[0] = (conv%100)/10; h[1] = ((conv%100)%10)/1; h[2] = 10; h[3]= 11; if(ht>0) { h[2]=h[1]; h[1]=h[0]; h[0]=ht; } a ra cnh bo gii hn trn v di, ta s dng 2 bin kiu integer: uptemp v downtemp. Nu nhit o c ln hn gii hn trn hoc nh hn gii hn di cho trc th n led tng ng s nhp nhy v gi tr hin th nhit trn led s nhp nhy theo cng do hiu ng t phng php qut led: if(tempC>=uptemp) //Cnh bo gii hn trn { digitalWrite(ledpin1, HIGH); delay(200); digitalWrite(ledpin1, LOW); delay(200); }
Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 29
if(tempC<=downtemp) //Cnh bo gii hn di { digitalWrite(ledpin2, HIGH); delay(200); digitalWrite(ledpin2, LOW); delay(200); }
a gi tr nhit x l t tn hiu cm bin ra 4 led 7 thanh, ta dng on chng trnh sau. Hm shiftOut() dng y d liu t Arduino qua IC ghi dch 74HC595 ti hin th trn 4 led 7 thanh:
for(vt=0;vt<4;vt++) { digitalWrite(latchPin,LOW); shiftOut(dataPin,clockPin,LSBFIRST,digit[h[vt]]); digitalWrite(latchPin,HIGH); digitalWrite(digitPins[vt],LOW); delay(1); digitalWrite(digitPins[vt],HIGH); } Do cm bin tin hnh o gi tr nhit t im cn o lin tc nn cho gi tr nhit hin th ln 4 led 7 thanh khng b thay i qu nhanh dn n s hin th b nhy, ta s c on chng trnh t c gi tr t cm bin trong 1 vng if() v s dng 1 bin m k. Khi cm bin o gi tr nhit k=125 ln th mi hin th ln led 1 ln. Thi gian t khi cm bin c gi tr n khi hin th ln led cch nhau khong 2s. Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 30
2.2.2. Lp trnh cho mch o nhit c truyn pht khng dy a. Cc th vin s dng: Th vin nRF24L01p.h gm cc hm gip iu khin c module thu pht c download t ng link Mediafire c chia s trn knh Youtube ca Jorge Arturo Prado Aparcana. Trn knh youtube cng tn, Jorge Arturo Prado Aparcana cng thc hin rt nhiu video hng dn s dng th vin ny. y l th vin mi dng beta v c bit rt d s dng vi ngi mi bt u lm quen vi module thu pht nRF24L01. Module thu pht khng dy nRF24L01 hot ng theo giao thc SPI, SPI (Serial Peripheral Bus) l mt chun truyn thng ni tip tc cao do hang Motorola xut. y l kiu truyn thng Master-Slave, trong c 1 chip Master iu phi qu trnh truyn thng v cc chip Slaves c iu khin bi Master v th truyn thng ch xy ra gia Master v Slave. SPI l mt cch truyn song cng (full duplex) ngha l ti cng mt thi im qu trnh truyn v nhn c th xy ra ng thi. SPI i khi c gi l chun truyn thng 4 dy v c 4 ng giao tip trong chun ny l SCK (Serial Clock), MISO (Master Input Slave Output), MOSI (Master Ouput Slave Input) v SS (Slave Select). V vy ta cn khai bo s dng thm th vin SPI.h. Th vin c cung cp sn trong gi phn mm Arduino IDE hoc c th download d dng t trang http://arduino.cc/ . b. Vn lp trnh truyn pht khng dy vi nRF24L01 Phn truyn pht khng dy s dng module nRF24L01 c coi nh mt chc nng m rng ca mch o nhit hin th trn led 7 thanh gii thiu phn trc. i vi phn ny, ta ch cn sa v b sung thm 1 s phn code vo bi code cho mch o nhit trn. + Lp trnh cho b o v truyn tn hiu nhit : Sau phn khai bo thm th vin h tr, cc chn giao tip theo chun SPI v cc bin, ta thit t cc thng s m u cho module nRF24L01 v thit t giao tip vi my tnh qua cng COM. Module hot ng c 126 knh truyn pht khc nhau, trong phn lp trnh ny, nhm s dng knh 90: delay(150); Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 31
Serial.begin(115200); SPI.begin(); SPI.setBitOrder(MSBFIRST); transmitter.channel(90); transmitter.TXaddress("Artur"); transmitter.init(); Serial.println("Truyen nhiet do su dung module nRF24L01p:"); Serial.println("---------------"); truyn gi tr nhit cho mch nhn v hin th, ta dng hm transmitter.txPL() v transmitter.send() (transmitter l bin do ngi lp trnh t dng gi hm): transmitter.txPL(temp); transmitter.txPL(tempF) transmitter.send(SLOW); Cc phn tch cc ch s ca nhit , hin th ra led 7 thanh, tng t nh phn code mch o nhit khng truyn pht gii thiu trn.
+ Lp trnh cho b nhn v hin th tn hiu nhit : Phn khai bo v thit lp thng s ban u cho module nhn tn hiu c lm tng t nh mch pht. Ta cng chn knh truyn pht ging nh b pht l knh 90. y, bin dng gi hm ta khai bo s l receiver. Sau l phn t hin th ban u trn mn hnh giao tip vi my tnh: delay(150); Serial.begin(115200); SPI.begin(); SPI.setBitOrder(MSBFIRST); Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 32
receiver.channel(90); receiver.RXaddress("Artur"); receiver.init(); Serial.print("Led nhap nhay canh bao khi T* > "); Serial.print(Wtemp); Serial.println(" oc"); Serial.println("---------------"); Serial.println("Dang nhan du lieu..."); Serial.println("---------------"); nhn gi tr v hin th gi tr nhit nhn c ln mn hnh my tnh, ta dng cc hm receiver.available(), receiver.read(), receiver.rxPL() v Serial.print(): if(receiver.available()) //nu sn sng nhn gi tr th khi chy hm nhn { { receiver.read(); // c gi tr nhn receiver.rxPL(temp); //nhn gi tr receiver.rxPL(tempF); Serial.println("Nhiet do da nhan: "); //hin th ln Serial Monitor Serial.print(temp); Serial.println(" oC"); Serial.print(tempF); Serial.println(" oF"); Serial.println("--------"); } Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 33
Mch c lp trnh mn led 7 thanh hin th nhp nhy cnh bo nhit mt ngng bng cch thay i thi gian tr ca qu trnh qut led. Nhit ngng cnh bo c gn cho bin Wtemp v thi gian tr c gn vo bin time. Hm delay() dng to tr c t trong phn hin th gi tr ra led 7 thanh. //Canh bao gioi han: time=1; if(temp>Wtemp) { time=250; } //Hin th ra led: for(vt=0;vt<4;vt++) { digitalWrite(latchPin,LOW); shiftOut(dataPin,clockPin,LSBFIRST,digit[h[vt]]); digitalWrite(latchPin,HIGH); digitalWrite(digitPins[vt],LOW; delay(time); digitalWrite(digitPins[vt],HIGH); }
2.3. Lp t mch o nhit v th nghim trn test board 2.3.1. Lp t v th nghim mch o nhit khng truyn pht Khi thc hin lp t linh kin trn test board cn ch i dy v sp xp v tr cc thit b sao cho hp l trnh tnh trng vng vu, khi thc hin ni chn cc linh kin cn Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 34
tham kho t datasheet chun ca mi linh kin trnh nhm ln khin mch khng chy c hoc gy ngn mch lm hng linh kin.
Hnh 2.4. Mch o nhit khng truyn pht lp t trn test board.
Trong qu trnh lp t mch, nhm cng gp nhiu nhng trc trc nh v cht lng linh kin hay li khi i dy, tuy nhin nhng vn c khc phc v mch hot ng c, cc chc nng hin th v cnh bo hot ng tt. Mch c lp t chnh xc theo s nguyn l cp u chng 2.
+ Ch hin th nhit thang Celsius ( o C): Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 35
Hnh 2.5. Ch hin th nhit thang Celsius ( o C) trn mch o nhit .
+ Chc nng hin th nhit thang Fahrenheit ( o F): Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 36
Hnh 2.6. Hin th nhit thang Fahrenheit ( o F) trn mch o nhit .
2.3.2. Lp t v th nghim mch o nhit c truyn pht vi nRF24L01 a. Lp t mch truyn (Transmitter) v mch nhn (Receiver) + Lp t mch o v truyn nhit (Transmitter) : Mch Transmitter c lp t s dng Arduino Uno. S kt ni tng t nh mch o nhit khng truyn pht vi mt s lu v thay i chn cm ca 1 s linh kin cho ph hp vi iu kin ca Arduino Uno khi kt ni thm vi module nRF24L01. Cc thay i v chn cm c th hin trong Bng 2.1 v s kt ni chn Arduino v module nRF24L01 c th hin trong Bng 1.1. Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 37
Hnh 2.7. Mch transmitter lp t trn test board. Hnh 2.8. Mch Transmitter hin th nhit o c. Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 38
Mch Transmitter khi hot ng s o nhit bng cm bin LM35 sau gi tn hiu nhit sang mch nhn Receiver, ng thi hin th gi tr nhit va o ln mn hnh 4 led 7 thanh v cng s hin th gi tr nhit ny ln mn hnh my tnh thng qua ch Serial Monitor ca phn mm Arduino IDE. + Lp t mch nhn v hin th nhit (Receiver):
Hnh 2.9. Mch Receiver lp t trn test board sau khi c cp ngun in.
Khi cha cp ngun in cho mch Transmitter, mch Receiver nu c cp ngun s hin th 4 ch s 0 trn mn 4 led 7 thanh. b. Qu trnh th nghim Sau khi kt ni y ngun in cho mch pht v mch thu, gi tr nhit c o, truyn v hin th tt trn c 2 mch. tr truyn tn hiu nhit rt nh, nhit thay i hin th trn 4 led 7 thanh mch Receiver gn nh ngay lp tc sau khi Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 39
gi tr nhit o c v hin th trn mch Transmitter thay i. Cc chc nng hin th v cnh bo u hot ng ng theo mong mun.
Hnh 2.10. Mch Transmitter v Receiver khi cha c cp ngun in. Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 40
Hnh 2.11. Hot ng ca 2 mch Transmitter v Receiver trong qu trnh th nghim.
Ti thi im th nghim, nhit trong phng o c trn nhit k l 15 o C, mch o nhit o c ng gi tr nhit trong phng ng thi mch truyn c gi tr nhit ny chnh xc sang mch Receiver hin th gi tr 15 o C. Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 41
Hnh 2.12. Hot ng ca mch Transmitter. Hnh 2.13. Hot ng ca mch Receiver. Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 42
Hnh 2.14. Ton cnh qu trnh o, truyn - pht, hin th nhit ca mch Transmitter v Receiver.
+ Chc nng hin th trn mn hnh my tnh: Arduino Uno, Arduino Nano c kt ni vi my tnh qua cng USB v Arduino Uno c my tnh xc nh giao tip qua cng COM29, Arduino Nano qua cng COM31. Giao din hin th giao tip ca Arduino Uno v Arduino Nano vi my tnh qua Serial Monitor s hin th gi tr thang o C v thang o F cng vi thng bo gi thnh cng hay thng bo nhn c d liu. Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 43
Hnh 2.15. Giao din hin th ca mch Transmitter qua chc nng Serial Monitor ca Aruino IDE.
Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 44
Hnh 2.16. Giao din hin th ca mch Receiver qua chc nng Serial Monitor ca Aruino IDE.
Hnh 2.17. Giao din hin th trn my tnh ca c mch Transmitter v mch Receiver.
Nhm th nghim s dng mch o v truyn pht nhit trong gii hn nh 3 tng: mch o-pht nhit t mt phng trn tng ba, mch thu-hin th nhit t tng mt. Kt qu, nhit vn c truyn v hin th trong iu kin khng gian rng va phi, c tng gch, b tng cn tr.
2.4. Chi ph thc hin ti
Bng 2.2. Chi ph thc hin ti n 1.
Chng 2: Thit k, lp trnh v lp t mch o nhit v truyn pht khng dy
Trang 45
STT Tn linh kin S lng n gi (VN) Thnh tin (VN) 1 Arduino Uno 1 280 000 280 000 2 Arduino Nano 1 240 000 240 000 3 Module nRF24L01 2 65 000 130 000 4 Cm bin LM35 1 20 000 20 000 5 Board test 2 35 000 70 000 6 IC 74HC595 2 3000 6000 7 Led 7 thanh 4 s (0.56mm) 2 9000 18 000 8 Led cnh bo 2 350 700 9 Cng tc 2 cc 2 400 800 10 in tr 10K (Gi 100 con) 1 2000 2000 12 Transistor A1015 (PNP) 8 400 3200 13 Dy cm (jack c - c) Gi 40 dy 2 35 000 70 000 14 Dy cm (jack c - ci) Gi 40 dy 1 35 000 35 000 Tng chi ph (VN) 889 200 Li ni u
Trang 46
Chng 3 TNG KT
Nh vy, vi ti n 1: Thit k mch o nhit s dng board Arduino hin th trn 4 led 7 thanh v truyn pht khng dy s dng module nRF24L01, nhm thc hin thit k c 1 mch o nhit c cc chc nng: - o nhit thang Celsius ( o C). - C cng tc hin th tham kho nhit thang Fahrenheit ( o F) i vi mch o nhit khng truyn pht. - C n led cnh bo nhit gii hn ngng trn v di i vi i vi mch o nhit khng truyn pht. - Cnh bo gii hn nhit mt ngng bng nhp nhy led 7 thanh i vi mch o nhit c truyn pht. Tuy nhin do gi tr nhit hin th ra ch hin th trn 4 led 7 thanh cng vi board Arduino Uno v Nano ch c 2 chn ngt mi board nn rt kh khn trong vic hin th v iu chnh gi tr nhit gii hn ngng trn v di nn nhm chp nhn phng n iu chnh gi tr nhit gii hn trong code lp trnh v khng hin th nhit gii hn ra led. i vi chc nng thu pht v hin th tn hiu nhit , mch c kh nng o v truyn tn hiu nhit t 1 mch o nhit s dng Arduino Uno sang 1 mch hin th nhit s dng Arduino Nano. Do hn ch v s chn ca Arduino v nh hng ca 1 li pht sinh cha tm c nguyn nhn ca chn ra s D0(RX) v D1(TX) ca Arduino Nano nn nhm cha th pht trin c ch cnh bo nhit trn mch hin th s dng Arduino Nano. Vi s l lc trong vic tm hiu nghin cu cc linh kin, thit b cn thit cho ti, cng vi vn dng cc kin thc hc vo cng vic thit k, lp t, v s gip , hng dn nhit tnh ca thy gio TS. Nguyn Hong Nam, nhm 1 hon thnh c Li ni u
Trang 47
ti n 1: Thit k mch o nhit s dng board Arduino, hin th trn 4 led 7 thanh v truyn pht khng dy s dng module nRF24L01. Trong qu trnh thc hin, lp trnh cho mch o nhit , nhm gp phi nhiu kh khn khc nhau nh: do phi nghin cu nhiu ti liu nc ngoi, datasheets, dn n nhiu ch dch sai, dch nhm dn n p dng cc hm, cu lnh b sai ngha, cu trc, trong qu trnh vit code gp phi nhiu li pht sinh m khng tm ngay ra nguyn nhn cn u t thi gian gii quyt, nhiu linh kin rt kh tm c th vin chun lp trnh Qu trnh lp mch cng gp phi nhng kh khn nht nh tuy nhin nhm c gng gii quyt c vn pht sinh hon thnh c ti. Nhm hon thnh thit k, lp trnh v lp t mch o nhit s dng Arduino khng truyn pht trong vng 1 tun k t khi nhn ti v sau nghin cu trong 3 tun tip theo thc hin c chc nng truyn pht tn hiu nhit gia 2 board Arduino. Do y mi l ln u tin nhng thnh vin trong nhm lm mt ti n, cng vi kin thc cn nhiu hn ch, chng em t thy ti ca mnh thc hin c vn cn rt nhiu sai st, khim khuyt. Chng em rt mong c s ng h v gip ca thy gio ti chng em thc hin c hon thin hn v c thm nhiu ci tin ng k v ng dng tt hn vo thc tin.
H Ni, ngy 29 thng 11 nm 2013 Sinh vin thc hin
Ti liu tham kho
TI LIU THAM KHO
[1] Massimo Banzi, Getting Started with Arduino, OReilly Media, Inc, 2009. [2] Michael Margollis and Nicholas Weldin, Arduino Cookbook, OReilly Media, Inc, 2011. [3] http://arduino.cc/, truy nhp cui cng ngy 27/11/2013. [4] http://arduino4projects.com/, truy nhp cui cng ngy 6/10/2013. [5] http://randomnerdtutorials.com/, truy nhp cui cng ngy 6/10/2013. [6] http://techshowvn.com/, truy nhp cui cng ngy 6/10/2013. [7] http://www.airspayce.com/mikem/arduino/RF22/, truy nhp cui cng ngy 27/11/2013 [8] http://groups.google.com/group/rf22-arduino/, truy nhp cui cng ngy 26/11/2013 [9] http://electrodragon.com/, truy nhp cui cng ngy 19/11//2013. [10] http://blogembarcado.blogspot.de/, truy nhp cui cng ngy 29/11/2013. [11] http://arduino-info.wikispaces.com/Nrf24L01-2.4GHz-HowTo/, truy nhp cui cng ngy 20/12/2013. [12] http://www.youtube.com/channel/UCGSloFkUnaUknE- Z21gmmvw?feature=watch/, truy nhp cui cng ngy 20/12/2013. [13] http://www.mediafire.com/download/v6bn0a7g3ep3y7o/nRF24L01p.rar/, truy nhp cui cng ngy 20/12/2013.
Ph lc
PH LC
1. Code cho mch o nhit khng truyn pht c cnh bo nhit gii hn ngng trn v di.
const int digitPins[4] = {4,5,6,7}; const int clockPin = 11; const int latchPin = 12; const int dataPin = 13; const int tempPin = A0; const int ledpin1 = 3; const int ledpin2 = 2; const int buttonpin = 10; const byte digit[13] = { B00000011, //0 B10011111, //1 B00100101, //2 B00001101, //3 B10011001, //4 B01001001, //5 B01000001, //6 B00011011, //7 B00000001, //8 B00001001, //9 B00111001, //o Ph lc
B01100011, //C B01110001, //F }; int h[4] = {0}; int h2[4] = {0}; int vt = 0; int conv,conv1; float val; int ht; int state =0; int kt=125;
void loop() { for(vt=0;vt<4;vt++) { digitalWrite(digitPins[vt],HIGH); } if(kt==125) //Bien toi uu, cu 125 lan do thi moi hien thi 1 lan { val=analogRead(tempPin); //Doc gia tri tu cam bien tempC = (val*0.48828125); tempF = (tempC*1.8+32); kt=0;
state = digitalRead(buttonpin); //Xu ly gia tri oC if(state == LOW) { conv=tempC; //Tach tung chu so gia tri de dua ra led ht = conv/100; h[0] = (conv%100)/10; h[1] = ((conv%100)%10)/1; h[2] = 10; h[3]= 11; Ph lc
if(ht>0) //Hien thi so hang tram { h[2]=h[1]; h[1]=h[0]; h[0]=ht; } }
else if(state == HIGH) // Xu ly gia tri oF { conv=tempF; ht = conv/100; h[0] = (conv%100)/10; h[1] = ((conv%100)%10)/1; h[2] = 10; h[3]= 12;
if(ht>0) { h[2]=h[1]; h[1]=h[0]; h[0]=ht; } }
Ph lc
if(tempC>=uptemp) // Canh bao gioi han tren { digitalWrite(ledpin1, HIGH); delay(200); digitalWrite(ledpin1, LOW); delay(200); }
if(tempC<=downtemp) //Canh bao gioi han duoi { digitalWrite(ledpin2, HIGH); delay(200); digitalWrite(ledpin2, LOW); delay(200); } } kt++;
for(vt=0;vt<4;vt++) //Dua gia tri ra led { digitalWrite(latchPin,LOW); shiftOut(dataPin,clockPin,LSBFIRST,digit[h[vt]]); digitalWrite(latchPin,HIGH); digitalWrite(digitPins[vt],LOW); delay(1); Ph lc
digitalWrite(digitPins[vt],HIGH); } }
2. Code cho mch o nhit truyn pht s dng module nRF24L01 a. Code cho mch o v truyn tn hiu nhit (Transmitter): #include <SPI.h> #include <nRF24L01p.h>
nRF24L01p transmitter(7,8); // Khai bao chan CSN, CE
const int digitPins[4] = {2,3,4,5}; const int clockPin = 6; const int latchPin = 9; const int dataPin = 10; const int temppin = A0; const byte digit[13] = { B00000011, //0 B10011111, //1 B00100101, //2 B00001101, //3 B10011001, //4 B01001001, //5 B01000001, //6 B00011011, //7 Ph lc