Bộ GIáO DụC V ĐO TạO TRƯờNG ĐạI HọC GIAO THÔNG VậN TảI Phạm văn huy Nghiên cứu thiết kế mô hình điều khiển nhiệt độ ứng dụng vi điều khiĨn avr LN V¡N TH¹C SÜ kü tht Hμ NéI - 2011 Bộ GIáO DụC V ĐO TạO TRƯờNG ĐạI HọC GIAO THÔNG VậN TảI Phạm văn huy Nghiên cứu thiết kế mô hình điều khiển nhiệt độ ứng dụng vi điều khiển avr CHUYÊN NGNH: Tự động hoá MÃ số: 40.95.52 LUậN VĂN THạC Sĩ kỹ thuật Cán hớng dẫn: TS Nguyễn Văn tiềm H NộI - 2011 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm LỜI CẢM ƠN Qua thời gian học tập nghiên cứu Trường Đại học Giao thông Vận tải, dẫn tận tình q thầy cơ, giúp đỡ bạn bè, đồng nghiệp gia đình tạo điều kiện cho tơi tích luỹ nhiều kiến thức khoa học quý báu đến hồn thành luận văn cao học Tơi xin chân thành cảm ơn quý thầy cô cán trường Đại học Giao thông vận tải đặc biệt thầy TS Nguyễn Văn Tiềm tận tình bảo, giúp đỡ hướng dẫn thời gian thực luận văn Xin cảm ơn lãnh đạo, bạn bè, đồng nghiệp nơi công tác tạo điều kiện để tơi hồn thành khố học Xin cảm ơn gia đình động viên tơi suốt thời gian học tập thực luận văn Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm LỜI NÓI ĐẦU Hiện nay, việc nghiên cứu, phát triển thuật toán nhằm nâng cao chất lượng hệ thống điều khiển tự động có bước tiến đáng kể Ngoài điều khiển kinh điển biết PID cịn có điều khiển khác với ưu điểm cao hình thành phát triển điều khiển mờ, điều khiển thích nghi, điều khiển bền vững, điều khiển thơng minh trí tụê nhân tạo Do đó, việc nghiên cứu thiết kế mơ hình điều khiển nhiệt độ ứng dụng vi điều khiển AVR, đối tượng khác trở nên dễ dàng, vô linh hoạt đạt hiệu suất cao Với mong muốn hoà vào xu phát triển chung khoa học đại, tác giả mong muốn đóng góp phần nhỏ vào cơng nghiên cứu xây dựng ứng dụng cho khoa học nước nhà Mặc dù có nhiều cố gắng, kiến thức kinh nghiệm hạn chế nên chắn cịn nhiều thiếu sót, kính mong chia sẻ đóng góp q thầy cơ, bạn bè đồng nghiệp để tác giả hoàn thiện đề tài Xin chân thành cảm ơn! Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm MỤC LỤC LỜI CẢM ƠN 11 MỞ ĐẦU 1.1 Tính cấp thiết đề tài 1.2 Mục tiêu nghiên cứu đề tài .1 1.3 Đối tượng nghiên cứu 1.4 Phạm vi nghiên cứu 1.5 Phương pháp nghiên cứu CHƯƠNG 1: TỔNG QUAN VỀ HỆ THỐNG ĐIỀU KHIỂN NHIỆT ĐỘ 1.1 Ứng dụng toán điều khiển nhiệt độ 1.2 Các phương pháp điều khiển cấp nguồn cho sợi đốt lò nhiệt .3 1.2.1 Sử dụng TRIAC khống chế dòng chạy qua 1.2.2 Sử dụng Tranzitor khống chế dòng chạy qua 1.3.3 Sử dụng Thysistor khống chế thời gian dòng chạy qua 1.3 Các phương pháp đo nhiệt độ .9 1.3.1 Đo nhiệt độ phương pháp tiếp xúc 1.3.2 Đo nhiệt độ phương pháp không tiếp xúc 13 1.4 Thiết bị điều khiển 13 1.5 Đặt vấn đề toán .14 1.6 Kết luận chương .14 CHƯƠNG 2: PHƯƠNG PHÁP THIẾT KẾ BỘ ĐIỀU KHIỂN NHIỆT ĐỘ SỬ DỤNG PID VÀ LOGIC MỜ 15 2.1 Phương pháp thiết kế sử dụng điều khiển PID 15 2.1.1 Sơ đồ khối hệ thống điều khiển tự động 15 2.1.2 Tổng hợp điều khiển PID cho lò nhiệt 15 2.2 Phương pháp thiết kế sử dụng điều khiển Logic mờ .22 2.2.1 Cơ sở lý thuyết logic mờ 22 2.2.2.2 Nguyên lý điều khiển mờ 38 2.3 Kết luận chương .40 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm CHƯƠNG 3: THIẾT KẾ MƠ HÌNH PHẦN CỨNG VÀ NHẬN DẠNG LÒ NHIỆT 41 3.1 Phạm vi điều khiển nhiệt độ .41 3.2 Thiết kế phần cứng .41 3.2.1 Sơ đồ khối mạch điều khiển nhiệt độ 42 3.2.2 Thiết kế chi tiết 43 3.3 Khảo sát lò nhiệt phương pháp nhận dạng .63 3.3.1 Cơ sở lý thuyết nhận dạng 63 3.3.2 Các mơ hình nhận dạng thơng dụng 64 3.3.3 Xác định tham số mơ hình qn tính bậc có trễ 65 3.3.4 Lấy đặc tính thực nhận dạng lò nhiệt .67 CHƯƠNG 4: THIẾT KẾ BỘ ĐIỀU KHIỂN NHIỆT ĐỘ DỰA TRÊN CƠ SỞ PID VÀ LOGIC MỜ .72 4.1 Tổng hợp điều khiển PI 72 4.1.1 Sơ đồ điều khiển PI 72 4.1.2 Mô hệ thống điều khiển nhiệt độ sử dụng điều khiển PI Matlab Simulink 73 4.2 Thiết kế điều khiển mờ - FLC 77 4.2.1 Bảng luật mờ 77 4.2.2 Xác định biến ngôn ngữ 79 4.2.3 Xác định hàm liên thuộc .79 4.2.4 Xây dựng luật điều khiển .82 4.2.5 Chọn luật hợp thành giải mờ 83 4.2.6 Tối ưu hệ thống 83 4.2.7 Mô hệ thống 83 4.3 Thiết kế điều khiển thích nghi mờ 84 4.3.1 Trường hợp 1: Khi có nhiễu Sin tác động vào đầu điều khiển mờ thích nghi 86 4.3.2 Trường hợp 2: Khi có thay đổi tham số đối tượng 87 4.4 Kết luận chương .87 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm CHƯƠNG CHƯƠNG TRÌNH CHẠY THỬ NGHIỆM TRÊN MƠ HÌNH VÀ KẾT QUẢ THỰC NGHIỆM 88 5.1 Mơ hình hệ thống điều khiển nhiệt độ 88 5.2 Lưu đồ thuật toán điều khiển giám sát nhiệt độ .89 5.3 Chương trình lập trình cho vi điều khiển AVR ATEMEGA16 89 5.4 Chương trình giám sát điều khiển máy tính 90 5.5 Kết luận chương .92 KẾT LUẬN VÀ KIẾN NGHỊ .93 TÀI LIỆU THAM KHẢO .94 PHỤ LỤC 96 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm DANH MỤC CÁC TỪ VIẾT TẮT AC Altenating Current A/D Analog/Digital ADC Analog To Digital Converter ALE Address Latch Enable ALU Arithmatic Logic Unit AVR (Automatic Volume Recognition) - The Name AVR Is Not Acronyn And Does Not Stand For Anything In Particular AVG Average CPU Central Processing Unit CISC Complex Instruction Set Computer DAC Digital To Analog Converter DCE Data Communications Equipment DC Direct Current DTE Data Terminal Equipment EEPROM Electrically Erasable Programmable ROM MIPS Million Instructions Per Second MLS Micro Lead Second Frame MISO Multi Input Single Output MIMO Multi Input - Multi Output MSB Most Significan Bit PID Proportional Integrative Derivative PI Proportional Integrative PD Proportional Derivative PB Proportional Band PWM Pulse Width Modulation QFN Quad Flat No-Lead Package GND Ground - Mass LCD Lequit Crystal Display LSB Least Significan Bit Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm OP-AMP Operation Amplifier IC Intergrated Circuit RTD Resistance Temperature Detectors RTC Real Time Clock RAM Random Acess Memory ROM Read Only Memory RISC Reduced Instruction Set Computer RS-232 Recommended Standard - 232 RS-485 Recommended Standard - 485 RS-422 Recommended Standard - 422 VCC Power Supply Pin TTL Transistor Transistor Logic TQFP Thin Quad Flat Package TIA/EIA The telecommunication Industry Association/Electronic Industries Alliance USB Universal Serial Bus USART UART (Universal Asynchronous Receiver/Transmitter) Communicate Asynchronously SISO Single Input – Single Output SSR Solid State Relay SP Stack Pointer SRAM Static Random Acess Memory SPI Serial Peripheral Interface Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm DANH MỤC BẢNG BIỂU Bảng 2.1 Giá trị luật hợp thành Max - Min 32 Bảng 4.1: luật KP, KI, KD .78 Bảng 4.2: Luật điều khiển .82 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * 85, temp_receive(85) * 100 / 2)-(100 + he_so * 86, temp_receive(86) * 100 / 2), vbBlack Case 87: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 86, temp_receive(86) * 100 / 2)-(100 + he_so * 87, temp_receive(87) * 100 / 2), vbBlack Case 88: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 87, temp_receive(87) * 100 / 2)-(100 + he_so * 88, temp_receive(88) * 100 / 2), vbBlack Case 89: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 88, temp_receive(88) * 100 / 2)-(100 + he_so * 89, temp_receive(89) * 100 / 2), vbBlack Case 90: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 89, temp_receive(89) * 100 / 2)-(100 + he_so * 90, temp_receive(90) * 100 / 2), vbBlack Case 91: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 90, temp_receive(90) * 100 / 2)-(100 + he_so * 91, temp_receive(91) * 100 / 2), vbBlack ' Case 92: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 91, temp_receive(91) * 100 / 2)-(100 + he_so * 92, temp_receive(92) * 100 / 2), vbBlack Case 93: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 92, temp_receive(92) * 100 / 2)-(100 + he_so * 93, temp_receive(93) * 100 / 2), vbBlack Case 94: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 93, temp_receive(93) * 100 / 2)-(100 + he_so * 94, temp_receive(94) * 100 / 2), vbBlack Case 95: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 94, temp_receive(94) * 100 / 2)-(100 + he_so * 95, temp_receive(95) * 100 / 2), vbBlack Case 96: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 95, temp_receive(95) * 100 / 2)-(100 + he_so * 96, temp_receive(96) * 100 / 2), vbBlack Case 97: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 96, temp_receive(96) * 100 / 2)-(100 + he_so * 97, temp_receive(97) * 100 / 2), vbBlack Case 98: temp_receive(frame_index) = Asc(data_buffer) 131 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * 97, temp_receive(97) * 100 / 2)-(100 + he_so * 98, temp_receive(98) * 100 / 2), vbBlack Case 99: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 98, temp_receive(98) * 100 / 2)-(100 + he_so * 99, temp_receive(99) * 100 / 2), vbBlack Case 100: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 99, temp_receive(99) * 100 / 2)-(100 + he_so * 100, temp_receive(100) * 100 / 2), vbBlack Case 101: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 100, temp_receive(100) * 100 / 2)-(100 + he_so * 101, temp_receive(101) * 100 / 2), vbBlack Case 102: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 101, temp_receive(101) * 100 / 2)-(100 + he_so * 102, temp_receive(102) * 100 / 2), vbBlack Case 103: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 102, temp_receive(102) * 100 / 2)-(100 + he_so * 103, temp_receive(103) * 100 / 2), vbBlack Case 104: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 103, temp_receive(103) * 100 / 2)-(100 + he_so * 104, temp_receive(104) * 100 / 2), vbBlack Case 105: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 104, temp_receive(104) * 100 / 2)-(100 + he_so * 105, temp_receive(105) * 100 / 2), vbBlack Case 106: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 105, temp_receive(105) * 100 / 2)-(100 + he_so * 106, temp_receive(106) * 100 / 2), vbBlack Case 107: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 106, temp_receive(106) * 100 / 2)-(100 + he_so * 107, temp_receive(107) * 100 / 2), vbBlack Case 108: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 107, temp_receive(107) * 100 / 2)-(100 + he_so * 108, temp_receive(108) * 100 / 2), vbBlack Case 109: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 108, temp_receive(108) * 100 / 2)-(100 + he_so * 109, temp_receive(109) * 100 / 2), vbBlack ' Case 110: temp_receive(frame_index) = Asc(data_buffer) 132 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * 109, temp_receive(109) * 100 / 2)-(100 + he_so * 110, temp_receive(110) * 100 / 2), vbBlack Case 111: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 110, temp_receive(110) * 100 / 2)-(100 + he_so * 111, temp_receive(111) * 100 / 2), vbBlack Case 112: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 111, temp_receive(111) * 100 / 2)-(100 + he_so * 112, temp_receive(112) * 100 / 2), vbBlack Case 113: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 112, temp_receive(112) * 100 / 2)-(100 + he_so * 113, temp_receive(113) * 100 / 2), vbBlack Case 114: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 113, temp_receive(113) * 100 / 2)-(100 + he_so * 114, temp_receive(114) * 100 / 2), vbBlack Case 115: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 114, temp_receive(114) * 100 / 2)-(100 + he_so * 115, temp_receive(115) * 100 / 2), vbBlack Case 116: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 115, temp_receive(115) * 100 / 2)-(100 + he_so * 116, temp_receive(116) * 100 / 2), vbBlack Case 117: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 116, temp_receive(116) * 100 / 2)-(100 + he_so * 117, temp_receive(117) * 100 / 2), vbBlack Case 118: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 117, temp_receive(117) * 100 / 2)-(100 + he_so * 118, temp_receive(118) * 100 / 2), vbBlack Case 119: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 118, temp_receive(118) * 100 / 2)-(100 + he_so * 119, temp_receive(119) * 100 / 2), vbBlack Case 120: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 119, temp_receive(119) * 100 / 2)-(100 + he_so * 120, temp_receive(120) * 100 / 2), vbBlack ' Case 121: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 120, temp_receive(120) * 100 / 2)-(100 + he_so * 121, temp_receive(121) * 100 / 2), vbBlack Case 122: temp_receive(frame_index) = Asc(data_buffer) 133 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * 121, temp_receive(121) * 100 / 2)-(100 + he_so * 122, temp_receive(122) * 100 / 2), vbBlack Case 123: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 122, temp_receive(122) * 100 / 2)-(100 + he_so * 123, temp_receive(123) * 100 / 2), vbBlack Case 124: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 123, temp_receive(123) * 100 / 2)-(100 + he_so * 124, temp_receive(124) * 100 / 2), vbBlack Case 125: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 124, temp_receive(124) * 100 / 2)-(100 + he_so * 125, temp_receive(125) * 100 / 2), vbBlack Case 126: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 125, temp_receive(125) * 100 / 2)-(100 + he_so * 126, temp_receive(126) * 100 / 2), vbBlack Case 127: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 126, temp_receive(126) * 100 / 2)-(100 + he_so * 127, temp_receive(127) * 100 / 2), vbBlack Case 128: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 127, temp_receive(127) * 100 / 2)-(100 + he_so * 128, temp_receive(128) * 100 / 2), vbBlack Case 129: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 128, temp_receive(128) * 100 / 2)-(100 + he_so * 129, temp_receive(129) * 100 / 2), vbBlack Case 130: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 129, temp_receive(129) * 100 / 2)-(100 + he_so * 130, temp_receive(130) * 100 / 2), vbBlack Case 131: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 130, temp_receive(130) * 100 / 2)-(100 + he_so * 131, temp_receive(131) * 100 / 2), vbBlack Case 132: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 131, temp_receive(131) * 100 / 2)-(100 + he_so * 132, temp_receive(132) * 100 / 2), vbBlack Case 133: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 132, temp_receive(132) * 100 / 2)-(100 + he_so * 133, temp_receive(133) * 100 / 2), vbBlack Case 134: temp_receive(frame_index) = Asc(data_buffer) 134 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * 133, temp_receive(133) * 100 / 2)-(100 + he_so * 134, temp_receive(134) * 100 / 2), vbBlack Case 135: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 134, temp_receive(134) * 100 / 2)-(100 + he_so * 135, temp_receive(135) * 100 / 2), vbBlack Case 136: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 135, temp_receive(135) * 100 / 2)-(100 + he_so * 136, temp_receive(136) * 100 / 2), vbBlack Case 137: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 136, temp_receive(136) * 100 / 2)-(100 + he_so * 137, temp_receive(137) * 100 / 2), vbBlack ' Case 138: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 137, temp_receive(137) * 100 / 2)-(100 + he_so * 138, temp_receive(138) * 100 / 2), vbBlack Case 139: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 138, temp_receive(138) * 100 / 2)-(100 + he_so * 139, temp_receive(139) * 100 / 2), vbBlack Case 140: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 139, temp_receive(139) * 100 / 2)-(100 + he_so * 140, temp_receive(140) * 100 / 2), vbBlack Case 141: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 140, temp_receive(140) * 100 / 2)-(100 + he_so * 141, temp_receive(141) * 100 / 2), vbBlack Case 142: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 141, temp_receive(141) * 100 / 2)-(100 + he_so * 142, temp_receive(142) * 100 / 2), vbBlack Case 143: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 142, temp_receive(142) * 100 / 2)-(100 + he_so * 143, temp_receive(143) * 100 / 2), vbBlack Case 144: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 143, temp_receive(143) * 100 / 2)-(100 + he_so * 144, temp_receive(144) * 100 / 2), vbBlack Case 145: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 144, temp_receive(144) * 100 / 2)-(100 + he_so * 145, temp_receive(145) * 100 / 2), vbBlack 135 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Case 146: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 145, temp_receive(145) * 100 / 2)-(100 + he_so * 146, temp_receive(146) * 100 / 2), vbBlack Case 147: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 146, temp_receive(146) * 100 / 2)-(100 + he_so * 147, temp_receive(147) * 100 / 2), vbBlack Case 148: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 147, temp_receive(147) * 100 / 2)-(100 + he_so * 148, temp_receive(148) * 100 / 2), vbBlack Case 149: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 148, temp_receive(148) * 100 / 2)-(100 + he_so * 149, temp_receive(149) * 100 / 2), vbBlack Case 150: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 149, temp_receive(149) * 100 / 2)-(100 + he_so * 150, temp_receive(150) * 100 / 2), vbBlack Case 151: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 150, temp_receive(150) * 100 / 2)-(100 + he_so * 151, temp_receive(151) * 100 / 2), vbBlack Case 152: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 151, temp_receive(151) * 100 / 2)-(100 + he_so * 152, temp_receive(152) * 100 / 2), vbBlack Case 153: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 152, temp_receive(152) * 100 / 2)-(100 + he_so * 153, temp_receive(153) * 100 / 2), vbBlack Case 154: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 153, temp_receive(153) * 100 / 2)-(100 + he_so * 154, temp_receive(154) * 100 / 2), vbBlack Case 155: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 154, temp_receive(154) * 100 / 2)-(100 + he_so * 155, temp_receive(155) * 100 / 2), vbBlack ' Case 156: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 155, temp_receive(155) * 100 / 2)-(100 + he_so * 156, temp_receive(156) * 100 / 2), vbBlack Case 157: temp_receive(frame_index) = Asc(data_buffer) 136 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * 156, temp_receive(156) * 100 / 2)-(100 + he_so * 157, temp_receive(157) * 100 / 2), vbBlack Case 158: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 157, temp_receive(157) * 100 / 2)-(100 + he_so * 158, temp_receive(158) * 100 / 2), vbBlack Case 159: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 158, temp_receive(158) * 100 / 2)-(100 + he_so * 159, temp_receive(159) * 100 / 2), vbBlack Case 160: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 159, temp_receive(159) * 100 / 2)-(100 + he_so * 160, temp_receive(160) * 100 / 2), vbBlack Case 161: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 160, temp_receive(160) * 100 / 2)-(100 + he_so * 161, temp_receive(161) * 100 / 2), vbBlack Case 162: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 161, temp_receive(161) * 100 / 2)-(100 + he_so * 162, temp_receive(162) * 100 / 2), vbBlack Case 163: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 162, temp_receive(162) * 100 / 2)-(100 + he_so * 163, temp_receive(163) * 100 / 2), vbBlack Case 164: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 163, temp_receive(163) * 100 / 2)-(100 + he_so * 164, temp_receive(164) * 100 / 2), vbBlack Case 165: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 164, temp_receive(164) * 100 / 2)-(100 + he_so * 165, temp_receive(165) * 100 / 2), vbBlack Case 166: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 165, temp_receive(165) * 100 / 2)-(100 + he_so * 166, temp_receive(166) * 100 / 2), vbBlack Case 167: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 166, temp_receive(166) * 100 / 2)-(100 + he_so * 167, temp_receive(167) * 100 / 2), vbBlack Case 168: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 167, temp_receive(167) * 100 / 2)-(100 + he_so * 168, temp_receive(168) * 100 / 2), vbBlack Case 169: temp_receive(frame_index) = Asc(data_buffer) 137 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * 168, temp_receive(168) * 100 / 2)-(100 + he_so * 169, temp_receive(169) * 100 / 2), vbBlack Case 170: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 169, temp_receive(169) * 100 / 2)-(100 + he_so * 170, temp_receive(170) * 100 / 2), vbBlack Case 171: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 170, temp_receive(170) * 100 / 2)-(100 + he_so * 171, temp_receive(171) * 100 / 2), vbBlack Case 172: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 171, temp_receive(171) * 100 / 2)-(100 + he_so * 172, temp_receive(172) * 100 / 2), vbBlack Case 173: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 172, temp_receive(172) * 100 / 2)-(100 + he_so * 173, temp_receive(173) * 100 / 2), vbBlack ' Case 174: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 173, temp_receive(173) * 100 / 2)-(100 + he_so * 174, temp_receive(174) * 100 / 2), vbBlack Case 175: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 174, temp_receive(174) * 100 / 2)-(100 + he_so * 175, temp_receive(175) * 100 / 2), vbBlack Case 176: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 175, temp_receive(175) * 100 / 2)-(100 + he_so * 176, temp_receive(176) * 100 / 2), vbBlack Case 177: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 176, temp_receive(176) * 100 / 2)-(100 + he_so * 177, temp_receive(177) * 100 / 2), vbBlack Case 178: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 177, temp_receive(177) * 100 / 2)-(100 + he_so * 178, temp_receive(178) * 100 / 2), vbBlack Case 179: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 178, temp_receive(178) * 100 / 2)-(100 + he_so * 179, temp_receive(179) * 100 / 2), vbBlack Case 180: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 179, temp_receive(179) * 100 / 2)-(100 + he_so * 180, temp_receive(180) * 100 / 2), vbBlack Case 181: temp_receive(frame_index) = Asc(data_buffer) 138 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * 180, temp_receive(180) * 100 / 2)-(100 + he_so * 181, temp_receive(181) * 100 / 2), vbBlack Case 182: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 181, temp_receive(181) * 100 / 2)-(100 + he_so * 182, temp_receive(182) * 100 / 2), vbBlack Case 183: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 182, temp_receive(182) * 100 / 2)-(100 + he_so * 183, temp_receive(183) * 100 / 2), vbBlack Case 184: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 183, temp_receive(183) * 100 / 2)-(100 + he_so * 184, temp_receive(184) * 100 / 2), vbBlack Case 185: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 184, temp_receive(184) * 100 / 2)-(100 + he_so * 185, temp_receive(185) * 100 / 2), vbBlack Case 186: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 185, temp_receive(185) * 100 / 2)-(100 + he_so * 186, temp_receive(186) * 100 / 2), vbBlack Case 187: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 186, temp_receive(186) * 100 / 2)-(100 + he_so * 187, temp_receive(187) * 100 / 2), vbBlack Case 188: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 187, temp_receive(187) * 100 / 2)-(100 + he_so * 188, temp_receive(188) * 100 / 2), vbBlack Case 189: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 188, temp_receive(188) * 100 / 2)-(100 + he_so * 189, temp_receive(189) * 100 / 2), vbBlack ' Case 190: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 189, temp_receive(189) * 100 / 2)-(100 + he_so * 190, temp_receive(190) * 100 / 2), vbBlack Case 191: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 190, temp_receive(190) * 100 / 2)-(100 + he_so * 191, temp_receive(191) * 100 / 2), vbBlack ' Case 192: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 191, temp_receive(191) * 100 / 2)-(100 + he_so * 192, temp_receive(192) * 100 / 2), vbBlack Case 193: temp_receive(frame_index) = Asc(data_buffer) 139 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * 192, temp_receive(192) * 100 / 2)-(100 + he_so * 193, temp_receive(193) * 100 / 2), vbBlack Case 194: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 193, temp_receive(193) * 100 / 2)-(100 + he_so * 194, temp_receive(194) * 100 / 2), vbBlack Case 195: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 194, temp_receive(194) * 100 / 2)-(100 + he_so * 195, temp_receive(195) * 100 / 2), vbBlack Case 196: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 195, temp_receive(195) * 100 / 2)-(100 + he_so * 196, temp_receive(196) * 100 / 2), vbBlack Case 197: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 196, temp_receive(196) * 100 / 2)-(100 + he_so * 197, temp_receive(197) * 100 / 2), vbBlack Case 198: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 197, temp_receive(197) * 100 / 2)-(100 + he_so * 198, temp_receive(198) * 100 / 2), vbBlack Case 199: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 198, temp_receive(198) * 100 / 2)-(100 + he_so * 199, temp_receive(199) * 100 / 2), vbBlack Case 200: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * 199, temp_receive(199) * 100 / 2)-(100 + he_so * 200, temp_receive(200) * 100 / 2), vbBlack ' Case 201: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 202: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 203: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 204: temp_receive(frame_index) = Asc(data_buffer) 140 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 205: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 206: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 207: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 208: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 209: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack ' Case 210: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 211: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 212: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 213: temp_receive(frame_index) = Asc(data_buffer) 141 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 214: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 215: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 216: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 217: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 218: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 219: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 220: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack ' Case 221: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 222: temp_receive(frame_index) = Asc(data_buffer) 142 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 223: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 224: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 225: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 226: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 227: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 228: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 229: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 230: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 231: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack 143 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Case 232: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 233: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 234: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 235: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 236: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 237: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack ' Case 238: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 239: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack Case 240: temp_receive(frame_index) = Asc(data_buffer) Picture1.Line (100 + he_so * (frame_index - 1), temp_receive(frame_index - 1) * 100 / 2)-(100 + he_so * frame_index, temp_receive(frame_index) * 100 / 2), vbBlack 144 Luận văn thạc sĩ GVHD: TS Nguyễn Văn Tiềm Case 241: temp_receive(frame_index) = Asc(data_buffer) Command8_Click frame_index = End Select End Sub Private Sub Timer1_Timer() ' Auto request Slave send data 'minute = minute + 'If minute >= (Text7.Text) Then 'MESURE_Click 'minute = 'End If End Sub 145