Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 36 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
36
Dung lượng
2,31 MB
Nội dung
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ -o0o - ĐỒ ÁN TIẾN HÀNH THỰC NGHIỆM THIẾT KẾ MẠCH ĐO NỒNG ĐỘ CỒN HƠI THỞ SỬ DỤNG VI ĐIỀU KHIỂN ARM GVHD: TS Trương Quang Vinh SVTH: Bùi Thế Ngọc MSSV: 1712341 TP HỒ CHÍ MINH, THÁNG NĂM 2021 Lời cảm ơn GVHD: TS Trương Quang Vinh LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành đến thầy Trương Quang Vinh – GVHD em môn học “Đồ án tiến hành thực nghiệm” trang bị cho em kiến thức, kỹ cần có để hồn thành đề tài “Đo nồng độ cồn khí thở sử dụng vi điều khiển ARM” Tuy trình thực đề tài, kiến thức chuyên ngành hạn chế nên em cịn nhiều thiếu sót tìm hiểu, đánh giá trình bày đề tài Rất mong nhận quan tâm, góp ý thầy/ cô giảng viên môn để đề tải em đầy đủ hoàn chỉnh Em xin chân thành cảm ơn Tp Hồ Chí Minh, ngày 21 tháng năm 2021 Sinh viên Bùi Thế Ngọc i Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh TĨM TẮT ĐỒ ÁN Đồ án trình bày thiết kế mạch đo nồng độ cồn khí thở sử dụng vi điều khiển ARM Mạch sử dụng vi điều khiển STM32F103C8T6 xử lý Sử dụng cảm biến đo nồng độ cồn MQ-3 để đo nồng độ cồn khí thở Cảm biến trả tín hiệu analog nên sử dụng cổng ADC 12bit vi điều khiển Vì chân ADC vi điều khiển chịu điện áp tối đa 3.3V nên sử dụng hai điện trở làm chia đơi áp Độ xác cảm biến MQ-3 chưa tốt, nhiên mặt định tính kết tương đối tin cạy Tốc độ thấp 12 lần/phút Chưa thể hiệu chỉnh lại kết phụ thuộc vào nhiệt độ, độ ẩm Sử dụng buzzer làm để thông báo Sử dụng chống rung nút nhấn cách xóa cờ chờ interrupt tránh trường hợp bấm lần mà đo nhiều lần chế xử lý chờ ngắt vi điều khiển Cuối để hiển thị kết đo nồng độ cồn mức vi phạm từ 0-3 sử dụng hình LCD 1602 theo chuẩn I2C ii Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh MỤC LỤC GIỚI THIỆU 1.1 Tổng quan .1 1.2 Nhiệm vụ đề tài LÝ THUYẾT 2.1 Cảm biến nồng độ cồn MQ-3 2.2 Cảm biến nhiệt độ LM35 2.3 Bộ hiển thị LCD 16x2 a Thông số kỹ thuật .4 b Nguyên lý hoạt động 2.4 Vi điều khiển KIT STM32F103C8T6 a Thông số kỹ thuật .8 b Nguyên lý THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 22 3.1 Yêu cầu thiết kế 22 3.2 Phân tích thiết kế 23 3.3 Sơ đồ khối chi tiết 23 3.4 Sơ đồ mạch chi tiết 24 3.5 Sơ đồ giải thuật 25 KẾT QUẢ THỰC HIỆN 27 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 28 5.1 Kết luận 28 5.2 Hướng phát triển 28 TÀI LIỆU THAM KHẢO 29 iii Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh DANH SÁCH HÌNH MINH HỌA Figure Thông số kỹ thuật cảm biến MQ3 .2 Figure Sơ đồ nguyên lý module cảm biến MQ3 Figure Đặc tuyến độ nhạy MQ3[1] Figure Đặc tuyến VRL - C RL=4.7k Ω .3 Figure Sự ảnh hưởng nhiệt độ độ ẩm với MQ3 Figure LM35 [2] Figure Đặc tuyến nhiệt độ - điện áp [2] Figure LCD 1602 Figure Sơ đồ khối HD44780 [3] Figure 10 Chức chân RS R/W theo mục đích sử dụng .7 Figure 11 Address Counter Update [3] .7 Figure 12 KIT STM32F103C8T6 Blue-Pil[4] Figure 13 Sơ đồ khối STM32F103xx[5] .9 Figure 14 Clock Tree 10 Figure 15 Clock control Register (RCC_CR) 10 Figure 16 Clock configuration register (RCC_CFGR) 11 Figure 17 Clock interrupt register (RCC_CIR) 11 Figure 18 Basic structure of a standard I/O port bit 11 Figure 19 Port bit configuration table 12 Figure 20.Ouput MODE bits 12 Figure 21 NVIC of Cortex-M processor [6] 13 Figure 22 Interrupt mask register (EXTI_IMR) 14 Figure 23 Rising trigger selection register (EXTI_RTSR) 14 Figure 24 Falling trigger selection register (EXTI_FTSR) 14 Figure 25 Software interrupt event register (EXTI_SWIER) 14 iv Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh Figure 26 Mức độ ngắt ưu tiên NVIC [7] 15 Figure 27 Timing Diagram 15 Figure 28 ADC Status register (ADC_SR) 16 Figure 29 ADC Control Register (ADC_CR1) 16 Figure 30 ADC Control Register (ADC_CR2) 16 Figure 31 ADC sample time register (ADC_SMPR2) 17 Figure 32 DMA block diagram in connectivity line devices 18 Figure 33 Summary of DMA1 requests for each channel 18 Figure 34 DMA interrupt status register (DMA_ISR) 19 Figure 35 DMA channel x configuration register (DMA_CCRx) 19 Figure 36 DMA channel x number of data register (DMA_CNDTRx) 19 Figure 37 DMA channel x peripheral address register (DMA_CPARx) 19 Figure 38 DMA channel x memory address register (DMA_CMARx) 19 Figure 39 TIMx control register (TMx_CR1) 20 Figure 40 TIMx status register (TIMx_SR) 20 Figure 41 TIMx counter (TIMx_CNT) 20 Figure 42 TIMx prescaler (TIMx_PSC) 20 Figure 43 TIMx auto-reload register (TIMx_ARR) 21 Figure 44 I2C bus protocol 21 Figure 45 I2C control register (I2C_CR1) 21 Figure 46 I2C control register (I2C_CR2) 22 Figure 47 I2C own address register (I2C_OAR1) 22 Figure 48 I2C data register (I2C_DR) 22 Figure 49 I2C status register (I2C_SR1) 22 Figure 50 I2C Clock control register (I2C_CCR) 22 Figure 51 Sơ đồ khối chi tiết 23 Figure 52 Sơ đồ mạch chi tiết 24 v Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh Figure 53 Lưu đồ giải thuật cho vi điều khiển 25 Figure 54 Lưu đồ xử lý ADC 26 Figure 55 Hình vẽ giá trị sensor, Max, Min 27 Figure 56 Kết thi công 27 vi Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh GIỚI THIỆU 1.1 Tổng quan Hiện nay, tỉ lệ sử dụng rượu bia tham gia giao thơng cịn tồn việc gây nguy hiểm cho người tham gia giao thông khác phạt lỗi vi phạm nặng Vậy nên nhu cầu kiểm nồng độ cồn trước lái xe người điều khiển phương tiện giao thông tăng cao Từ dẫn đến mong muốn thiết kế mạch đo nồng độ cồn khí thở 1.2 Nhiệm vụ đề tài Nhiệm vụ đề tài đo nồng độ cồn khí thở sử dụng vi điều khiển ARM Để thực nhiệm vụ em đặt nhiệm vụ nhỏ sau: Nội dung 1: Tìm hiểu đề tài Nội dung 2: Tìm hiểu cảm biến đo nồng độ cồn, nhiệt độ Nội dung 3: Tìm hiểu hiển thị kết Nội dung 4: Tìm hiểu dịng vi điều khiển ARM Nội dung 5: Tìm hiểu giao tiếp vi điểu khiển với thiết bị ngoại vi Nội dung 6: Thiết kế thực phần cứng Nội dung 7: Hiệu chỉnh, chuẩn độ kết dựa đánh giá kết Nội dung 8: Viết báo cáo tổng hợp LÝ THUYẾT 2.1 Cảm biến nồng độ cồn MQ-3 - Cảm biến MQ3 hoạt động dựa nguyên tắc điện trở thay đổi C2H5OH bay tác động lên lớp SnO2 phủ cảm biến Ứng dụng đo nồng độ cồn không khí, thở, có thời gian đáp ứng nhanh, độ nhạy cao, hoạt động ổn định thời gian dài Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh Figure Thông số kỹ thuật cảm biến MQ3 Figure Sơ đồ nguyên lý module cảm biến MQ3 - Nhiệm vụ yêu cầu cần đo giá trị nồng độ cồn nên cần xác định giá trị Rs/R0 từ suy giá trị nồng độ cồn dựa vào Figure - Vì giá trị R0 khơng đổi nên cần tính giá trị R0 cịn Rs tính thơng qua giá trị analog đo Figure Đặc tuyến độ nhạy MQ3[1] Đồ án tiến hành thực nghiệm - GVHD: TS Trương Quang Vinh Cũng dựa vào đồ thị, khơng khí Rs/R0=1 Vậy nên cần tính Rs khơng khí ta tính R0 với cơng thức: - - 𝑅𝑅0 = 𝑅𝑅𝑅𝑅 (1) 𝑉𝑉𝑉𝑉𝑉𝑉 𝑅𝑅2 − 𝑅𝑅2 𝑉𝑉0 (2) Rs tính theo cơng thức chia áp: 𝑅𝑅𝑅𝑅 = Để xác định giá trị nồng độ cồn cần phải tuyến tính hóa đường đặc tuyến Rs/Ro – C Đế xác hơn, tuyến tính hóa hai điểm đồ thị - Một cách khác, nhà sản xuất tiến hành thực nghiệm với RL=R2=4.7k Ω Đo VRL từ đồ thị tìm giá trị nồng độ cồn Figure Đặc tuyến VRL - C RL=4.7k Ω - Tuyến tính hóa Figure thành ba đoạn thẳng: : y + Nếu 2.3 ≤ VRL ≤ 3.5= 475 1585 x− 12 + Nếu 3.5 < VRL ≤ 3.9= : y 475 x − 1517 + Nếu VRL > 3.9 : mg / l= C (%) × Với y=C (ppm), x=VRL (V) = y 550 x − 1810 46.1 273 1013 × × = C ( ppm) ×192 ×10−5 22.4 273 + 20 1013 (3) Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh Figure 26 Mức độ ngắt ưu tiên NVIC [7] • ADC - Tính năng: + Độ phân giải 12-bit + Các ngắt hỗ trợ End conversion, End of Injected Conversion Analog Watchdog Event + Single mode Continuous mode + Tự động calib có thẻ điều khiển hoạt động ADC xung Trigger + Chế độ không liên tục, chế độ kép + Thời gian chuyển đổi ADC: 1us 56 MHz (1.17us 72MHz) + Điện áp cung cáp ADC: 2.4 – 3.6V + Có DMA hỗ trợ - ADC clock: ADCCLK cung cấp PCLK2 nên ADCCLK < 14MHz - ADC cần thời gian ổn định tSTAB trước bắt đầu chuyển đổi xác Sau bắt đẩu chuyển đổi ADC sau 14 chu kỳ clock, cờ EOC thiết lập Data Register chứa liệu kết chuyển đổi Figure 27 Timing Diagram 15 Đồ án tiến hành thực nghiệm - GVHD: TS Trương Quang Vinh Analog watchdog: bit trạng thái giám sát analog AWD đặt giá trị chuyển đổi thấp ngưỡng cao ngưỡng - Hiệu chuẩn ADC: chế độ hiệu chuẩn tích hợp sẵn, làm giảm sai số Để hiệu chuẩn cách set bit CAL ADC_CR2 Hiệu chuẩn xong CAL set lại phần cứng ADC bình thường Mã hiệu chuẩn đặt ADC_DR - DMA: liệu ADC lưu vào ghi ADC_DR nên cần dùng DMA để tránh liệu Chỉ kết thúc chuyển đổi tạo yêu cầu DMA Cho phép chuyển liệu từ ADC_DR đến vị trí đích chọn - Một số ghi: + ADC_SR: Chứa cờ báo trạng thái STRT: Channel bắt đầu chuyển đổi ADC; JSTRT: channel bắt ADC có tín hiệu bên ngồi; JOEC: Kết thúc ADC có tín hiệu bên ngồi; EOC: kết thúc ADC; AWD: Analog Watchdog xảy Figure 28 ADC Status register (ADC_SR) + ADC_CR1: cho phép analog watchdog, interrupt, dual mode, scan mode Figure 29 ADC Control Register (ADC_CR1) +ADC_CR2: Điều khiển trình chuyển đổi ADC Figure 30 ADC Control Register (ADC_CR2) 16 Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh +ADC_SMPR2: thời gian lấy mẫu SMPX[2:0]=000-100 tương ứng với 1.5, 7.5, 13.5, 28.5, 41.5, 55.5, 71.5, 239.5 cyles Tconv = Sampling time +12.5 cycles (4) VD: ADCCLK = 14MHz thời gian lấy mẫu 1.5 cycles Vậy Tconv = 1.5 + 12.5 = 14 cycles = 1us Figure 31 ADC sample time register (ADC_SMPR2) • DMA - Tính năng: + channel kênh DMA1 cấu hình riêng biệt + Môi channel kết nối để dành riêng cho tín hiệu DMA từ thiết bị ngoại vi, hay tín hiệu nội bên MCU + Có mức ưu tiên lập trình cho channel + Hỗ trợ kích thước data sử dụng byte, 2-byte (half word) 4-byte (word) + Hỗ trợ việc lặp lại liên tục data + ngắt kiện (DMA Half Transfer, DMA Transfer complete DMA Transfer Error) + Memory-to-memory transfer + Peripheral-to-memory and memory-to-peripheral, and peripheral-to-peripheral transfers + Có quyền truy cập tới Flash, SRAM, APB1, APB2, AHB 17 Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh Figure 32 DMA block diagram in connectivity line devices - Channel DMA1 phụ thuộc vào chức sử dụng Figure 33 Summary of DMA1 requests for each channel 18 Đồ án tiến hành thực nghiệm - GVHD: TS Trương Quang Vinh Một số ghi quan trọng: + DMA_ISR: trạng thái ngắt: transfer error, half transfer transfer complete Figure 34 DMA interrupt status register (DMA_ISR) + DMA_CCRx: cấu hình DMA Figure 35 DMA channel x configuration register (DMA_CCRx) + DMA_CNDTRx: chứa số lượng data truyền Figure 36 DMA channel x number of data register (DMA_CNDTRx) + DMA_CPARx: chứa địa ngoại vi Figure 37 DMA channel x peripheral address register (DMA_CPARx) + DMA_CMARx: chứa địa nhớ Figure 38 DMA channel x memory address register (DMA_CMARx) • Timer - Các chế độ hoạt động Timer: + Input capture 19 Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh + Ouput compare + PWM generation (Edge- or Center-aligned modes) + One-pulse mode ouput - Ngắt timer: giá trị đếm đếm timer vượt giá trị Auto Reload Value cờ báo tràn kích hoạt Trình phục vụ ngắt tràn xảy cấu hình cho phép trước - Chu kỳ ngắt tính theo cơng thức sau: t_timer = (PSC+1)(ARR+1)/sysclk_timer (5) Với: t_timer: thời gian ngắt PSC: giá trị nạp vào cho chia tần số timer (16b-bit) ARR: giá trị đếm nạp vào cho timer Sysclk_timer: tần số clock hệ thống chia cho timer sử dụng - Một số ghi: + TIMx_CR1: CKD: chia clock; DIR: up/down counter; CEN: cho phép đếm Figure 39 TIMx control register (TMx_CR1) + TIMx_SR: cờ biểu thị trạng thái timer Figure 40 TIMx status register (TIMx_SR) + TIMx_CNT: chứa giá trị đếm timer Figure 41 TIMx counter (TIMx_CNT) + TIMx_PSC: chứa giá trị chia tần số Figure 42 TIMx prescaler (TIMx_PSC) 20 Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh + TIMx_ARR: chứa giá trị đích đếm so sánh với giá trị TIMx_CNT Figure 43 TIMx auto-reload register (TIMx_ARR) • I2C - Có thể hoạt động chế độ: slave transmitter, slave receiver; master transmitter; master receiver Figure 44 I2C bus protocol - Standard speed lên tới 100kHz, Fast Speed lên tới 400kHz - Có hai chế độ 7-bit địa hay 10-bit địa - Một số ghi: + I2C_CR1: ACK: cho phép nhận tín hiệu ACK return; STOP; START Figure 45 I2C control register (I2C_CR1) + I2C_CR2: ITBUFEN: cho phép xảy ngắt có data truyền nhận; ITEVTEN: cho phép ngắt xảy kiện bit: SB, ADDR, ADD10, STOPF, BTF, TxE, RxE; ITERREN: cho phép ngắt có lỗi; FREQ[5:0]: chia tần số tính từ nhánh clock hệ thống chia cho I2C 21 Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh Figure 46 I2C control register (I2C_CR2) + I2C_OAR1: ADDMODE: cài đặt số bit địa hay 10; ADD[9:8]: dùng mode 10-bit; ADD[7:1]: bit địa slave; ADD0: dùng mode 10-bit Figure 47 I2C own address register (I2C_OAR1) + I2C_DR: Chứa data truyền nhận Figure 48 I2C data register (I2C_DR) +I2C_SR1: Các cờ trạng thái trình truyền nhận Figure 49 I2C status register (I2C_SR1) + I2C_CCR: F/s: mode speed; CCR[11:0]: clock control cho Fm/Sm mode (Master mode) Figure 50 I2C Clock control register (I2C_CCR) THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG 3.1 Yêu cầu thiết kế - Thiết kế mạch đo nồng độ cồn khí thở sử dụng vi điều khiển ARM - Đo hiển thị kết đo, có nút nhấn để đo, có báo hiệu bắt đầu đo đo xong 22 Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh 3.2 Phân tích thiết kế - Sử dụng vi điều khiển ARM: chọn kit STM32F103C8T6 Blue Pill (50k) dễ mua, giá rẻ hẳn kit MSP430 LauchPad (350k) STM sử dụng nhiều thực tế có dịng khác thay giá rẻ dòng GD CKS Trung Quốc Như dòng CKS ta thay trực tiếp vào STM mà không cần chỉnh sửa lại phần cứng hay code - Điều khiển: sử dụng Button làm nút nhấn, phần báo hiệu sử dụng Buzzer - Hiển thị: sử dụng LCD 1602 (40k) phù hợp với mức độ hiển thị thông tin, giá rẻ, rẻ so với sử dụng Oled 0.91 (47k) Tuy nhiên sử dụng oled yêu cầu nhỏ gọn Sử dụng led đoạn lựa chọn giá rẻ khoảng 8k, nhiên hiển thị số nên thông tin hiển thị bị hạn chế - Cảm biến: chọn MQ3 Ngồi thị trường có hai loại cảm biến đo nồng độ cồn dễ dàng mua MQ135 MQ3 Giá hai cảm biến tương đương Nhưng MQ3 đo cồn khí gas, cịn MQ135 đo nhiều CO, CO2 nên độ xác MQ3 - Nguồn: sử dụng Pin 9V làm nguồn cấp cần qua ổn áp 5V để cấp nguồn cho vi điều khiển ngoại vi 3.3 Sơ đồ khối chi tiết Nguồn STM32F103C8T6 MQ3 LCD 1602 Buzzer Button Figure 51 Sơ đồ khối chi tiết 23 Đồ án tiến hành thực nghiệm - GVHD: TS Trương Quang Vinh Như phân tích trên: nguồn cấp cho vi điều khiển thiết bị ngoại vi, vi điểu khiển STM32F103C8T6 đọc giá trị từ cảm biến MQ xử lý hiển thị qua LCD 1602 có hiệu lệnh đo từ Button Buzzer để báo hiệu cho người dùng 3.4 Sơ đồ mạch chi tiết Source U2 7805 U1 STM32 9V B12 B13 B14 Blue Pill 3V3 A8 B11 www.youtube.com/satyamkr80 RST A9 A11 A12 A15 B3 B4 B5 B6 B7 B8 22 21 19 18 17 16 15 14 13 12 11 10 B10 B1 B0 A7 A6 A5 A4 A3 A2 A1 A0 B9 Satyam Singh C15 C14 G C13 A14 5V VO VCC C2 0.1u VCC gas temp Display VCC SCL SDA VSS VCC LCD1 VDD SCL SDA VSS JHD-2X16-I2C VB Gas Sensor 34 37 3V3 0.33u G B15 A10 C1 B1 G STM32 A13 25 26 27 28 29 30 31 32 33 38 39 40 41 SCL 42 SDA 43 45 Buzzer 46 VI GND GND MCU Temp sensor GAS1 VCC Buzzer U3 26.0 VOUT Vcc OUT GND R1 temp 100 LM35 C3 0.1uF R6 10k BC547 R2 R5 BUZ1 100 3.1k BUZZER 3.1k R4 gas 1000 TestPin Q1 VCC R3 Buzzer MQ-3 VCC www.TheEngineeringProjects.com MQ-3 GAS SENSOR Figure 52 Sơ đồ mạch chi tiết - Phần nguồn: sử dụng pin 9V sử dụng IC ổn áp LM7805 để cấp nguồn - Phần cảm biến: V0 R2 RS 20k R3 3.1k 3.1k V01 R4 24 Đồ án tiến hành thực nghiệm GVHD: TS Trương Quang Vinh + MQ3: sử dụng chia áp điện trở 3.1k Ω mắc song song với R2=20k Ω (phần lý thuyết) điện áp ADC tối đa vi điều khiển đọc 3.3V ta được: R2’ = R2//(R3+R4) = 20//6.2 = 4.7k Ω + R2’=RL=4.7k Ω nên để tính ta cần lấy V01 nhân tra figure + Ngồi cịn sử dụng thêm cảm biến nhiệt độ để tăng độ xác cho cảm biến MQ3 - Phần hiển thị: dùng lcd 1602 giao I2C - Buzzer: để thơng báo có sử dụng transistor BC547 để kéo dòng - Button: button chân để người dùng nhấn để bắt đầu đo Và button cịn lại button khí áp suất Khi người dùng thổi vào lực thổi đẩy hai đầu button chạm vào mạch bắt đầu đo Tránh cho trường hợp đo sai người dùng chưa thổi 3.5 Sơ đồ giải thuật Figure 53 Lưu đồ giải thuật cho vi điều khiển 25 Đồ án tiến hành thực nghiệm - GVHD: TS Trương Quang Vinh Khi nhấn nút có ngắt ngồi xảy ra, chương trình bắt đầu sẵn sàng cho việc đo Việc đo bắt đầu có lực đẩy tác động lên nút nhấn giả, người thổi áp suất tăng làm tác động lên nút nhấn giả, lúc vi điều khiển bắt đầu đọc ADC xử lý số liệu - Quá trình đọc xử lý ADC sau: Bắt đầu Value_sensor=0 Max=0 Count=0 Cmgl=0 Min=0 Value_sensor= Min+Max While tsensor Max=sensor Value=0 Count=0 Đúng Max