Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 82 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
82
Dung lượng
5,07 MB
Nội dung
TR B NG H SPKT TP H CHệ MINH C NG HÒA Xẩ H I CH NGH A VI T NAM KHOA I N- I N T C L P - T DO - H NH PHÚC MÔN I N T CÔNG NGHI P ậ Y SINH o0o Tp HCM, ngày 05 tháng 10 n m 2018 NHI M V H tên sinh viên: Chuyên ngành: H đƠo t o: Khóa: ÁN T T NGHI P Ph m Quang Minh H V n Tr ng CNKT i n t - Truy n thông i h c quy 2014 MSSV: 14141195 MSSV: 14141338 Mã ngành: 141 Mư h : L p: 14141DT1 I TểN TẨI: THI T K VẨ THI CÔNG B THệ NGHI M VI X INTEL GALILEO II NHI M V LÝ GIAO TI P KIT Các s li u ban đ u: - - Thi t k vƠ thi công đ c b thí nghi m vi x lý hoƠn ch nh v i nh ng ch c n ng c b n nh : bƠn phím, led đ n, led đo n, LCDầ ho c nh ng ng d ng cao h n: giao ti p máy tính, u n đ ng c Xơy d ng bƠi t p thí nghi m giao ti p đ n gi n v i led đ n, led đo n, nút nh n, switch, bƠn phím ma tr n, LCD, chuy n đ i ADC N i dung th c hi n: - Tìm hi u v kit Intel Galileo, ph n m m Arduino, m ch giao ti p ngo i vi v i vi u n Thi t k ph n c ng b thí nghi m (thi t k m ch nguyên lý, m ch in, thi công) Xơy d ng bƠi th c hƠnh c b n, vi t ch ng trình th c thi vƠ ki m tra k t qu b thí nghi m Thu th p k t qu Ki m tra tính n đ nh c a h th ng Vi t báo cáo lu n v n Báo cáo đ tƠi t t nghi p III NGẨY GIAO NHI M V : 01/10/2018 IV NGẨY HOẨN THẨNH NHI M V : 05/01/2019 V H VẨ TểN CÁN B H NG D N: ThS Ngô Bá Vi t CÁN B H NG D N BM I NT CỌNG NGHI P ậ Y SINH i TR B NG H SPKT TP H CHệ MINH C NG HÒA Xẩ H I CH NGH A VI T NAM KHOA I N- I N T C L P - T DO - H NH PHÚC MÔN I N T CÔNG NGHI P ậ Y SINH o0o -Tp HCM, ngày 05 tháng 10 n m 2018 L CH TRỊNH TH C HI N ÁN T T NGHI P H tên sinh viên 1: Ph m Quang Minh L p: 14141DT1A MSSV: 14141195 H tên sinh viên 2: H V n Tr ng L p: 14141DT1A MSSV: 14141338 Tên đ tƠi: THI T K VẨ THI CÔNG B THệ NGHI M VI X LÝ S INTEL GALILEO Tu n/ngày N i dung - (01-06/10) - (22-27/10) (29/1003/11) đ tƠi, tên đ tƠi, th i gian lƠm vi c Duy t đ tƠi Vi t đ c - Tìm hi u t ng quan v kit Intel Galileo (15-20/10) - Xác nh n GVHD G p GVHD đ ph bi n quy đ nh: th c hi n ch n (08-13/10) D NG KIT ng cho đ tƠi Tìm hi u v cách th c l p trình vƠ biên d ch kit Intel Galileo Thi t k s đ kh i, gi i thích ch c n ng kh i Tính tốn l a ch n linh ki n cho t ng kh i Thi t k s đ nguyên lý vƠ gi i thích ho t đ ng c a m ch - Thi t k vƠ thi công t ng kh i nh m ch - L p trình ph n m m Arduino (05-10/11) (12-17/11) Mô ph ng, ch y ch ng trình t ng kh i đư thi cơng L p trình ph n m m Arduino Mơ ph ng, ch y ch ng trình t ng kh i đư thi cơng ii (19-24/11) (26/1101/12) L p trình ph n m m Arduino Mô ph ng, ch y ch ng trình t ng kh i đư thi cơng - Thi t k vƠ thi cơng mơ hình t ng h p kh i - Mô ph ng, ch y ch ng trình t ng h p kh i 10 (03-08/12) - Thi t k vƠ thi cơng mơ hình t ng h p kh i 11 (10-15/12) Ki m tra, hoƠn thi n mô hình, ch y th vƠ s a l i 12 (17-22/12) Vi t báo cáo 13 (24-29/12) Vi t báo cáo 14 (31/1205/01) - 15 (06-18/01) Mô ph ng, ch y ch ng trình t ng h p kh i HoƠn thi n, ch nh s a báo cáo g i cho GVHD đ xem xét góp ý l n cu i tr c in báo cáo N p quy n báo cáo vƠ lƠm Slide báo cáo GV H NG D N (Ký vƠ ghi rõ h vƠ tên) iii L I CAM OAN tƠi nƠy lƠ t th c hi n d a vƠo m t s tƠi li u tr chép t tƠi li u hay cơng trình đư có tr c vƠ khơng c Ng i th c hi n đ tƠi Ph m Quang Minh H V n Tr ng iv L IC M N hoƠn thƠnh đ tƠi nghiên c u nƠy, l i đ u tiên cho phép đ l i c m n chơn thƠnh đ n toƠn th quý th y Tr ng TP.HCM nói chung vƠ th y cô Khoa i nậ ng cg i i H c S Ph m K Thu t i n T nói riêng, nh ng i đư t n tình d y d , trang b cho nh ng ki n th c n n t ng vƠ ki n th c chuyên ngƠnh quan tr ng, giúp nhóm chúng tơi có đ c c s lý thuy t v ng vƠng vƠ đư t o u ki n giúp đ t t nh t cho chúng tơi q trình h c t p vƠ nghiên c u c bi t, xin chơn thƠnh c m n ThS Ngô Bá Vi t đư t n tình giúp đ , đ a nh ng đ nh h ng nghiên c u c ng nh h ng gi i quy t m t s v n đ đ chúng tơi có th th c hi n t t đ tƠi M c dù đư c g ng h t s c, song u ki n th i gian vƠ kinh nghi m th c t c a chúng tơi ít, đ tƠi khơng th tránh kh i thi u sót Vì v y, chúng tơi r t mong nh n đ c s đóng góp ý ki n c a quý th y, cô giáo Xin chơn thƠnh c m n! TP.HCM, ngày 05 tháng 01 n m 2019 Sinh viên th c hi n Ph m Quang Minh H V n Tr ng v M CL C NHI M V ÁN T T NGHI P .i L CH TRỊNH TH C HI N ÁN T T NGHI P ii L I CAM OAN iv L IC M N v M C L C vi LI T Kể HỊNH NH viii LI T Kể B NG .xi DANH SÁCH CÁC T VI T T T xii TịM T T xiii Ch 1.1 ng T NG QUAN TV N 1.2 M C TIểU .1 1.3 N I DUNG NGHIểN C U 1.4 GI I H N 1.5 B C C Ch 2.1 ng C S LÝ THUY T KHÁI QUÁT V VI X Lụ ậ VI I U KHI N 2.1.1 Vi x lý vƠ vi u n 2.1.2 H th ng u n tích h p (SoC) 2.2 TRUY N D LI U CHU N I2C .5 2.3 TRUY N D LI U CHU N SPI 2.4 TRUY N D LI U CHU N 1-WIRE .9 2.5 PH N M M ARDUINO 10 2.6 GI I THI U PH N C NG 11 Ch 2.6.1 B x lý trung tơm - Intel Galileo Gen 11 2.6.2 Thi t b đ u vƠo 14 2.6.3 Thi t b đ u 16 2.6.4 Thi t b th i gian th c DS1307 26 ng TệNH TOÁN VẨ THI T K 28 3.1 GI I THI U 28 3.2 TÍNH TỐN VẨ THI T K H TH NG 28 vi 3.3 Ch 3.2.1 Thi t k s đ kh i h th ng 28 3.2.2 Tính tốn vƠ thi t k m ch 29 S NGUYểN Lụ TOẨN M CH 38 ng THI CÔNG H TH NG 39 4.1 GI I THI U 39 4.2 THI CÔNG H TH NG 39 4.3 4.4 4.5 Ch 5.1 5.2 Ch 6.1 6.2 4.2.1 Thi công bo m ch h th ng 39 4.2.2 L p ráp vƠ ki m tra 42 ịNG GịI VẨ THI CỌNG MỌ HỊNH 44 4.3.1 óng gói, thi t k mơ hình 44 4.3.2 Thi công mơ hình 44 L P TRỊNH H TH NG 46 4.4.1 L u đ gi i thu t 46 4.4.2 Ph n m m l p trình cho Intel Galileo Gen 48 VI T TẨI LI U H ng NG D N S K T QU NH N XÉT D NG, THAO TÁC 51 ÁNH GIÁ 55 K T QU 55 5.1.1 K t qu nghiên c u 55 5.1.2 K t qu thi công 55 NH N XÉT ậ ng ÁNH GIÁ 56 K T LU N VẨ H NG PHÁT TRI N 57 K T LU N 57 6.1.1 u m 57 6.1.2 Khuy t m 57 H NG PHÁT TRI N TẨI 58 TẨI LI U THAM KH O 59 PH L C 60 vii LI T Kể HÌNH NH Hình Trang Hình 2.1: Mơ hình truy n d li u chu n I2C Hình 2.2: Quá trình thi t b ch ghi d li u vƠo thi t b t Hình 2.3: Quá trình thi t b ch đ c d li u vƠo thi t b t Hình 2.4: Mơ hình truy n d li u chu n SPI Hình 2.5: Mơ hình truy n d li u chu n 1-Wire .9 Hình 2.6: D ng sóng q trình truy n nh n d li u chu n 1-Wire 10 Hình 2.7: Bi u t ng ph n m m Arduino 10 Hình 2.8: Giao di n ph n m m Arduino 11 Hình 2.9: M t kit Intel Galileo Gen 12 Hình 2.10: M t d i kit Intel Galileo Gen 12 Hình 2.11: S đ nguyên lý chip x lý trung tơm kit 13 Hình 2.12: S đ b trí chơn I/O kit Intel Galileo Gen 13 Hình 2.13: Ma tr n phím 4x4 ngoƠi th c t 14 Hình 2.14: C m bi n LM35 ngoƠi th c t 15 Hình 2.15: Led đo n đơi ngoƠi th c t 16 Hình 2.16: LCD 16x2 ngoƠi th c t 16 Hình 2.17: S đ chơn LCD 16x2 17 Hình 2.18: Led ma tr n 8x8 ngoƠi th c t 18 Hình 2.19: S đ chơn led ma tr n 8x8 19 Hình 2.20: IC 74HC595 ngoƠi th c t 19 Hình 2.21: S đ chơn IC 74HC595 20 Hình 2.22: C u trúc bên IC 74HC595 21 Hình 2.23: IC 74HC138 ngoƠi th c t 22 Hình 2.24: S đ chơn IC 74HC138 22 Hình 2.25: IC L298 ngoƠi th c t 25 Hình 2.26: S đ chơn IC L298 25 Hình 2.27: IC DS1307 ngoƠi th c t 26 Hình 2.28: S đ chơn IC DS1307 26 Hình 2.29: a ch ghi IC DS1307 27 viii Hình 3.1: S đ kh i c a h th ng 28 Hình 3.2: S đ nguyên lý c a kh i x lý trung tơm 29 Hình 3.3: S đ nguyên lý kh i nút nh n đ n 31 Hình 3.4: S đ nguyên lý kh i ma tr n phím 4x4 32 Hình 3.5: S đ nguyên lý kh i led đ n 33 Hình 3.6: S đ nguyên lý kh i led đo n 33 Hình 3.7: Transistor A1015 ngoƠi th c t 34 Hình 3.8: S đ nguyên lý kh i LCD 16x2 35 Hình 3.9: S đ nguyên lý kh i led ma tr n 8x8 35 Hình 3.10: S đ nguyên lý kh i c m bi n nhi t đ 36 Hình 3.11: S đ nguyên lý kh i th i gian th c 36 Hình 3.12: S đ nguyên lý kh i đ ng c 36 Hình 3.13: S đ nguyên lý kh i ngu n 37 Hình 3.14: Adapter 12V ậ 2A 37 Hình 3.15: S đ nguyên lý kh i switch giao ti p 38 Hình 4.1: M ch in PCB l p d i 39 Hình 4.2: M ch in PCB l p 40 Hình 4.3: S đ b trí linh ki n 40 Hình 4.4: Board thí nghi m m t d i 43 Hình 4.5: Board thí nghi m m t 43 Hình 4.6: Mơ hình t ng th 44 Hình 4.7: Mơ hình nhìn t xu ng 45 Hình 4.8: M t tr c mơ hình 45 Hình 4.9: M t hơng mơ hình 45 Hình 4.10: L u đ ho t đ ng toƠn b h th ng 46 Hình 4.11: L u đ u n b ng nút nh n, ma tr n phím 47 Hình 4.12: L u đ hi n th 47 Hình 4.13: Trang ch Arduino 49 Hình 4.14: Bi u t ng ph n m m Arduino 49 Hình 4.15: Giao di n ph n m m Arduino 49 ix Hình 4.16: Giao di n ch c n ng m c Tools 50 Hình 4.17: H p tho i Boards Manager 50 Hình 4.18: Giao di n ph n m m ti n hƠnh ch n kit Intel Galileo Gen 51 Hình 4.19: B x lý trung tơm vƠ board thí nghi m đư k t n i 51 Hình 4.20: V trí nút BTN_NGUON board thí nghi m 52 Hình 4.21: K t n i cáp Micro USB gi a b x lý trung tơm v i máy tính 52 Hình 4.22: Giao di n ph m m m ti n hƠnh ch n kit giao ti p 53 Hình 4.23: Giao di n ph n m m ch n c ng COM giao ti p 53 Hình 4.24: Báo hi u giao ti p thƠnh cơng v i kit Hình 4.25: Bi u t ng cơng c biên d ch ch Hình 4.26: Báo hi u biên d ch ch Hình 4.27: Bi u t i bên ph i 53 ng trình 53 ng trình hoƠn t t vƠ khơng có l i 54 ng công c n p ch Hình 4.28: Báo hi u n p ch góc d ng trình 54 ng trình thƠnh cơng 54 Hình 4.29: Board thí nghi m sau n p ch ng trình 54 Hình 5.1: Mơ hình b thí nghi m 55 Hình 5.2: B x lý trung tơm 56 x CH NG K T QU Ch 5.1 NH N XÉT ÁNH GIÁ ng K T QU NH N XÉT ÁNH GIÁ K T QU 5.1.1 K t qu nghiên c u Trong trình nghiên c u vƠ th c hi n đ tƠi g n tháng, đư đ t đ c k t qu nh sau: Tìm hi u vƠ nghiên c u t ng quan c u t o, ch c n ng c a kit Intel Galileo Gen Thi t k vƠ thi công hoƠn thi n b thí nghi m, t ng h p đ c nhi u kh i m t board m ch Bi t cách s d ng ph n m m thi t k m ch nh Altium Designer v i ph n m m l p trình cho kit Intel Galileo Gen Xơy d ng đ c bƠi t p thí nghi m đ n gi n ho t đ ng nh mong mu n board m ch 5.1.2 K t qu thi cơng Qua q trình thi t k ph n c ng, ch n l a linh ki n lên ý t mơ hình, d i đơy lƠ k t qu mƠ đư th c hi n đ ng hoƠn thi n c: Hình 5.1: Mơ hình b thí nghi m B MƠN I N T CƠNG NGHI P ậ Y SINH 55 CH NG K T QU NH N XÉT ÁNH GIÁ Hình 5.2: B x lý trung tâm NH N XÉT ậ ÁNH GIÁ 5.2 Sau th i gian nghiên c u, thi công đ án t t nghi p c a nhóm v i đ tƠi “Thi t k vƠ thi công b thí nghi m vi x lỦ giao ti p kit Intel Galileo” đư hoƠn thi n Nhìn chung, mơ hình đư ho t đ ng n đ nh, có th lƠm vi c liên t c, đ t 90% yêu c u đ ban đ u Ng an toàn cho ng i dùng thao tác đ n gi n, d s d ng H th ng đ m b o i dùng H th ng s d ng ngu n c p nh nên an toƠn cho ng i s d ng tr c nguy c n gi t Th i gian đáp ng t nh n nút nh n tr c ti p nhanh Th i gian đáp ng n p ch ng trình cho đ n m ch ho t đ ng tùy thu c máy tính ng i s d ng Tuy nhiên, s h n ch v ki n th c vƠ th i gian th c hi n, ngu n tƠi li u tham kh o ch y u thông qua Internet vƠ m t s giáo trình tham kh o nên đ tƠi khơng tránh kh i sai sót vƠ m t s h n ch : - H n ch l n nh t lƠ ch a có đ c ngu n n d tr đ cung c p cho h th ng ho t đ ng b m t ngu n - Vì u ki n kinh phí vƠ th i gian có h n, nên nhóm ch th c hi n mơ hình mang tính t B MƠN I N T ng đ i CÔNG NGHI P ậ Y SINH 56 CH NG K T LU N VẨ H Ch NG PHÁT TRI N ng K T LU N VẨ H NG PHÁT TRI N K T LU N 6.1 V i nh ng m c tiêu đư đ ra, đ tƠi đư gi i quy t vƠ hoƠn thƠnh đ c nh ng m c tiêu đ t ban đ u nh : - Tìm hi u t ng quan: c u t o ph n c ng, ch c n ng chơn c a dòng kit Intel Galileo mang tính ng d ng cao - Thi t k vƠ thi công đ c b thí nghi m vi x lý hoƠn ch nh v i nh ng ch c n ng c b n nh : bƠn phím, led đ n, led đo n, LCDầ ho c nh ng ng d ng cao h n: giao ti p máy tính, u n đ ng c - Xơy d ng bƠi t p thí nghi m giao ti p đ n gi n v i led đ n, led đo n, nút nh n, bƠn phím ma tr n, LCD, chuy n đ i ADCầ - Mô hình h th ng d s d ng, ti n l i, đáp ng nhu c u c n thi t v s d ng thi t b c a ng - 6.1.1 - i dùng Ph n m m mi n phí, có s n Internet u m Ph n c ng đ c thi t k nh g n, đ n gi n, d s d ng, mơ hình đ c trang trí đ p, tr c quan - Cách th c u n vƠ giao ti p v i mơ hình đ n gi n v i ng - Chi phí c a h th ng i l p trình m c trung bình vƠ đáp ng g n nh đ y đ yêu c u đ t 6.1.2 Khuy t m Dù đư r t c g ng hoƠn thƠnh đ tƠi m t cách t t nh t có th nhiên h th ng v n m t vƠi khuy t m sau: - Các kh i hi n th ch a đ t hi u su t hi n th t i đa, kh i led matrix 8x8 nh p nháy liên t c khó quan sát, ch a th k t h p kh i khác - Kh i LCD 16x2 vƠ kh i led đo n hi n th lúc hi u su t hi n th kém, led đo n nh p nháy liên t c nh ng s d ng đ c l p t ng đ i n đ nh B N p ch ng trình vƠo kit Intel Galileo Gen x y nhi u l i MÔN I N T CÔNG NGHI P ậ Y SINH 57 CH NG K T LU N VẨ H - NG PHÁT TRI N Ki n th c, th i gian c ng nh kinh phí h n ch nên mơ hình khơng đ ct i u 100% H 6.2 NG PHÁT TRI N V i mong mu n đ a đ n cho ng có th TÀI i s d ng m t b thí nghi m hoƠn thi n đ ng d ng th c ti n h n, xin đ c đ a m t s ý ki n phát tri n cho đ tƠi nh sau: - NgoƠi ph n m m Arduino IDE đ c s d ng đ tƠi có th l p trình thêm ph n m m có th l p trình cho kit Intel Galileo Gen nh Linux ho c Mac OS X - M r ng thêm nhi u port đ t ng s thi t b ngo i vi nh m t ng tính ng d ng cho b thí nghi m - Trong đ tƠi nƠy, s d ng ph n m m Arduino IDE đ l p trình kit Intel Galileo Gen 2, th ngoƠi kit mƠ đ tƠi s d ng có th dùng kit Arduino UNO R3 đ l p trình thay th t B MƠN I N T CÔNG NGHI P ậ Y SINH ng ng 58 TẨI LI U THAM KH O TẨI LI U THAM KH O [1] Nguy n ình Phú, “Giáo trình vi u n PIC 16F887”, Xu t b n H SPKT TP.HCM, n m 2014 [2] Ph m V n Khích, “Thi t k b thí nghi m PIC 18F2455/2550/5555/4550”, NCKH c p tr ng, tr ng HSPKT, TP.HCM, tháng 10 n m 2008 [3] Nguy n V n Bình, “Thi t k nhà thơng minh dùng vi u n PIC án t t nghi p, tr 16F887”, [4] Tr n Anh ng HSPKT, TP.HCM, n m 2014 , Tr n S n LƠnh, “H th ng m danh b ng vân tay ng d ng vi u n ARM”, án t t nghi p, tr ng HSPKT, TP.HCM, tháng n m 2016 [5] Hu nh Công ThƠnh, Nguy n Trung Vinh, “ ng d ng kit Raspberry nh n d ng m t ng [6] án t t nghi p, tr i”, ng HSPKT, TP.HCM, tháng n m 2016 Ti n Anh, Lâm Thanh Sang, “Thi t k h th ng u n giám sát thi t b qua webserver s d ng kit Intel Edison”, án t t nghi p, tr ng HSPKT, TP.HCM, tháng 07 n m 2018 [7] Nguy n ình Phú, “Giáo trình th c hành vi u n PIC”, Xu t b n H SPKT TP.HCM, tháng 08 n m 2016 [8] Tr n Thu HƠ (ch biên), Tr Th Tuy t ng Th Bích NgƠ, Nguy n Th L an, Phù Th Ng c Hi u, D b n”, NXB ng, Bùi ng Th C m Tú, “Giáo trình i n t c i h c Qu c gia TP.HCM, 2014 [9] Lê Hi u, “Vi u n, Vi x lý ?”, thegioiic.com/forums/vi-dieukhien-vi-xu-ly-la-gi, 19 tháng 03 n m 2012 [10] MSP430, “Gi i thi u giao th c SPI”, electronicctu.net/Thread-Chuangiao-tiep-SPI.html, 26 tháng n m 2012 [11] ụ t ng nhanh, “Chu n giao ti p 1-Wire”, ytuongnhanh.vn/chi-tiet/chuan- giao-tiep-1-wire-156.html, n m 2017 B MÔN I N T CÔNG NGHI P ậ Y SINH 59 PH L C PH L C Các bƠi t p thí nghi m giao ti p đ n gi n vƠ k t qu thu đ Bài 1: o vƠ hi n th nhi t đ bên trái hƠng c a LCD HƠng hi n th ch “NHIET DO PHONG:”.Có nút nh n l n l BTN1: nh n l n nhi t đ hi n th đ hi n th c t v i ch c n ng nh sau: bên ph i hƠng c a LCD, nh n l n nhi t bên trái hƠng c a LCD vƠ l p l i BTN2: Nh n l n sáng led bên ph i, nh n l n sáng led bên trái, nh n l n led sáng xen k , nh n l n led t t vƠ l p l i BTN3: Nh n l n đ ng c ho t đ ng, nh n l n đ ng c ng ng vƠ l p l i BTN4: Thay đ i c p t c đ đ ng c (2 c p) Code ch ng trình: //DIEU KHIEN LED DON int SHCP_LEDDON = 0; int STCP_LEDDON = 8; int G_3M =6; int DS_LEDDON = 1; //DIEU KHIEN NUT NHAN DON const int nutnhan4 = A3; const int nutnhan3 = A2; const int nutnhan2 = 2; const int nutnhan1 = 3; //DIEU KHIEN DONG CO int input1 = 5;//PWM int input2 = 4; int E_L298 = A1; //DIEU KHIEN LCD VA CAM BIEN NHIET DO #include #include LiquidCrystal lcd(7); int cambien = A0; void setup() { //KHOI TAO DONG CO pinMode(input1,OUTPUT); B MÔN I N T CÔNG NGHI P ậ Y SINH 60 PH L C pinMode(input2,OUTPUT); pinMode(E_L298,OUTPUT); digitalWrite(E_L298,LOW); digitalWrite(input1,LOW); digitalWrite(input2,LOW); digitalWrite(E_L298,HIGH); //KHOI TAO LCD VA CAM BIEN NHIET DO analogReadResolution(12); Wire.begin(); lcd.initSPI(7); pinMode(G_3M,OUTPUT); digitalWrite(G_3M,LOW); lcd.begin(16, 2); lcd.clear(); lcd.print(" NHIET DO PHONG:"); //KHOI TAO LED DON pinMode(DS_LEDDON,OUTPUT); pinMode(STCP_LEDDON,OUTPUT); pinMode(SHCP_LEDDON,OUTPUT); pinMode(G_3M,OUTPUT); digitalWrite(G_3M,LOW); xuat_8led(0x00); //KHOI TAO NUT NHAN DON pinMode(nutnhan4,INPUT); pinMode(nutnhan1,INPUT); pinMode(nutnhan2,INPUT); pinMode(nutnhan3,INPUT); digitalWrite(nutnhan4,HIGH); digitalWrite(nutnhan1,HIGH); digitalWrite(nutnhan2,HIGH); digitalWrite(nutnhan3,HIGH); delay(100);} //KIEM TRA VA CHONG DOI NUT NHAN DON int ktnutnhan(int chan){ if(!digitalRead(chan)){ delay(20); if(!digitalRead(chan)){ B MÔN I N T CÔNG NGHI P ậ Y SINH 61 PH L C while(!digitalRead(chan)); return 0;}} return 1;} //XUAT DU LIEU LED DON void xuat_byte( byte bytexuat) {shiftOut(DS_LEDDON, SHCP_LEDDON, MSBFIRST, bytexuat); } void xuat_8led( byte y0) { xuat_byte(y0); digitalWrite(STCP_LEDDON,LOW); digitalWrite(STCP_LEDDON,HIGH);} //XUAT DU LIEU DONG CO void dongco_quaythuan(){ digitalWrite(input1,HIGH); digitalWrite(input2,LOW);} void dongco_quaynghich(){ digitalWrite(input1,LOW); digitalWrite(input2,HIGH);} void dongco_dungquay(){ digitalWrite(input1,LOW); digitalWrite(input2,LOW);} void dongco_thaydoi_tocdo(int speed) { speed = constrain(speed, 0, 255); analogWrite(input1, speed); digitalWrite(input2, LOW);} int tt1=0,tt2=0,tt3=0,tt4=0; void loop() { //DOC GIA TRI CAM BIEN NHIET DO int giatri = analogRead(cambien); float nhietdo = giatri * ((5.0*100/4096)); //KIEM TRA TRANG THAI NUT NHAN DON int buttonStatus1 = ktnutnhan(nutnhan1); int buttonStatus2 = ktnutnhan(nutnhan2); int buttonStatus3 = ktnutnhan(nutnhan3); int buttonStatus4 = ktnutnhan(nutnhan4); //TANG CAP TOC DO DONG CO if (buttonStatus4 == LOW) { B MÔN I N T CÔNG NGHI P ậ Y SINH 62 PH L C tt4=tt4+30; if(tt4>50){tt4=0;}} //TAT/MO DONG CO if (buttonStatus3 == LOW) {tt3=tt3+1;if(tt3>1) {tt3=0;}} if(tt3==0){dongco_dungquay();tt4=0;} if(tt3==1){dongco_thaydoi_tocdo(20+tt4);} //HIEN THI LED if (buttonStatus2 == LOW) { tt2=tt2+1; if(tt2>3) {tt2=0;}} if(tt2==0){xuat_8led(0x00);} if(tt2==1){xuat_8led(0x0f);} if(tt2==2){xuat_8led(0xf0);} if(tt2==3){xuat_8led(0xaa);} //HIEN THI NHIET DO RA LCD if (buttonStatus1 == LOW) { tt1=tt1+1; if(tt1>1) {tt1=0;}} if(tt1==0){ lcd.setCursor(0, 1); lcd.print(nhietdo,2); lcd.write(223); lcd.print("C"); lcd.setCursor(7, 1); lcd.print(" "); } else { lcd.setCursor(8, 1); lcd.print(nhietdo,2); lcd.write(223); lcd.print("C"); lcd.setCursor(0, 1); lcd.print(" B MÔN I N T "); }} CÔNG NGHI P ậ Y SINH 63 PH L C Quan sát k t qu b thí nghi m: B K t qu thu đ c b thí nghi m nh n BTN1 l n nh hình d i K t qu thu đ c b thí nghi m nh n BTN1 l n nh hình d i K t qu thu đ c b thí nghi m nh n BTN2 l n nh hình d i MÔN I N T CÔNG NGHI P ậ Y SINH 64 PH L C K t qu thu đ c b thí nghi m nh n BTN2 l n nh hình d i K t qu thu đ c b thí nghi m nh n BTN2 l n nh hình d i Bài 2: Code ch ng h th i gian th c hi n th led đo n ng trình: #include const int DS_7DOAN = 10; const int STCP_7DOAN = 9; const int SHCP_7DOAN = 12; const int G_3M = 6; int ma7doan[10]= {0XC0,0XF9,0xA4,0XB0,0X99,0X92,0X82,0XF8, 0X80,0X90}; int thutuled[6]={0xfd,0xfb,0xf7,0xef,0xdf,0xbf}; int led7[6]={0xff,0xff,0xff,0xff,0xff,0xff}; B MÔN I N T CÔNG NGHI P ậ Y SINH 65 PH L C // int giay, phut, gio, thu, ngay, thang, nam; int bcd2dec(byte num) { return ((num/16 * 10) + (num % 16)); } int dec2bcd(byte num) { return ((num/10 * 16) + (num % 10)); } void nap_thoi_gian_ds1307(byte hr,byte min,byte sec,byte wd,byte d,byte mth,byte yr){ Wire.beginTransmission(0x68); Wire.write(byte(0x00)); // đ t l i pointer Wire.write(dec2bcd(sec)); Wire.write(dec2bcd(min)); Wire.write(dec2bcd(hr)); Wire.write(dec2bcd(wd)); // day of week: Sunday = 1, Saturday = Wire.write(dec2bcd(d)); Wire.write(dec2bcd(mth)); Wire.write(dec2bcd(yr)); Wire.endTransmission(); } void doc_thoi_gian_ds1307() { Wire.beginTransmission(0x68); Wire.write((byte)0x00); Wire.endTransmission(); Wire.requestFrom(0x68, 7); giay = bcd2dec(Wire.read() & 0x7f); phut = bcd2dec(Wire.read() ); gio = bcd2dec(Wire.read() & 0x3f); // ch đ 24h thu = bcd2dec(Wire.read() ); = bcd2dec(Wire.read() ); thang = bcd2dec(Wire.read() ); B MÔN I N T CÔNG NGHI P ậ Y SINH 66 PH L C nam = bcd2dec(Wire.read() ); nam += 2000;} // void setup() { Wire.begin(); pinMode(DS_7DOAN,OUTPUT); pinMode(STCP_7DOAN,OUTPUT); pinMode(SHCP_7DOAN,OUTPUT); pinMode(G_3M,OUTPUT); digitalWrite(G_3M, LOW); delay(100); //nap_thoi_gian_ds1307(16,21,00,3,18,12,18); } void xuat_1byte(unsigned int bytexuat) { shiftOut(DS_7DOAN, SHCP_7DOAN, MSBFIRST, bytexuat); } void xuat_led_7doan_quet_1( int y1,int y0) { xuat_1byte(y1); xuat_1byte(y0); digitalWrite(STCP_7DOAN,LOW); digitalWrite(STCP_7DOAN,HIGH); } void xuat_led_7doan_quet_tat() { xuat_led_7doan_quet_1( 0xff,0xff); } void xuat_led_7doan_quet_2( int y1,int y0) { xuat_1byte(thutuled[y1]); xuat_1byte(y0); digitalWrite(STCP_7DOAN,LOW); digitalWrite(STCP_7DOAN,HIGH); } void xuat_led_quet_tatca(){ for(int i =0;i