ARDUINO-Do an Mach Nhiet Do

Embed Size (px)

DESCRIPTION

DO an Arduino

Citation preview

  • 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 (oC) trn mch o nhit .................. 35

    Hnh 2.6. Hin th nhit thang Fahrenheit (oF) 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 (oF) 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 (XXoC hoc

    XXoF), do mn hin th ch c 4 led 7 thanh nn khi nhit ln hn 100o th hin th:

    ch s hng trm, hng chc, hng n v ca gi tr nhit , k hiu nhit (XXXo).

    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

  • 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

  • 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 (oC):

  • 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 (oC) trn mch o nhit .

    + Chc nng hin th nhit thang Fahrenheit (oF):

  • 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 (oF) 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 15oC, 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 15oC.

  • 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 oC v thang oF 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 (oC). - C cng tc hin th tham kho nhit thang Fahrenheit (oF) 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

  • 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

  • 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

    #include

    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

  • 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

  • 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

  • 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