Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 100 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
100
Dung lượng
7,6 MB
Nội dung
MỤC LỤ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ỜI CẢM ƠN v MỤC LỤC vi LIỆT KÊ HÌNH VẼ viii LIỆT KÊ BẢNG VẼ xi TÓM TẮT xii 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 Chương CƠ SỞ LÝ THUYẾT 2.1 NGUYÊN LÝ ĐO ĐIỆN NĂNG 2.1.1 HIỆU ỨNG HALL 2.1.2 NGUYÊN LÝ BIẾN DÒNG 2.1.3 NGUYÊN LÝ BIẾN ÁP 10 2.2 CÁC CHUẨN TRUYỀN DỮ LIỆU 12 2.2.1 CHUẨN TRUYỀN THÔNG UART 12 2.2.2 CHUẨN GIAO TIẾP I2C 15 2.2.3 CHUẨN TRUYỀN THÔNG RS485 17 Chương TÍNH TỐN VÀ THIẾT KẾ 20 3.1 QUY TRÌNH THỰC HIỆN HỆ THỐNG 20 3.2 THIẾT KẾ SƠ ĐỒ KHỐI HỆ THỐNG 20 3.3 TÍNH TỐN THIẾT KẾ HỆ THỐNG 22 3.3.1 KHỐI ĐO 22 3.3.2 THIẾT KẾ MẠCH TRUNG TÂM 34 Chương THI CÔNG HỆ THỐNG 49 4.1 TỔNG QUAN 49 4.2 THI CÔNG HỆ THỐNG 49 4.2.1 THI CÔNG MẠCH ĐO 49 4.2.2 THI CÔNG MẠCH ĐIỀU KHIỂN TRUNG TÂM 52 4.2.3 LẮP RÁP VÀ KIỂM TRA 55 4.2.4 ĐÓNG GÓI 55 4.3 LẬP TRÌNH HỆ THỐNG 60 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH vi Chương KẾT QUẢ, NHẬN XÉT, VÀ ĐÁNH GIÁ 65 5.1 KẾT QUẢ NGHIÊN CỨU 65 5.1.1 CẢM BIẾN 65 5.1.2 VI ĐIỀU KHIỂN 66 5.1.3 CÁC MODULE KHÁC 66 5.2 KẾT QUẢ 67 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 77 6.1 KẾT LUẬN 77 6.2 HƯỚNG PHÁT TRIỂN 78 TÀI LIỆU THAM KHẢO xiii PHỤ LỤC xv BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH vii LIỆT KÊ HÌNH VẼ Hình Nguyên lý Hall Hình 2 Hai mặt Hall Hình Hướng chiều tác dụng hiệu ứng Hall Hình Nguyên lý hoạt động biến dòng Hình Nguyên lý hoạt động máy biến áp .11 Hình Sơ đồ giao tiếp UART 12 Hình Khung truyền liệu UART 13 Hình Sơ đồ khối UART 14 Hình Hệ thống thiết bị giao chuẩn I2C 15 Hình 10 Quá trình chủ ghi liệu từ tớ .16 Hình 11 Quá trình chủ đọc liệu từ tớ 17 Hình 12 Chuẩn truyền thông RS485 18 Hình Sơ đồ khối tồn hệ thống 21 Hình Sơ đồ khối khối đo 22 Hình 3 Board Arduino Nano 22 Hình Sơ đồ chân Arduino Nano .24 Hình Cảm biến dòng điện YHDC SCT013 100A 25 Hình Kết nối ngõ cảm biến dòng với Arduino 26 Hình Module cảm biến điện áp AC ZMPT101B 29 Hình Sơ đồ chân cảm biến ZMPT101B 30 Hình Kết nối ZMPT101B với Arduino Uno 30 Hình 10 Module UART TTL to RS485 V2 31 Hình 11 Sơ đồ chân UART to RS485 V2 31 Hình 12 Sơ đồ nguyên lý module UART to RS458 .32 Hình 13 Sơ đồ nguyên lý khối đo 33 Hình 14 Kit STM32F407 Discovery 34 Hình 15 Sơ đồ nguyên lý kit STM32F407 Discovery 35 Hình 16 Cấu tạo kit STM32F407 Discovery 37 Hình 17 Sơ đồ chân STM32F407 Discovery .38 Hình 18 Mặt trước LCD 20x4 39 Hình 19 Mặt sau LCD 20x4 40 Hình 20 Kích thước hình HMI UART 41 Hình 21 Mạch chuyển USB UART CP2102 42 BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH viii Hình 22 Mặt sau USB UART CP2102 43 Hình 23 IC thời gian thực RTC DS3231 44 Hình 24 Sơ đồ nguyên lý DS3231 45 Hình 25 Bộ nguồn Adapter 5V – 3A 47 Hình 26 Sơ đồ nguyên lý mạch trung tâm 48 Hình Bản vẽ PCB mạch đo 50 Hình Sơ đồ mạch in mạch đo 50 Hình Mạch đo mặt trước 51 Hình 4 Mạch đo mặt sau .52 Hình Bản vẽ PCB mạch trung tâm 52 Hình Sơ đồ mạch in mạch trung tâm 53 Hình Mạch trung tâm mặt trước 54 Hình Mạch trung tâm mặt sau 54 Hình Mặt trước hộp điều khiển 55 Hình 10 Các board mạch bên hộp điều khiển .56 Hình 11 Mặt sau hộp điều khiển 57 Hình 12 Mơ phịng học 57 Hình 13 Hẻ thống CB, cơng tắc mạch đo 58 Hình 14 Tải phịng học 59 Hình 15 Tải phịng học 60 Hình 16 Lưu đồ giải thuật mạch điều khiển trung tâm 61 Hình 17 Lưu đồ chương trình phục vụ ngắt I2C 62 Hình 18 Lưu đồ giải thuật mạch đo .63 Hình Đo điện tải phòng chưa bật đèn 68 Hình Đo điện tải phịng bật đèn 68 Hình Đo điện tải phòng bật đèn đồng hồ 69 Hình Đo điện tải phòng chưa mở đèn 69 Hình 5 Đo điện tải phòng mở đèn 70 Hình Đo điện tải phịng mở đèn đồng hồ 70 Hình Đo điện tải phòng mở đèn 71 Hình Đo điện tải phòng mở đèn đồng hồ 71 Hình Đo điện tải phòng chưa mở đèn 72 Hình 10 Đo điện tải phịng mở đèn 73 Hình 11 Đo điện tải phòng mở đèn đồng hồ 73 Hình 12 Đo điện tải phòng chưa mở đèn 74 BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH ix Hình 13 Đo điện tải phòng mở đèn 74 Hình 14 Đo điện tải phòng mở đèn đồng hồ 75 Hình 15 Đo điện tải phịng mở đèn 75 Hình 16 Đo điện tải phòng mở đèn đồng hồ 76 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH x LIỆT KÊ BẢNG VẼ Bảng Thông số kỹ thuật Arduino Nano 23 Bảng Thông số kỹ thuật cảm biến YHDC SCT013 26 Bảng 3 Thông số kỹ thuật ZMPT101B 29 Bảng Thông số kỹ thuật UART to RS485 V2 32 Bảng Các chân LCD 41 Bảng Thông số kỹ thuật DS3231 45 Bảng Thơng số dịng điện linh kiện mạch trung tâm (STM32F407) 46 Bảng Thơng số dịng điện linh kiện mạch đo (Arduino) 46 Bảng Danh sách linh kiện mạch đo 51 Bảng Danh sách linh kiện mạch trung tâm 53 BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH xi TĨM TẮT Vấn đề giám sát điện nơi tiêu thụ điện lớn bệnh viện, tòa nhà, trường học…là nhu cầu cấp thiết nơi có số lượng thiết bị điện sử dụng hàng ngày nhiều Để tránh hao phí điện hư hỏng thiết bị giám sát nắm bắt lượng điện tiêu thụ ngày bị, nhóm xây dựng hệ thống “Giám sát điện tiêu thụ phòng học” nhằm đáp ứng nhu cầu Hệ thống thực nhiệm vụ đo thơng số điện áp dịng điện thiết bị sử dụng điện phịng học, sau gửi thơng số đo phịng điều khiển Từ thơng số nhận từ phịng, tính tốn giá trị công suất điện tiêu thụ thiết bị ngày hiển thị hình cảm ứng Ngồi thơng số điện năng, thông tin thời gian thực hiển thị để người dùng nắm bắt Người dùng dùng thao tác cảm ứng để điều chỉnh xem thông số tải Như vậy, hệ thống “Giám sát điện tiêu thụ phịng học” có nhiệm vụ giám sát, đo đạc tính tốn giá trị điện năng, thông tin thời gian thực hiển thị liệu cho người dùng nắm bắt BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH xii CHƯƠNG TỔNG QUÁT Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Vấn đề lượng yếu tố quan trọng lĩnh vực sống người từ học tập, nghiên cứu khoa học công nghiệp, sản xuất Năng lượng điện nguồn lượng hầu hết hộ gia đình sử dụng Hiện nay, nhu cầu giám sát lượng điện hàng ngày lớn, đặc biệt tịa nhà, cơng trình lớn sử dụng nhiều thiết bị điện bệnh viện, trường học, công ty, … nhu cầu sử dụng điện nơi lớn Các thiết bị điện bán thị trường ngày phát triển số lượng chất lượng, mẫu mã khiến cho lượng điện tiêu thụ thiết bị khác nhau[4] Việc đo đạc giám sát lượng điện tiêu thụ thiết bị điện hàng ngày giúp kiểm soát lượng điện tốt hơn, theo dõi phát có chênh lệch điện tiêu thụ góp phần tránh trường hợp lãng phí điện thiết bị sử dụng lâu ngày dẫn đến hư hỏng, rò rỉ, … Tuy nhiên, việc giám sát lượng điện tiêu thụ cịn gặp nhiều khó khăn nên cần nghiên cứu để xây dựng nên hệ thống tự động giám sát điện cách hoàn chỉnh Với phát triển vượt bậc công nghệ kỹ thuật đời nhiều dòng vi điều khiển PIC, Arduino, ARM, sản phẩm đời sau nâng cấp có thêm nhiều tính so với đời trước Các Module cảm biến đo dòng, đo áp nghiên cứu phát triển giúp cho việc thiết kế hệ thống tự động, thông minh trở nên dễ dàng Từ thúc đẩy tạo hệ thống đo lường điện ngày tối ưu hoàn thiện hơn[4] Bằng cách sử dụng hệ thống giám sát điện tiêu thụ phòng học, người dùng dễ dàng theo dõi, biết điện tiêu thụ thiết bị phòng học từ phòng điều khiển trung tâm, giúp tiện lợi việc kiểm soát, kịp thời phát bất thường sửa chữa xảy hư hỏng, giảm thiểu thiệt hại tránh việc lãng phí điện BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH CHƯƠNG TỔNG QUÁT 1.2 MỤC TIÊU Thiết kế thi công hệ thống giám sát điện cách đo dòng điện điện áp cách xác trực quan Sau gửi thơng số điều khiển trung tâm phòng điều khiển thực tính tốn dựa thơng số Liên tục cập nhập hiển thị thơng số dịng điện, điện áp, cơng suất điện tiêu thụ thiết bị phòng học lên hình phịng điều khiển 1.3 NỘI DUNG NGHIÊN CỨU Tìm hiểu đề tài, lựa chọn hướng phát triển tham khảo số mơ hình, hệ thống có sẵn Tìm hiểu cấu tạo, ngun lý hoạt động thông số kỹ thuật số module cảm biến, vi điều khiển Sau nghiên cứu, tìm hiểu module, tiến hành tính toán lựa chọn vi điều khiển thiết bị phù hợp với đề tài Lập trình cho vi điều khiển sau lựa chọn xong vi điều khiển thiết bị phù hợp Thiết kế sơ đồ khối hệ thống, vẽ sơ đồ mạch nguyên lý Thiết kế mạch in thi công mạch Kiểm tra hoạt động mạch sau thi công, chỉnh sửa lỗi, sau hiệu chỉnh hồn chỉnh mạch Tiến hành thử nghiệm hệ thống thực tế Thiết kế mơ hình Thi cơng mơ hình, đóng gói thiết bị thành sản phẩm hồn chỉnh Đánh giá kết thực Viết luận văn đề tài Bảo vệ luận văn tốt nghiệp 1.4 GIỚI HẠN Đề tài “Thiết kế thi công hệ thống giám sát điện tiêu thụ phịng học” có giới hạn sau[5]: Hệ thống gồm xử lý trung tâm hai xử lý khối đo giám sát điện tiêu thụ cho phòng học, giám sát tối đa thiết bị BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƯƠNG TỔNG QUÁT Thiết kế tủ điện phòng học bao gồm CB tổng CB bảo vệ cho thiết bị Chỉ đo điện áp xoay chiều pha khoảng 80 – 250 VAC, dòng điện khoảng từ – 100A Đo điện thiết bị đèn, quạt, … phịng học Khơng dùng cho tải động Hệ thống hiển thị thông số dòng điện, điện áp thiết bị phòng học đồng hồ thời gian thực lên hình HMI UART Sử dụng vi điều khiển ARM STM32F407VGT6 làm xử lý trung tâm, Arduino Nano làm xử lý khối đo Sử dụng module có sẵn thị trường nên có độ nhạy sai số định Hệ số cơng suất khó xác định chưa có phương pháp đo xác nên hệ thống tính tốn với hệ số cơng suất lấy giá trị 1.5 BỐ CỤC Chương 1: Tổng Quan Chương 2: Cơ Sở Lý Thuyết Chương 3: Tính Tốn Thiết Kế Chương 4: Thi Công Hệ Thống Chương 5: Kết Quả, Nhận Xét Đánh Giá Chương 6: Kết Luận Hướng Phát Triển Nội dung tóm tắt chương: Chương 1: Tổng quan Trong chương đặt vấn đề dẫn đến lý chọn đề tài, trình bày mục tiêu, nội dung nghiên cứu, giới hạn đề tài bố cục trình bày luận văn Chương 2: Cơ sở lý thuyết Trình bày lý thuyết có liên quan đến vấn đề mà đề tài dùng để thực Chương 3: Tính tốn thiết kế Từ sở lý thuyết yêu cầu đề tài thiết kế sơ đồ khối hệ thống Dựa sơ đồ khối tiến hành tính tốn, lựa chọn kết nối module tạo thành hệ thống hoàn chỉnh đồng thời xây dựng lưu đồ giải thuật phần mềm BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 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 xử lý”, NXB Trường ĐH Sư Phạm Kỹ Thuật Tp Hồ Chí Minh, 2016 [2] Nguyễn Đình Phú – Phan Vân Hồn – Trương Ngọc Anh, “Giáo trình thực hành vi điều khiển PIC”, NXB Trường ĐH Sư Phạm Kỹ Thuật TP Hồ Chí Minh, 2007 [3] Nguyễn Việt Hùng – Nguyễn Ngô Lâm – Nguyễn Văn Phúc – Đặng Phước Hải Trang, “Giáo trình Kỹ thuật truyền số liệu”, NXB ĐH Quốc Gia Tp Hồ Chí Minh, 2013 [4] Nguyễn Văn Cang Nguyễn Chí Dũng, “Thiết kế thi công hệ thống giám sát điện tiêu thụ hộ gia đình”, Đồ Án Tốt Nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật Tp HCM, 2018 [5] Võ Hồng Sơn Nguyễn Lâm Hoàng Minh Tuấn, “Thiết kế thi công hệ thống giám sát điện tiêu thụ kết hợp với điều khiển thiết bị điện từ xa thông qua Internet LORA”, Đồ Án Tốt Nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật Tp HCM, 2019 Bài viết tham khảo online [6] “Hiệu Ứng Hall Là Gì? Giới Thiệu Cảm Biến Hall Và Ứng Dụng”, dammedientu.vn, 2019 [7] “Electronic Components Datasheet Search”, alldatasheet.com, 2020 [8] “How to Build an Arduino Energy Monitor - Measuring Mains Current Only”, learn.openenergymonitor.org, 2012 [9] Albert Young, “NON-INVASIVE SENSOR: YHDC SCT013-000 CT USED WITH ARDUINO (SCT-013)”, poweruc.pl, 2018 [10] Mohammadreza Akbari, “Interfacing ZMPT101B Voltage Sensor with Arduino”, electropeak.com, 2010 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH xiii TÀI LIỆU THAM KHẢO [11] “Arduino Nano - Nhỏ, tiện lợi, mang tinh hoa Arduino Uno”, arduino.vn, 2014 [12] Nguyễn Hữu Phước, “Giới thiệu kit STM32F407 Discovery”, dientuviet.com, 2020 [13] “Truyền số kiểu long, int, float giao tiếp Serial (UART)”, arduino.vn, 2017 [14] Xuân Thiếp, “STM32F4 Discovery Tutorials (Keil V5 + Cube MX), youtube.com, 2016 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH xiv PHỤ LỤC PHỤ LỤC Các đoạn chương trình hệ thống: Chương trình cho mạch đo (nạp cho Arduino Nano) #include #include "EmonLib.h" #define VOLT_CAL 150.3 #define CURRENT_CAL 60.607 EnergyMonitor emon1, emon2, emon3; void setup () { Serial.begin(115200); emon1.voltage(A1, VOLT_CAL, 1.7); emon1.current(A0, CURRENT_CAL); emon2.voltage(A5, VOLT_CAL, 1.7); emon2.current(A2, CURRENT_CAL); emon3.voltage(A3, VOLT_CAL, 1.7); emon3.current(A4, CURRENT_CAL); } void loop () { emon1.calcVI(20,2000); emon2.calcVI(20,2000); emon3.calcVI(20,2000); float currentDraw1 float supplyVoltage1 float currentDraw2 float supplyVoltage2 = emon1.Irms; = emon1.Vrms; = emon2.Irms; = emon2.Vrms; float currentDraw3 = emon3.Irms; float supplyVoltage3 = emon3.Vrms; senddata(supplyVoltage1,currentDraw1,supplyVoltage2, currentDraw2,supplyVoltage3,currentDraw3); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH xv PHỤ LỤC void senddata(double senddata(double x,double x,double y,double y,double z,double z,double t,double t,double u,double u,double v) v) void { { byte data[12]; byte data[12]; uint8_t phanNguyen1 = x; = x; uint8_t phanNguyen1 double f1 = f1 (x =- phanNguyen1) * 10.0; double (x - phanNguyen1) * 10.0; uint8_t phanThapPhan1 = f1; uint8_t phanThapPhan1 = f1; data[0] = 0x0FF & phanNguyen1; data[0] = 0x0FF & phanNguyen1; data[1] = (0x0FF & phanThapPhan1); data[1] = (0x0FF & phanThapPhan1); uint8_t phanNguyen2 = y; = y; uint8_t phanNguyen2 double f2 = (y phanNguyen2) * 100.0; double f2 = (y - phanNguyen2) * 100.0; uint8_t phanThapPhan2 = f2;= f2; uint8_t phanThapPhan2 data[2] = 0x0FF & phanNguyen2; data[2] = 0x0FF & phanNguyen2; data[3] = (0x0FF & phanThapPhan2); data[3] = (0x0FF & phanThapPhan2); uint8_t phanNguyen3 = z; = z; uint8_t phanNguyen3 double f3 = f3 (z = - phanNguyen3) * 10.0; double (z - phanNguyen3) * 10.0; uint8_t phanThapPhan3 = f3; uint8_t phanThapPhan3 = f3; data[4] = 0x0FF & phanNguyen3; data[4] = 0x0FF & phanNguyen3; data[5] = (0x0FF & phanThapPhan3); data[5] = (0x0FF & phanThapPhan3); uint8_t phanNguyen4 = t; = t; uint8_t phanNguyen4 double f4 = (t phanNguyen4) * 100.0; double f4 = (t - phanNguyen4) * 100.0; uint8_t phanThapPhan4 = f4;= f4; uint8_t phanThapPhan4 data[6] = 0x0FF & phanNguyen4; data[6] = 0x0FF & phanNguyen4; data[7] = (0x0FF & phanThapPhan4); data[7] = (0x0FF & phanThapPhan4); uint8_t phanNguyen5 = u; = u; uint8_t phanNguyen5 double f5 = f5 (u =- phanNguyen5) * 10.0; double (u - phanNguyen5) * 10.0; uint8_t phanThapPhan5 = f5; uint8_t phanThapPhan5 = f5; data[8] = 0x0FF & phanNguyen5; data[8] = 0x0FF & phanNguyen5; data[9] = (0x0FF & phanThapPhan5); data[9] = (0x0FF & phanThapPhan5); uint8_t phanNguyen6 = v; = v; uint8_t phanNguyen6 double f6 = (v phanNguyen6) * 10.0; double f6 = (v - phanNguyen6) * 10.0; uint8_t phanThapPhan6 = f6; uint8_t phanThapPhan6 = f6; data[10] = 0x0FF & phanNguyen6; data[10] = 0x0FF & phanNguyen6; data[11] = (0x0FF & phanThapPhan6); data[11] = (0x0FF & phanThapPhan6); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH xvi PHỤ LỤC Serial.write(data,12); } Chương trình cho mạch điều khiển trung tâm (nạp cho STM32F407 Discovery) #include "stm32f4xx_hal.h" #include "stdio.h" uint8_t BCD2DEC(uint8_t data); uint8_t DEC2BCD(uint8_t data); #define DS3231_ADD 0x68 I2C_HandleTypeDef hi2c2; DMA_HandleTypeDef hdma_i2c2_rx; UART_HandleTypeDef huart1; UART_HandleTypeDef huart3; UART_HandleTypeDef huart6; DMA_HandleTypeDef hdma_usart1_rx; DMA_HandleTypeDef hdma_usart3_rx; DMA_HandleTypeDef hdma_usart6_rx; void SystemClock_Config(void); void Error_Handler(void); static void MX_GPIO_Init(void); static void MX_DMA_Init(void); static void SystemClock_Config(void); static void MX_USART1_UART_Init(void); static void MX_USART6_UART_Init(void); static void MX_I2C2_Init(void); static void MX_USART3_UART_Init(void); char buffer[20],gt[20]; uint8_t receive_data[7],send_data[7],data1[12],data2[12]; double Amp,Vol,Pow; uint8_t second,second_tam=0,minute,hour,day,date,date_tam,month,year; volatile int8_t a=0; uint16_t phanNguyen, phanThapPhan; double A11=0.0,A12=0.0,A13=0.0; double A21=0.0,A22=0.0,A23=0.0; uint8_t Rx_Data; uint8_t Cmd_End[3] = {0xFF,0xFF,0xFF}; int8_t var=0; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH xvii PHỤ LỤC void TINH_GT1(uint8_t p) { Vol = data1[p] + ((double)data1[p+1])/10; Amp = data1[p+2] + ((double)data1[p+3])/100; Pow = Vol*Amp; } void TINH_GT2(uint8_t p) { Vol = data2[p] + ((double)data2[p+1])/10; Amp = data2[p+2] + ((double)data2[p+3])/100; Pow = Vol*Amp; } void Separate_Data(double number) { phanNguyen = number; double f = (number - phanNguyen) * 10.0; phanThapPhan = f; } void NEXTION_SendString (char *ID, char *string) { char buf[50]; int len = sprintf (buf, "%s.txt=\"%s\"", ID, string); HAL_UART_Transmit(&huart3, (uint8_t *)buf, len, 1000); HAL_UART_Transmit(&huart3, Cmd_End, 3, 100); } void NEXTION_SendData (char *ID, uint16_t data) { char buf[50]; int len = sprintf (buf, "%s.val=%u", ID, data); HAL_UART_Transmit(&huart3, (uint8_t *)buf, len, 1000); HAL_UART_Transmit(&huart3, Cmd_End, 3, 100); } void Display_Data() { if(var4)*10 + (data&0x0f); } uint8_t DEC2BCD(uint8_t data) { return (data/10)