1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế mạch đo nhiệt độ độ ẩm khí ga

28 225 1

Đ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

Thông tin cơ bản

Định dạng
Số trang 28
Dung lượng 1,45 MB
File đính kèm Do nhiet do - do am khi ga.rar (790 KB)

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO ĐỒ ÁN Đề Tài: Đo nhiệt độ, độ ẩm khí ga - Yêu cầu Đề Tài: Giao tiếp qua Module Bluetooth HC05 truyền liệu đo điện thoại PC Báo cho người dùng biết có cố có rò rỉ khí độc Giáo viên hướng dẫn: Cơ Đinh Thị Nhung Họ tên: Nguyễn Vũ Tùng Giang 20101438 ĐTVT-08 K55 Phan Quốc Việt 20102782 ĐTVT-08 K55 Nguyễn Hữu Hiển 20101532 ĐTVT-08 K55 LỜI NÓI ĐẦU Kỹ thuật vi xử lý điều khiển xuất nhiều lĩnh vực khoa học kỹ thuật Với phát triển mạnh mẽ công nghệ, nhiều họ vi xử lý điều khiển với tính xuất ngày đa dạng Trong họ vi điều khiển MSP430 ứng dụng rộng rãi nhiều lĩnh vực thực tiễn Để bước làm chủ áp dụng họ vi điều khiển vào ứng dụng thực tiễn, nhằm giải toán cụ thể sống, phạm vi Project II, nhóm chúng em thực đề tài: “Đo hiển thị nhiệt độ, độ ẩm, môi trường đồng thời đưa cảnh báo nồng độ khí gas mơi trường vượt q giới hạn cho phép” Với ý kiến đóng góp thầy giáo hướng dẫn tinh thần tự tìm hiểu, nghiên cứu nhóm chúng em đưa sản phẩm chạy thực tế đáp ứng tương đối đầy đủ yêu cầu đưa đề tài CHƯƠNG I: MÔ TẢ ĐỀ TÀI 1.1.Yêu cầu chức - Đo nhiệt độ, độ ẩm môi trường - Đo nồng độ khí gas mơi trường đưa cảnh báo - Hiển thị giá trị nhiệt độ, độ ẩm môi trường 1.2 Yêu cầu phi chức - Mạch hoạt động tốt môi trường khắc nghiệt - Mạch thiết kế nhỏ gọn để dễ dàng tiến hành lắp đặt - Chi phí thực mạch thấp 1.3 Các cơng cụ sử dụng - IAR Embedded Workbench: trình biên dịch soạn thảo code - Altium Designer : phần mềm thiết kế mạch nguyên lý, mạch in 1.4 Sơ đồ khối hệ thống CHƯƠNG II: THIẾT KẾ PHẦN CỨNG – PHÂN TÍCH ĐẶC ĐIỂM, CHỨC NĂNG CÁC KHỐI TRONG HỆ THỐNG Dựa vào yêu cầu chức năng, phi chức sơ đồ khối hệ thống, nhóm chúng em đưa thiết kế sơ đồ ngun lý mạch hình vẽ, khối điều khiển sử dụng KIT phát triển LaunchPad MSP430, chạy MSP430G2553 Hình 1: Sơ đồ nguyên lý hệ thống Sau đây, nhóm chúng em xin trình bày cụ thể sơ đồ, đặc điểm chức khối hệ thống 2.1 KHỐI ĐIỀU KHIỂN – KIT LAUNCHPAD MSP430 Trong ứng dụng này, nhóm sử dụng vi điều khiển MSP430G2553 chạy KIT phát triển LaunchPad MSP430 Hình 2: Kit phát triển LaunchPad MSP Kit LaunchPad MSP hãng ST cung cấp, Kit bao gồm: - Khối nguồn sử dụng nguồn DC 5V - Khối mạch nạp tích hợp sẵn giúp người sử dụng trực tiếp nạp debug chương trình Kit - Khối vi điều khiển gồm đế chíp jump cắm kết nối với I/O vi điều khiển giúp người sử dụng cắm bo mở rộng ứng dụng bên - Các linh kiện khác như: Led đơn, nút bấm … Trong phạm vi Project II, nhóm chúng em sử dụng Kit để nạp chương trình kết nối với chân I/O MSP430G2553 bo chức bên để giao tiếp với cảm biến, điều khiển hiển thị, điều khiển cảnh báo 2.2 KHỐI HIỂN THỊ Khối hiển thị sử dụng LCD16x2, sử dụng để hiển thị giá trị nhiệt độ, độ ẩm môi trường trả từ cảm biến Hình 3: Khối hiển thị LCD16x2 Biến trở VR1 10K sử dụng để chỉnh độ tương phản hình LCD16x2 2.3 KHỐI CẢNH BÁO Khối cảnh báo sử dụng còi chíp 5V, nồng độ khí gas môi trường vượt giới hạn cho phép, khối điều khiển phát tín hiệu điều khiển đến khối cảnh báo còi chíp kêu Khi nồng độ khí gas nằm giới hạn an tồn, khối điều khiển phát tín hiệu điều khiển tắt còi chíp Hình 4: Khối cảnh báo 2.4 KHỐI CẢM BIẾN Để đo nhiệt độ, độ ẩm nồng độ khí gas mơi trường, nhóm chúng em sử dụng loại cảm biến: - Cảm biến nhiệt độ độ ẩm DHT11 - Cảm biến khí gas MQ2 Trên bo mạch, jump cắm thiết kế để dễ dàng kết nối với cảm biến Hình 5: Jump kết nối cảm biến  Byte : kiểm tra tổng Nếu Byte = (8 bit) (Byte1 +Byte2 +Byte3 + Byte4) giá trị độ ẩm nhiệt độ xác, sai kết đo khơng có nghĩa  Đọc liệu: Sau giao tiếp với DHT11, DHT11 gửi liên tiếp 40 bit MCU, tương ứng chia thành byte kết Nhiệt độ độ ẩm  Bit 0:  Bit 1: Sau tín hiệu đưa 0, ta đợi chân DATA MCU DHT11 kéo lên Nếu chân DATA khoảng 26-28 us 0, tồn 70us Do lập trình ta bắt sườn lên chân DATA, sau delay 50us Nếu giá trị đo ta đọc bit 0, giá trị đo giá trị đo Cứ ta đọc bit 2.4.2 KHỐI CẢM BIẾN KHÍ GAS MQ2 - MQ2 cảm biến khí, dùng để phát khí gây cháy Nó cấu tạo từ chất bán dẫn SnO2 Chất có độ nhạy cảm thấp với khơng khí Nhưng mơi trường có chất ngây cháy, độ dẫn thay đổi Chính nhờ đặc điểm người ta thêm vào mạch đơn gian để biến đổi từ độ nhạy sang điện áp - Khi môi trường điện áp đầu cảm biến thấp, giá trị điện áp đầu tăng nồng độ khí gây cháy xung quang MQ2 cao - MQ2 hoạt động tốt mơi trường khí hóa lỏng LPG, H2, chất khí gây cháy khác Nó sử dụng rộng rãi công nghiệp dân dụng mạch đơn giản chi phí thấp Hình 9: Sơ đồ chân cảm biến MQ2 - Trong đó:  Chân 1,3 A  Chân 2,5 B  Chân 4,6 C - Sơ đồ kết nối MQ2 Hình 10: Sơ đồ module MQ2 - Trong mạch có chân đầu Aout Dout Trong đó:  Aout: điện áp tương tự Nó chạy từ 0.3 - 4.5V, phụ thuộc vào nồng độ khí xung quanh MQ2  Dout: điện áp số, giá trị 0,1 phụ thuộc vào điện áp tham chiếu nồng độ khí mà MQ2 đo  Việc có chân số Dout tiện cho ứng dụng đơn giản, khơng cần đến vi điều khiển Khi ta cần chỉnh giá trị biến trở tới giá trị nồng độ ta muốn cảnh báo Khi nồng độ MQ2 đo thấp mức cho phép Dout = Đèn Led tắt Khi nồng độ khí đo lớn nồng khí cho phép, Dout =0, đèn led sáng Trong đề tài này, nhóm chúng em sử dụng chân Dout module để cảnh báo có nồng độ khí gas mơi trường Chân Dout kết nối với đầu in MSP430G2553, tín hiệu đọc mức logic cho tắt còi chíp, tín hiệu đọc cho còi chíp kêu để cảnh báo Sau thiết kế sơ đồ nguyên lý, nhóm tiến hành dây vẽ mạch in để làm mạch in tay: Hình 11: Sơ đồ mạch in hệ thống CHƯƠNG II: LẬP TRÌNH PHẤN MỀM Chương trình hệ thống viết trình biên dịch IAR Embedded Workbench, chạy vi điều khiển MSP430G2553 Code gồm file: - Main.c: Chứa chương trình chính, nêu rõ thuật toán đề tài - Main.h: Chứa khai báo thư viện, định nghĩa chân I/O giao tiếp - Các file driver: dht11, lcd16x2,…đây file nêu rõ phương thức giao tiếp vi điều khiển với driver Hàm main.c: #include "main.h" void Buzz_On() { P2OUT |= SPEAK; } void Buzz_Off() { P2OUT &= ~SPEAK; } void main(void) { uint8_t temp=2; uint8_t humi=12; uint8_t str[16]; WDTCTL = WDTPW + WDTHOLD; P1DIR = 0xff; // Stop watchdog timer, Tan so Clock 1MHz // Cau hinh PORT1 Output P1OUT = 0x00; P2DIR |= BIT0|BIT1; // Cau hinh PORT2.0, PORT2.1 Output P2DIR &= ~BIT2; // Cau hinh PORT2.2 Input P2REN &= ~BIT2; // Cau hinh khong tro treo cho PORT2.2 Buzz_Off(); LCD_Init (); LCD_Gotoxy(0,0); sprintf(str," PROJECT II "); LCD_Puts(str); _delay_cycles(2000000); // 2s LCD_Clear(); while(1) { if(DHT_GetTemHumi (&temp,&humi)) { sprintf(str,"Temp: %d%cC",temp,'\xdf'); LCD_Gotoxy(0,0); LCD_Puts(str); sprintf(str,"Humi: %d%c",humi,'%'); LCD_Gotoxy(0,1); LCD_Puts(str); } if(P2IN & MQ2)Buzz_On(); else Buzz_Off(); } } Hàm main.h: #ifndef MAIN_H_ #define MAIN_H_ /* Kieu So Nguyen Co Dau */ typedef signed char int8_t; typedef signed int int16_t; typedef signed long int int32_t; /* Kieu So Nguyen Khong Dau */ typedef unsigned char uint8_t; typedef unsigned int uint16_t; typedef unsigned long int uint32_t; /* Kieu So Thuc */ typedef float float32_t; #include #include #include #include #include // Khai bao chan cho LCD16x2 - PORT1 #define LCD_RS BIT0 #define LCD_RW BIT1 #define LCD_EN BIT2 // Khai bao cho DHT11 - PORT2 #define DHT_DDR_DATA BIT0 #define DHT_DATA_OUT BIT0 #define DHT_DATA_IN BIT0 // Khai bao Speak - PORT2 #define SPEAK BIT1 // Khai bao MQ2 - PORT2 #define MQ2 BIT2 #define DHT_ER #define DHT_OK #endif /*MAIN_H_*/ Driver dht11.c: /*********************************** VI DU ************************************ uint8_t dht_nhiet_do,dht_do_am,dht_Ok; dht_Ok = DHT_GetTemHumi(&dht_nhiet_do,&dht_do_am); *******************************************************************************/ #include "main.h" /******************************************************************************* Noi Dung : MCU gui yeu cau chuyen doi den DHT11 Tham Bien : Khong Tra Ve : Khong ********************************************************************************/ uint8_t DHT_GetTemHumi (uint8_t *tem,uint8_t *humi) { uint8_t buffer[5]={0,0,0,0,0}; uint8_t ii,i,checksum; P2DIR |= DHT_DDR_DATA; P2OUT |= DHT_DATA_OUT; //delay_us(60); _delay_cycles(60); P2OUT &= ~DHT_DATA_OUT; //delay_ms(25); // it nhat 18ms _delay_cycles(25000); P2OUT |= DHT_DATA_OUT; P2DIR &= ~DHT_DDR_DATA; //delay_us(60); _delay_cycles(60); if(P2IN & DHT_DATA_IN)return DHT_ER ; else while(!(P2IN & DHT_DATA_IN)); //Doi DaTa len //delay_us(60); _delay_cycles(60); if(!(P2IN & DHT_DATA_IN))return DHT_ER; else while(P2IN & DHT_DATA_IN); //Doi Data ve //Bat dau doc du lieu for(i=0;i

Ngày đăng: 22/10/2018, 21:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w