Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 96 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
96
Dung lượng
5,02 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỀU KHIỂN -TĐH THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT SẢN XUẤT GVHD: SVTH: DƯƠNG VĂN LỰC SKL 0 Tp Hồ Chí Minh, 2017 MỤC LỤC Nhiệm vụ đồ án…………………………………………………………………… i Lịch trình ……………………………………………………………………………ii Cam đoan ………………………………………………………………………… iv Lời cảm ơn………………………………………………………………………… v Mục lục…………………………………………………………………………… vi Danh mục hình ảnh ……………………………………………………………….viii Danh mục bảng ………………………………………………………………….xiii Tóm tắt ………………………………………………………………… ……xiv Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC .2 Chương CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU BẢNG ĐIỆN TỬ QUẢN LÍ SẢN XUẤT 2.2 GIỚI THIỆU MUDULE LORA 2.2.1 Giới thiệu chân AUX 2.2.2 Các chế độ truyền lora 10 2.3 Giới thiệu vi điều khiển AVR 11 2.3.1 Hoạt động AVR 12 2.3.2 Kiến trúc vi điều khiển Atmega32 .12 2.3.3 Một số đặc tính Atmega32 13 2.3.4 Ngắt AVR 14 2.3.5 Tổng quan Timer/Counter chip Atmega32 .18 2.3.6 Truyền thông nối tiếp không đồng với AVR (UART) 19 2.3.7 Chuẩn giao tiếp I2C 20 2.4 CẢM BIẾN NHIỆT ĐỘ DS18B20 21 2.5 IC MAX7219 23 2.6 GIỚI THIỆU IC 74HC595 .24 2.7 MODULE THỜI GIAN THỰC DS1307 25 2.8 MẠCH CHUYỂN USB UART CP2102 26 Chương TÍNH TỐN VÀ THIẾT KẾ 27 3.1 GIỚI THIỆU 27 vi 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG .28 3.2.1 Thiết kế sơ đồ khối hệ thống 28 3.2.2 Tính tốn thiết kế mạch 31 3.2.3 Sơ đồ nguyên lý toàn mạch 46 Chương THI CÔNG HỆ THỐNG 48 4.1 GIỚI THIỆU 48 4.2 THI CÔNG HỆ THỐNG 48 4.2.1 Thi công bo mạch 48 4.2.2 4.3 Lắp ráp kiểm tra 55 ĐĨNG GĨI VÀ THI CƠNG MƠ HÌNH 59 4.3.1 Đóng gói điều khiển 59 4.3.2 4.4 Thi cơng mơ hình 60 LẬP TRÌNH HỆ THỐNG .60 4.4.1 Lưu đồ giải thuật .60 4.4.2 Phần mềm lập trình cho vi điều khiển 64 4.4.3 Phần mềm lập trình cho máy tính .66 4.5 TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 68 4.5.1 Tài liệu hướng dẫn sử dụng 68 4.5.2 Quy trình thao tác .68 Chương KẾT QUẢ - NHẬN XÉT - ĐÁNH GIÁ 71 5.1 KẾT QUẢ 71 5.1.1 Những vấn đề nghiên cứu 71 5.1.2 Những vấn đề hoàn thành 71 5.2 NHẬN XÉT .72 5.3 ĐÁNH GIÁ 72 Chương KẾT LUẬN – HƯỚNG PHÁT TRIỂN 74 6.1 KẾT LUẬN 74 6.1.1 Ưu điểm đề tài 74 6.1.2 Hạn chế đề tài .74 6.2 HƯỚNG PHÁT TRIỂN 75 TÀI LIỆU THAM KHẢO 76 PHỤ LỤC… 77 vii DANH MỤC HÌNH ẢNH Hình 2.1: Bảng điện tử quản lí sản xuất…………… ………………………………….4 Hình 2.2: Phạm vi ứng dụng cơng nghệ truyền thơng RF LoRa………….…………5 Hình 2.3: AS-TTL-100……………………………………………………… ………5 Hình 2.4: Mô tả hoạt động chân AUX việc truyền liệu………………….9 Hình 2.5: Mơ tả hoạt động chân aux cấu hình…………………………………9 Hình 2.6: Chế độ truyền điểm - điểm………………………………………………… 10 Hình 2.7: Chế độ truyền cố định……………………………………………………….10 Hình 2.8: Hình thức truyền broadcast………………………………………………….11 Hình 2.9: Sơ đồ chân Atmega32………………………………………………… 13 Hình 2.10 : Hoạt động ngắt…………………………………………………………….15 Hình 2.11: Thanh ghi điều khiển MCU – MCUCR……………………………………17 Hình 2.12 : Thanh ghi điều khiển MCU – MCUCSR………………………………….17 Hình 2.13: Thanh ghi điều khiển ngắt chung – GICR………………………………….18 Hình 2.14: Thanh ghi cờ ngắt chung – GIFR………………………………………… 18 Hình 2.15: Tín hiệu theo chuẩn RS232 UART…………………………………… 20 Hình 2.16: Ví dụ giao tiếp I2C…………………………………………………… 21 Hình 2.17 : Cảm biến DS18B20……………………………………………………….22 Hình 2.18: Cấu trúc vùng nhớ mã ROM 64 bit DS18B20…………………………23 Hình 2.19: Sơ đồ vùng nhớ DS18B20…………………………………………………23 Hình 2.20: Sơ đồ chân MAX7219 (dạng DIP)…………………………………………23 Hình 2.21: Sơ đồ chân 74HC595………………………………………………………25 Hình 2.22: Module DS1307 + 24C32………………………………………………….26 viii Hình 2.23: CP2102…………………………………………………………………….27 Hình 3.1: Sơ đồ khối trạm con…………………………………………………………29 Hình 3.2: Sơ đồ khối trạm chính………………………………………………………30 Hình 3.3: Sơ đồ khối trạm pc………………………………………………………… 30 Hình 3.4: Sơ đồ khối tồn hệ thống quản lý dây chuyền sản xuất…………….…… 31 Hình 3.5: Vi điều khiển atmega328p – pu………………………………………….….32 Hình 3.6: Module LORA SX 1278 AS - TTL - 100……………………………………33 Hình 3.7: Nút nhấn sắt dùng cơng nhiệp……………………………………… 33 Hình 3.8: Sơ đồ ngun lý mạch trạm con……………………………………… 34 Hình 3.9: Cảm biến nhiệt độ DS18B20……………………………………………… 35 Hình 3.10: Module thời gian thực DS1307…………………………………………….35 Hình 3.11: Sơ đồ nguyên lý mạch trạm chính…………………………………… 36 Hình 3.12: Led đoạn loại 1.8" 1.2"……………………………………………… 36 Hình 3.13: IC ghi dịch 74HC595…………………………………………… …37 Hình 3.14: IC đệm dịng ULN2803……………………………………………………37 Hình 3.15: IC điều khiển led đoạn MAX7219…………………………………… 37 Hình 3.16: Cấu tạo bên led đoạn loại 1.8"…………………………………… 38 Hình 3.17: Cấu tạo bên led đoạn 1.2"………………………………………….39 Hình 3.18: Sơ đồ nguyên lý module led đoạn loại 1.8"…………………………….40 Hình 3.19: Sơ đồ nguyên lý led đoạn loại 1.2"…………………………………… 40 Hình 3.20: Sơ đồ nguyên lý led đoạn dùng ic max7219……………………………41 Hình 3.21: Module usb to ttl pl2803hx……………………………………………… 41 Hình 3.22: Sơ đồ ngun lý mạch giao tiếp với máy tính…………………………… 42 Hình 3.23: hình ảnh adapter………………………………………………………… 42 Hình 3.24: sơ đồ nguyên lý mạch nguồn mạch phát điện………………….43 ix Hình 3.25: sơ đồ q trình phóng điện tụ điện…………………………………… 45 Hình 3.26: giản đồ điện tụ điện trình xả…………………………… 45 Hình 3.27: Sơ đồ nguyên lý mạch lưu EEPROM………………………………………46 Hình 3.28: Sơ đồ nguyên lý tồn mạch trạm con…………………………………… 47 Hình 3.29: sơ đồ ngun lý tồn mạch trạm chính…………………………………… 48 Hình 4.1: Sơ đồ bố trí linh kiện sơ đồ chân mạch xử lý trạm con………………50 Hình 4.2: Mạch in mạch xử lý trạm con………………………………………… 50 Hình 4.3: Sơ đồ bố trí linh kiện sơ đồ chân mạch xử lý trạm chính………………….51 Hình 4.4: Mạch in mạch xử lý trạm chính…………………………………………51 Hình 4.5: Sơ đồ bố trí linh kiện mạch led đoạn 1.8"………………………………….52 Hình 4.8: Mạch in mạch led đoạn 1.8"………………………………………… 52 Hình 4.9: Sơ đồ bố trí linh kiện sơ đồ chân mạch led đoạn 1.2"………………… 53 Hình 4.10: Mạch in mạch led đoạn 1.2"…………………………………………….53 Hình 4.11: Mạch in lớp top mạch led đoạn dùng Max7219………………………….54 Hình 4.12: Mạch in lớp bottom mạch led đoạn dùng Max7219…………………… 54 Hình 4.13: Mạch in mạch giao tiếp máy tính………………………………………… 55 Hình 4.14: Mạch in mạch báo nguồn…………………………………………… 55 Hình 4.15: Mạch xử lý trạm con……………………………………………………….56 Hình 4.16: Mạch xử lý trạm chính…………………………………………………… 56 Hình 4.17: Mạch module led đoạn 1.8"…………………………………………… 57 Hình 4.18: Mạch module led đoạn 1.2"…………………………………………… 57 Hình 4.19: Module led đoạn dùng Max7219…………………………………… ….58 Hình 4.20: Module USB To TTL…………………………………………………… 58 Hình 4.21: Mạch báo nguồn………………………………………………………58 Hình 4.22: Bộ điểu khiển trạm con…………………………………………………….59 x Hình 4.23: Trạm thu phát phía PC…………………………………………………… 59 Hình 4.24: Trạm chính, bảng hiển thị………………………………………………….60 Hình 4.25: Lưu đồ chương trình điều khiển trạm con………………………………….61 Hình 4.26: Lưu đồ chương trình để kiểm tra truyền liệu……………………… 61 Hình 4.27: Lưu đồ chương trình khối giao tiếp máy tính………………………………62 Hình 4.28: Lưu đồ chương trình vi điều khiển khối xử lý trung tâm………………… 63 Hình 4.29: Icon phần mềm Arduino IDE………………………………………………64 Hình 4.30: Giao diện phần mềm Arduino IDE……………………………………… 64 Hình 4.31: Giao diện phần mềm VisualStudio 2015………………………………… 65 Hình 4.32: Giao diện phầm mềm máy tính……………………………………… 66 Hình 4.33: Microsoft SQL Server…………………………………………………… 67 Hình 4.34: Lưu đồ cách vận hành hệ thống…………………………………………….68 Hình 4.35: bước thao tác phần mềm………………………………………….69 xi DANH MỤC BẢNG Bảng 2.1: Chức chân module…………………….………………………6 Bảng 2.2: Các chế độ làm việc LORA……………………….…………………….7 Bảng 2.3: Theo dõi dòng điện chế độ tiết kiệm pin nhà sản xuất……………8 Bảng 2.4: Các vector ngắt reset atmega32……………………………………16 Bảng 4.1 Danh sách linh kiện mạch xử lý trạm con…………………………… 50 Bảng 4.2 Danh sách linh kiện mạch xử lý trạm chính………………………… 51 Bảng 4.3 Danh sách linh kiện mạch led đoạn 1.8"…………………………….53 Bảng 4.4 Danh sách linh kiện mạch led đoạn 1.8"…………………………….54 Bảng 4.5 Danh sách linh kiện mạch led đoạn dùng max7219…………………55 Bảng 4.6 Danh sách linh kiện mạch giao tiếp máy tính……………………….…55 Bảng 5.1: Kết quả…………………………………………………………………… 70 xii CHƯƠNG TỔNG QUAN CHƯƠNG TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Khoa học công nghệ giới ngày phát triển mạnh mẽ có bước tiến đáng kể Trong năm gần đây, công nghệ truyền nhận liệu không dây có bước phát triển mạnh mẽ, góp cơng lớn việc phát triển hệ thống điều khiển, giám sát từ xa, đặc biệt hệ thống thông minh Hiện nay, có nhiều cơng nghệ truyền nhận liệu không dây RF, Wifi, Bluetooth, NFC, Lora,…Trong đó, Lora cơng nghệ phát triển mạnh gần cải tiến để nâng cao tốc độ khả bảo mật Ngày nay, nhà máy, xí nghiệp ngày nhiều; quy mô sản xuất tăng lên kéo theo nhiều vấn đề cần giải Một vấn đề cốt lõi cần giải giám sát sản lượng sản xuất Số lượng sản phẩm làm ngày xưởng tầm trung ngày lớn nên khơng thể tính sức người Do đó, nhóm định thực đề tài: “Thiết kế thi công hệ thống giám sát sản xuất” Đề tài ứng dụng công nghệ Lora để truyền dẫn không dây, hiển thị số lượng sản phẩm sản xuất lưu vào hệ thống sở liệu, dễ dàng truy xuất giám sát 1.2 MỤC TIÊU Thiết kế thi công hệ thống giám sát công nghiệp sản xuất ngành mà người phải trực tiếp hoàn thành sản phẩm khâu cuối Xây dựng hệ thống giám sát chặt chẽ kế hoạch, số lượng sản phẩm sản xuất ra, sản phẩm BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƯƠNG TỔNG QUAN bị lỗi, tiến độ hoàn thành ca sản xuất tất liệu truyền nhận thông qua truyền thông khơng dây 1.3 NỘI DUNG NGHIÊN CỨU Tìm hiều lựa chọn module Lora, vi xử lý, cảm biến nhiệt độ, module thời gian thực Viết ứng dụng Windows để máy tính (PC) nhận tín hiệu từ khối điều khiển xử lí, giám sát giao diện người dùng Thiết kế thi công module khối hiển thị, khối điều khiển Kết nối module lại với Chạy thử, kiểm tra cân chỉnh mơ hình Viết sách luận văn tốt nghiệp Báo cáo đồ án tốt nghiệp 1.4 GIỚI HẠN Số lượng sản phẩm sản xuất ngày < 10000 Áp dụng dây chuyền sản xuất giày dép, may mặc, đóng nắp thùng sơn,… Cảm biến đo nhiệt độ phạm vi -55 đến 125 oC Phạm vi kết nối không dây trạm bảng hiển thị không 300m mơi trường nhà xưởng có nhiều vật cản, nhiễu Ứng dụng tương thích với hệ điều hành Windows 1.5 BỐ CỤC Chương 1: Tổng quan Chương trình bày đặt vấn đề dẫn nhập lý chọn đề tài, mục tiêu, nội dung nghiên cứu, giới hạn thông số bố cục đồ án Chương 2: Cơ sở lý thuyết BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƯƠNG KẾT LUẬN – HƯỚNG PHÁT TRIỂN CHƯƠNG KẾT LUẬN – HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Thành công việc thiết kế thi cơng sản phẩm với kích thước nhỏ theo yêu cầu đặt Sản phẩm có khả ứng dụng vào thực tế lắp đặt xưởng sản xuất với diện tích tầm trung Giá thành để trì hệ thống thấp Ứng dụng kiến thức học để thực tốt đề tài hoàn thành yêu cầu đề Nghiên cứu, học hỏi nhiều kinh nghiệm kiến thức bổ ích, trau dồi kỹ hoạt động độc lập giải vấn đề, khám phá thêm vấn đề 6.1.1 Ưu điểm đề tài Hệ thống giúp giám sát số lượng sản phẩm làm trạm, cập nhật sản lượng tổng lên bảng hiển thị, phần mềm quản lí Có thể mở rộng số lượng trạm trạm 6.1.2 Hạn chế đề tài Module RF LORA E32-TTL-100 truyền 3000m (lý thiết) thực truyền khoảng 200-1000m Trong thiết kế sử dụng nhiều module mua ngồi Vẫn cịn sử dụng nguồn ngồi mạch chưa có chuyển AC – DC Thời gian đáp ứng hệ thống chưa tối ưu BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 74 CHƯƠNG KẾT LUẬN – HƯỚNG PHÁT TRIỂN 6.2 HƯỚNG PHÁT TRIỂN Từ vấn đề hoàn thành hạn chế, người thực nhận thấy cần nhiều cải tiến để vào thực tế Gia tăng số lượng trạm Thêm thông tin hiển thị bảng hiển thị Nâng cấp sở liệu, đưa liệu lên “đám mây” để lưu trữ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 75 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Nguyễn Đình Phú, Giáo trình: Vi điều khiển PIC, Nhà xuất Đại học Quốc Gia Tp.HCM, 2015 [2] Phạm Quang Huy, Lê Cảnh Trung “Lập Trình Điều Khiển Với ARDUINO”, Nhà xuất Khoa Học Kĩ Thuật, 2014 [3] Huỳnh Tri Ân “Thiết Kế Thi Công Hệ Thống Báo Cháy Sử Dụng Công Nghệ Truyền Thông LORA”, Đồ án tốt nghiệp, trường ĐHSPKT, Tp.HCM, 2011 [4] Datasheet module LoRa RF-TTL-100 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 76 PHỤ LỤC PHỤ LỤC Chương trình ngắt điện ISR (PCINT1_vect) // handle pin change interrupt for A0 to A5 here { if(analogRead(A2)< 50){ EEPROM.write(0, plan1); delay(5); EEPROM.write(1, plan2); delay(5); EEPROM.write(2, pro11); delay(5); EEPROM.write(3, pro12); delay(5); EEPROM.write(4, pro21); delay(5); EEPROM.write(5, pro22); delay(5); EEPROM.write(6, defect1); delay(5); EEPROM.write(7, defect2); delay(5); EEPROM.write(8, station); delay(5); } } Chương trình ngắt truyền nhận liệu ISR (TIMER2_OVF_vect) { TCNT2 = 6; count+=1; if(count>=100){ while(mySerial.available()){ delay(3); char inchar = mySerial.read(); if(i>1 && i < 5){ address += inchar; } else if(i >= 5){ data += inchar; if(j0){ Complete = true; } if (Complete == true){ value = data.toInt(); address1 = address.toInt(); if(address1 == 11){ product1 = value; for(i=0; iunit = a%10; number->dozen = a/10; } Chương trình con: SHOW_DATA() void SHOW_DATA(){ digitalWrite(latchPin, LOW); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC DATA_UNIT_2(&number8); if(state == 1){ count2+=1; if(count2 < 200){ DATA_UNIT_2(&number7); } else{ DATA_UNIT_3(); if(count2>=400){ count2 = 0; } } } else{ DATA_UNIT_2(&number7); } if(state == 2){ count2+=1; if(count2 < 200){ DATA_UNIT_2(&number6); } else{ DATA_UNIT_3(); if(count2>=400){ count2 = 0; } } } else{ DATA_UNIT_2(&number6); } // UPDATE_DATA_1(&number5); UPDATE_DATA_2(&number4); UPDATE_DATA_1(&number3); UPDATE_DATA_1(&number2); UPDATE_DATA_1(&number1); digitalWrite(latchPin, HIGH); } void DATA_UNIT_2(send_data_t* number){ shiftOut(dataPin, clockPin, MSBFIRST, Seg2[number->unit]); shiftOut(dataPin, clockPin, MSBFIRST, Seg2[number->dozen]); } void DATA_UNIT_3(){ shiftOut(dataPin, clockPin, MSBFIRST, Seg2[10]); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC shiftOut(dataPin, clockPin, MSBFIRST, Seg2[10]); } void UPDATE_DATA_1(send_data_t* number){ if(number->thousand == 0){ if(number->hundred == 0){ if(number->dozen == 0){ shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->unit]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[10]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[10]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[10]); } else{ shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->unit]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->dozen]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[10]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[10]); } } else{ shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->unit]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->dozen]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->hundred]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[10]); } } else{ shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->unit]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->dozen]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->hundred]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->thousand]); } } void UPDATE_DATA_2(send_data_t* number){ if(number->thousand == 0){ if(number->hundred == 0){ shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->unit]); shiftOut(dataPin, clockPin, MSBFIRST, Seg3[number->dozen]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[10]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[10]); } else{ shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->unit]); shiftOut(dataPin, clockPin, MSBFIRST, Seg3[number->dozen]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->hundred]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[10]); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC } else{ shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->unit]); shiftOut(dataPin, clockPin, MSBFIRST, Seg3[number->dozen]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->hundred]); shiftOut(dataPin, clockPin, MSBFIRST, Seg1[number->thousand]); } } void UPDATE_DATA_3(send_data_t* number){ if(state == 1){ count2+=1; if(count2 < 200){ DATA_UNIT_2(&number7); } else{ DATA_UNIT_3(); if(count2>=400){ count2 = 0; } } } else{ DATA_UNIT_2(&number7); } if(state == 2){ count2+=1; if(count2 < 200){ DATA_UNIT_2(&number6); } else{ DATA_UNIT_3(); if(count2>=400){ count2 = 0; } } } else{ DATA_UNIT_2(&number6); } } Chương trình con: DS1307_CLOCK() void DS1307_CLOCK(){ choose_mode(); clock_up(); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC clock_dw(); if(check1 == true){ setTime(hour, minute, 4, 0, 31 ,5 ,17); delay(2); check1 = false; } /* Đọc liệu DS1307 */ readDS1307(); } // DS1307 void readDS1307() { Wire.beginTransmission(DS1307); Wire.write((byte)0x00); Wire.endTransmission(); Wire.requestFrom(DS1307, NumberOfFields); second = bcd2dec(Wire.read() & 0x7f); minute = bcd2dec(Wire.read() ); hour = bcd2dec(Wire.read() & 0x3f); // chế độ 24h } /* Chuyển từ format BCD (Binary-Coded Decimal) sang Decimal */ int bcd2dec(byte num) { return ((num/16 * 10) + (num % 16)); } /* Chuyển từ Decimal sang BCD */ int dec2bcd(byte num) { return ((num/10 * 16) + (num % 10)); } /* cài đặt thời gian cho DS1307 */ void setTime(byte hr, byte minu, byte sec, byte wd, byte d, byte mth, byte yr) { Wire.beginTransmission(DS1307); Wire.write(byte(0x00)); // đặt lại pointer Wire.write(dec2bcd(sec)); Wire.write(dec2bcd(minu)); 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(); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC // Adjust the timer -void choose_mode(){ if(digitalRead(mode) == 0){ delay(20); if(digitalRead(mode) == 0){ if(state >=2){ state = 0; } else{ state += 1; } } while(!digitalRead(mode)); } } void clock_up(){ if(digitalRead(CLOCK_UP) == 0){ delay(20); if(digitalRead(CLOCK_UP) == 0){ if(state == 1){ if(minute >=59){ minute = 0; } else{ minute +=1; } check1 = true; } else if(state == 2){ if(hour >= 23){ hour = 0; } else{ hour +=1; } check1 = true; } } while(!digitalRead(CLOCK_UP)); } } void clock_dw(){ if(digitalRead(CLOCK_DW) == 0){ delay(20); if(digitalRead(CLOCK_DW) == 0){ if(state == 1){ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC if(minute