Thiết kế mạch đo nhiệt độ, độ ẩm có giao tiếp với máy tính

30 1.6K 9
Thiết kế mạch đo nhiệt độ, độ ẩm có giao tiếp với máy tính

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN ĐỒ ÁN Đề tài : Thiết kế mạch đo nhiệt độ, độ ẩm giao tiếp với máy tính Giáo viên hướng dẫn : Nhóm sinh viên thực : Mục lục MỤC LỤC DANH MỤC HÌNH VẼ DANH MỤC BẢNG  Chương Giới thiệu chung Giới thiệu chung sơ đồ khối mạch linh kiện sử dụng mạch  Chương 2.Chức cảu khổi I/ Khối cảm biến nhiệt độ LM35 II/ Khối cảm biến độ ẩm HS1101 III/ Bộ chuyển đổi ADC 0804 IV/ Khối vi điều khiển 8051  Chương Mạch nguyên lý thi công I/ Mcahj nguyên lý II/ Giải thuật chương trình III/Thi công PHỤ LỤC DANH MỤC HÌNH VẼ HÌnh Sơ đồ khối mạch đo nhiệt độ độ ẩm giao tiếp với máy tính Hình Sơ đồ chân LM35 Hình Cách mắc cảm biến HS1101 với IC 555 Hình Hình Hình Hình Sơ đồ chân ADC 0804 Sơ đồ chân 8051 cách mắc ban đầu .Sơ đồ nguyên lý mạch Thử nghiệm mạch đo điều kiện nhiệt độ phòng Hình Thử nghiệm mạch đo điều kiện tăng nhiệt độ cao ( dùng bật lửa ) Hình Thử nghiệm mạch giao tiếp với máy tính ( hiển thị Nhiệt độ ) Hình 10 Thử nghiệm mạch giao tiếp với máy tính ( hiển thị Độ ẩm ) DANH MỤC BẢNG Bảng Các giá trị tần số thay đổi theo độ ẩm Bảng Bảng liệt chân ADC 0804 công dụng sử dụng Lời mở đầu Trong ứng dụng hàng ngày, nhu cầu theo dõi nhiệt độ độ ẩm ngày trở nên phổ biến thiết thực sử dụng trong: Sản xuất chế biến nông nghiệp Hiển thị thực thi điều khiển (quạt gió, máy sấy, điều hòa, hay báo động) Datalog liệu môi trường khu vực Theo dõi môi trường, chế độ làm việc số dây chuyền, thiết bị yêu cầu cao.Khái niệm đo nhiệt độ độ ẩm từ lâu, tất đại lượng vật lý nhiệt độ độ ẩm quan tâm nhiều Nhiệt độ độ ẩm yếu tố ảnh hưởng trực tiếp đến tính chất vật chất môi trường sống Trong công nghiệp sản xuất lĩnh vực đo lường điều khiển, trình đo xử lí nhiệt độ, độ ẩm giữ vai trò quan trọng Trong thiết bị thiết bị đòi hỏi cảm biến đo điều chỉnh nhiệt độ, độ ẩm không khí điều hòa, chuống báo cháy, lò vi sóng… Do ta thấy tầm quan trọng tính thực tế việc đo điều chỉnh nhiệt độ độ ẩm thiết bị tự động hóa đời sống hàng ngày Ở đồ án này, chúng em nhận đề tài thiết kế “Mạch đo nhiệt độ độ ẩm cho môi trường, dùng cảm biến LM35 để đo nhiệt độ HS1101 để đo độ ẩm, giao tiếp với máy tính qua RS232 ” Đây đề tài sát với thực tế, mang tính ứng dụng thực tiễn cao Trong đồ án hẳn nhiều sai sót, chúng em mong nhận bảo, hướng dẫn để đồ án hoàn thiện Chúng em chân thành cảm ơn ! CHƯƠNG GIỚI THIỆU CHUNG Ở đề tài này, nhóm em sử dụng :     Cảm biến đo nhiệt độ LM35, cảm biến đo độ ẩm HS1101 Bộ chuyển đổi tín hiệu tương tự sang số ADC0804 Vi điều khiển 89S52 Bộ tạo dao động NE555  Bô giao tiếp với máy tính sử dụng RS232  Bộ hiển thị số LCD LM032L Sơ đồ khối : Hình Sơ đồ khối mạch đo nhiệt độ độ ẩm giao tiếp với máy tính  Khối cảm biến LM35 nhận nhiệt độ từ môi trường bên chuyển thành mức điện áp DC tương ứng đưa vào chuyển đổi ADC0804  Khối cảm biến HS1101 nhận độ ẩm từ môi trường , thông qua khối NE555 để tạo dao động giá trị điện dung HS1101 độ ẩm môi trường  Khối vi điều khiển 89S52 nhận liệu dạng số từ khối chuyển đổi ADC0804 từ NE555 kèm theo tín hiệu điều khiển đến LCD để hiển thị  Khối giao tiếp máy tính sử dụng RS232, nhận tín hiệu từ vi điều khiển giao tiếp với máy tính qua cổng COM CHƯƠNG 2, CHỨC NĂNG CÁC KHỐI I/ Khối cảm biến nhiệt độ LM35  Nguyên lý hoạt động chung IC cảm biến nhiệt:  IC đo nhiệt độ mạch tích hợp nhận tín hiệu nhiệt độ chuyển thành tín hiêu điện dạng dòng điện hay điện áp Dựa vào đặc tính nhạy bán dẫn với nhiệt độ, tạo điện áp hay dòng điện , tỉ lệ tuyến tính với nhiệt độ môi trường Đo tín hiệu điện ta biết giá trị nhiệt độ cần đo nhiều loại IC cảm biến nhiệt , sử dụng thông dụng nhờ rẻ tiền dễ kiếm LM35  LM35 độ biến thiên theo nhiệt độ 10mV/1 1,5 C Sai số lớn C nhiệt độ lớn 100 C Hình 2.Sơ đồ chân LM35  Phạm vi sử dụng -55 C -150 C  Tín hiệu đầu tuyến tính liên tục với thay đổi đầu vào  Giới hạn đồ án nhóm em nhiệt độ phòng từ C -150 C  Tính toán nhiệt dộ đầu LM35 : Ở đây, việc đo nhiệt độ ta sử dụng cách LM35  ADC0804  89S52 Do ta U=t.k với U điện áp đầu Vout t nhiệt độ môi trường cần đo k hệ số theo nhiệt độ (10mV/1 C ) Điện áp cấp cho LM35 5V , ADC 8bit , bước thay đổi LM35 5  Giá trị ADC đo điện áp đầu vào 256 t.k LM35 256 2  10 256.t  0.512t Vậy nhiệt độ ta đo t=giá trị ADC/0.512=1.95.ADC II/ Khối cảm biến độ ẩm HS1101 HS1101 loại cảm biến đo độ ẩm Độ xác  2% Dải nhiệt độ hoạt động từ -400  1000 C Cảm biến dùng phổ biến đời sống , thường kết hợp với cảm biến LM35 để đo nhiệt độ  HS1101 tụ điện dung biến thiên theo độ ẩm, giá trị điện dung thay đổi độ ẩm thay đổi Nguyên lý mạch tạo dao động tần số thay đổi tương ứng theo giá trị điện dung độ ẩm môi trường Do vậy, để đo độ ẩm ta phải thiết kế mạch đo điện dung HS1101 Trong thực tế người ta thường ghép nối HS1101 với IC NE555 (theo datasheet nhà sản xuất) Khi giá trị điện dung HS1101 thay đổi làm thay đổi tần số đầu IC 555 Như cần đo tần số đầu đo điện dung HS1101 hay độ ẩm môi trường  Sau cách mắc HS1101 với NE555 Hình Cách mắc cảm biến Hs1101 với IC 555  Cách thức tính độ ẩm : Giá trị điện dung HS1101 thay đổi làm thay đổi tần số đầu IC555 (Fout), cần tần số đầu IC555 để tìm độ ẩm  Ta công thức tính tần số sau : F 1  thigh  tlow (C @ % RH *( R4  2* R 2)*ln 2) Trong F tần số điện dung theo độ ẩm C @ % RH  Ta công thức liên hệ độ ẩm điện dung 7 5 3 1  C ( pF )  C @55%*(1.25*10 RH 1.36*10 RH  2.19*10 RH  9.0*10 ) C(pF) điện dung đo C@55%~180pF Từ công thức ta mối liên hệ độ ẩm tần số Giá trị điện trở R2 R4 576.000 49.900 C@55% 180pF Độ ẩm (RH) Tần số (F) 7.410 7.392 7.374 7.357 7.340 ………………………………………………………… ………………………………………………………… 94 6.121 95 6.104 96 6.087 97 6.070 98 6.053 99 6.036 100 6.019 Bảng Các giá trị tần số thay đổi theo độ ẩm III/ Bộ chuyển đổi ADC0804  Để kết nối nguồn tín hiệu tương tự với hệ thống xử lý số người ta dùng mạch chuyển đổi tương tự sang số(ADC) nhằm biến đổi tín hiệu tương tự sang số  Chuyển đổi ADC nhiều phương pháp, song phương pháp thông số :  Độ xác chuyển đổi  Tốc độ chuyển đổi  Dải biến đổi tín hiệu tương tự đầu vào  Các thông số ADC0804  Chip điện áp Vcc +5V độ phân giải bit  Thời gian chuyển dổi phụ thuộc vào tần số đồng hồ cấp tới chân CLK CLK IN không bé 110  s  Chức chân Hình 4.Sơ đồ chân ADC 0804 STT Chân CS(chip set) RD(read) WR (write) , 19 CLK IN(4) CLK R (19) Chức Chân chọn chip Đầu vào tích cực mức thấp để kích hoạt ADC0804, để truy cập chân phải mức thấp Chân nhận tín hiệu vào tích cực mức thấp.Các chuyển đổi 0804 chuyển đổi đầu vào tương tự thành số nhị phân giữ ghi Chân RD dử dụng phép đưa tín hiệu chuyển đổi tới đầu 0804 Khi CS=0 xung cao xuống thấp đến chân RD liệu dạng bit đưa tới chân liệu (DB0-DB7) Chân vào tích cực mức thấp , dùng báo cho ADC biết để bắt đầu trình chuyển đổi Nếu CS=0 WR tạo xung cao xuống thấp ADC bắt đầu trình chuyển đổi giá trị đầu vào tương tự Vin thành số nhị phân bit Khi việc chuyển đổi hoàn tất chân INTR đưa xuống mức thấp chân vào nối tới đồng hồ sử dụng để tạo thời gian Tuy nhiên ADC0804 tạo xung đồng hồ riêng Để dùng đồng hồ riêng chân CLK IN CLK R (chân số 19) nối với tụ điện điện trở INTR Chân ngắt tích cực mức thấp Bình thường chân trạng thái cao việc chuyển đổi tương tự số hoàn tất chuyển xuống mức thấp để báo cho CPU biết liệu chuyển đổi sẵn sàng để lấy Sau INTR xuống thấp, cần đặt CS = gửi xung cao xuống thấp tới chân RD để đưa liệu 6,7 Vin + (6) Đây đầu vào tương tự vi sai, Vin - (7) Vin = Vin(+) – Vin(-) Thông thường Vin(-) nối tới đất Vin(+) dùng làm đầu vào tương tự chuyển đổi dạng số Vref/2 Chân điện áp đầu vào dùng làm điện áp tham chiếu Nếu chân hở điện áp đầu vào tương tự cho ADC0804 nằm dải đến +5V Tuy nhiên, nhiều ứng dụng mà đầu vào tương tự áp đến Vin khác với dải đến +5V Chân Vref/2 dùng để thực điện áp đầu khác đến +5V 20 Vcc Chân nguồn nuôi +5V Chân dùng làm điện áp tham chiếu đầu vào Vref/2 để hở 11-18 D7-D0 Các chân liệu số (D7 bit cao MSB D0 bit thấp LSB) Các chân đệm ba trạng thái liệu chuyển đổi truy cập chân CS = chân RD đưa xuống mức thấp Để tính điện áp đầu ta tính theo công thức sau: Dout = Vin / Kích thước bước Kích thước bước=Vin/256 Bảng Bảng liệt chân ADC 0804 công dụng sử dụng IV/ Khối vi điều khiển 8051  Sơ đồ chân 10 Đo Nhiệt Độ Đo Độ Ẩm Khởi động ADC Đọc tần số f Đọc giá trị ADC i=0 i = i+1 Chuyển đổi giá trị ADC đọc S Xuất nhiệt độ LCD f  f i  Đ Độ ẩm = i Xuất độ ẩm LCD Truyền liệu lên PC S RI = Đ SBUF = ‘N’ Đ S S SBUF = ‘D’ Đ Xuất liệu cổng UART S End 16 III/ THI CÔNG Hình Thử nghiệm mạch đo điều kiện nhiệt độ phòng Hình Thử nghiệm mạch đo điều kiện tăng nhiệt độ cao ( dùng bật lửa ) 17 Hình Thử nghiệm mạch giao tiếp với máy tính ( hiển thị Nhiệt độ ) Hình 10 Thử nghiệm mạch giao tiếp với máy tính ( hiển thị Độ ẩm ) 18 Phụ Lục Code chương trình : #include"main.h" #include #include" \Lib\Delay.h" // Khai bao ket noi voi LCD sbit LCD_RS = P0^0; sbit LCD_EN = P0^1; #define LCD_DATA P2 // Khai bao ket noi ADC #define ADC0804_DATA P1 sbit ADC0804_CS = P3^3; sbit ADC0804_RD = P3^4; sbit ADC0804_WR = P3^5; sbit ADC0804_INTR = P3^6; /// Bien toan cuc unsigned int tanso; unsigned int xung,dem; unsigned char doam; // Ham gui lenh cho LCD void Lcd_Cmd(unsigned char cmd) { LCD_RS = 0; LCD_DATA = cmd; LCD_EN = 0; 19 LCD_EN = 1; if(cmd= 3600) { dem=0; tanso = xung; xung=0; } 23 } unsigned int HS1101_GetHumi(unsigned int tanso) { unsigned int i; for(i=0;if[i]) return i; } return 100; } void Uart_Init() { // Khoi tao UART o mode 1, 9600 baud SM0 = 0; SM1 = 1; TMOD &= 0x0F; dong nap lai // Chon UART mode // 0010 xxxx - Timer1 hoat dong o che 8bit tu TMOD |= 0x20; TH1 = 0xFD; TR1 = 1; TI = 1; REN = 1; // Toc baud 9600 // Timer1 bat dau chay // San sang gui du lieu // Cho phep nhan du lieu } void Uart_Write(char c) { while(TI == 0); TI = 0; 24 SBUF = c; } void Uart_Write_Text(char * str) { unsigned char i = 0; while(str[i]!=0) { Uart_Write(str[i]); i++; } } char Uart_Data_Ready() { return RI; } char Uart_Read() { RI = 0; return SBUF; } void main(void) { unsigned char adc_value; unsigned int t; unsigned char *i; 25 Lcd_Init(); Delay_ms(500); TMOD &= 0x0F; TMOD |= 0x02; TH0= TL0 = 0x0; IT0=1; IE=0x83; TR0=1; Uart_Init(); Lcd_Init(); Delay_ms(500); Lcd_Out(1,1,"Nhiet Do: "); Lcd_Out(2,1,"Do Am: "); while(1) { adc_value = ADC0804_Read(); t = adc_value * 1.95f+0.5f; doam = HS1101_GetHumi(tanso); if(Uart_Data_Ready()==1); { *i = Uart_Read(); switch(*i) { case'N': { if(t

Ngày đăng: 13/04/2017, 21:34

Tài liệu cùng người dùng

Tài liệu liên quan