You are on page 1of 62

i

TRNG I HC BCH KHOA H NI


KHOA IN
====o0o====

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;

float tempC, tempF, uptemp= 50, downtemp=17;

void setup()
{
pinMode(ledpin1,OUTPUT);
pinMode(ledpin2,OUTPUT);
pinMode(10,INPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(tempPin, INPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
Ph lc

pinMode(dataPin, OUTPUT);
}


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

B00000001, //8
B00001001, //9
B00111001, //o
B01100011, //C
B01110001, //F
};

int h[4] = {0};
int vt = 0;
int conv;
int ht;
int kt=125;
float val, temp, tempF;

void setup()
{
delay(150);
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("---------------");

Ph lc

pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(temppin, INPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}

void loop()
{
for(vt=0;vt<4;vt++)
digitalWrite(digitPins[vt],HIGH);

if(kt==125)
{
{
val=analogRead(temppin); // Doc gia tri tu cam bien
temp = (val*0.48828125);
tempF = (temp*1.8+32);
kt=0;
}
Serial.println("Nhiet do: ");
Serial.print(temp);
Serial.println(" oC");
Ph lc

Serial.print(tempF);
Serial.println(" oF");
Serial.println("--------");
Serial.println("Dang gui du lieu...");
{
transmitter.txPL(temp); //Gui du lieu
transmitter.txPL(tempF);
transmitter.send(SLOW);
Serial.println("Da gui.");
Serial.println("--------");
}
conv=temp;
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;
}
}
kt++;
Ph lc


for(vt=0;vt<4;vt++) // Xuat ra led
{
digitalWrite(latchPin,LOW);
shiftOut(dataPin,clockPin,LSBFIRST,digit[h[vt]]);
digitalWrite(latchPin,HIGH);
digitalWrite(digitPins[vt],LOW);
delay(1);
digitalWrite(digitPins[vt],HIGH);
}
}

b. Code cho mch nhn v hin th gi tr nhit (Receiver):
#include <SPI.h>
#include <nRF24L01p.h>

nRF24L01p receiver(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 byte digit[13] =
{
B00000011, //0
B10011111, //1
Ph lc

B00100101, //2
B00001101, //3
B10011001, //4
B01001001, //5
B01000001, //6
B00011011, //7
B00000001, //8
B00001001, //9
B00111001, //o
B01100011, //C
B01110001, //F
};
int h[4] = {0};
int vt = 0, conv, ht, time;
float temp, tempF, Wtemp=35;
void setup()
{
delay(150);
Serial.begin(115200);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
receiver.channel(90);
receiver.RXaddress("Artur");
receiver.init();
Serial.print("Led nhap nhay canh bao khi T* > ");
Serial.print(Wtemp);
Ph lc

Serial.println(" oc");
Serial.println("---------------");
Serial.println("Dang nhan du lieu...");
Serial.println("---------------");

pinMode(10,INPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}

void loop()
{
for(vt=0;vt<4;vt++)
digitalWrite(digitPins[vt],HIGH);

if(receiver.available())
{
{
receiver.read(); // Nhan du lieu
receiver.rxPL(temp);
receiver.rxPL(tempF);
Ph lc

Serial.println("Nhiet do da nhan: ");
Serial.print(temp);
Serial.println(" oC");
Serial.print(tempF);
Serial.println(" oF");
Serial.println("--------");
}

conv=temp;
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;
}

//Canh bao gioi han:
time=1;
if(temp>Wtemp)
{
Ph lc

time=250;
}
}

for(vt=0;vt<4;vt++) // Xuat ra led
{
digitalWrite(latchPin,LOW);
shiftOut(dataPin,clockPin,LSBFIRST,digit[h[vt]]);
digitalWrite(latchPin,HIGH);
digitalWrite(digitPins[vt],LOW);
delay(time);
digitalWrite(digitPins[vt],HIGH);
}
}

You might also like