Máy đo nồng độ bụiđây là đề tài hay và đang rất cần thiết trong cuộc sống vì môi trường là nơi sinh sống của tất cả chúng tađây là đồ án môn học có mạch điện và code sử dụng pic16f883 và đã làm mạchđây là đề tài hay và đang rất cần thiết trong cuộc sống vì môi trường là nơi sinh sống của tất cả chúng tađây là đồ án môn học có mạch điện và code sử dụng pic16f883 và đã làm mạchđây là đề tài hay và đang rất cần thiết trong cuộc sống vì môi trường là nơi sinh sống của tất cả chúng tađây là đồ án môn học có mạch điện và code sử dụng pic16f883 và đã làm mạchđây là đề tài hay và đang rất cần thiết trong cuộc sống vì môi trường là nơi sinh sống của tất cả chúng tađây là đồ án môn học có mạch điện và code sử dụng pic16f883 và đã làm mạchmáy đo nồng độ bụimáy đo nồng độ bụimáy đo nồng độ bụi
Trang 1TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT
BỘ MÔN KỸ THUẬT ĐIỆN - ĐIỆN TỬ
TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT
BỘ MÔN KỸ THUẬT ĐIỆN - ĐIỆN TỬ
====o0o====
Trang 2BÁO CÁO BÀI TẬP LỚN DỤNG CỤ VÀ THIẾT BỊ ĐO
LƯỜNG ĐIỆN TỬ
ĐỀ TÀI:
THIẾT KẾ MẠCH ĐO NỒNG ĐỘ BỤI
Nhóm: 13 – ĐTAK59 GVHD: ThS Tống Ngọc Anh
Hà Nội, 10/2017 NHÓM 13 – DDT59A
Trang 32 Nguyễn Văn Đàm 1421060063
4
5
Nhận xét (phần GVHD ghi):
Trang 4
MỤC LỤC
MỤC LỤC 4
LỜI NÓI ĐẦU 7
CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ ĐỀ TÀI 8
1.1 Lý do chọn đề tài 8
1.2 Yêu cầu chức năng của đề tài 8
1.3 Kế hoạch thực hiện và phân chia công việc 8
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG 9
Chương2 9
2.1 Thiết kế phần cứng 9
2.1.1 Sơ đồ khối hệ thống 9
2.1.2 Khối mạch vào 9
2.1.3 Khối biến đổi 9
2.1.4 Khối hiển thị 9
2.2 Thiết kế phần mềm 9
2.3 Hình ảnh thật sản phẩm 9
CHƯƠNG 3: KÊT LUẬN 10
TÀI LIỆU THAM KHẢO 11
PHỤ LỤC A: ĐÓNG GÓP CÁC THÀNH VIÊN 12
PHỤ LỤC B: SOFTWARE CODE 13
Trang 5LỜI NÓI ĐẦU
Ngày nay nhu cầu đo các thông số , số liệu của các thiết bị các đại lượng của môi trườngxung quanh ta ngày càng tăng về số lượng và chất lượng đo Ví dụ đo nhiệt độ , độ ẩm ,điện áp … Và cùng với đó cũng có rất nhiều phương pháp đi như đo trực tiếp , đo gián tiếpqua cảm biến , qua các giá trị có liên quan
Trong điều kiện không khí ô nhiễm ngày càng gia tăng ở các thành lớn như Hà Nội thìviệc biết được nồng độ bụi trong không khí như bây giờ là điều hết sức cần thiết Và để đođược nồng độ bụi cũng có rất nhiều nhiều phương pháp đo một trong số đó là dùng cảmbiến bụi như : cảm biến đo nồng độ bụi GP2Y1010AUOF, hay dòng c mả
bi nGP2Y1014AU0F … Nh ng hôm nay mình sẽ s d ng c m bi n GP2Y1010AU0Fế ư ử ụ ả ế
đ n ng đ b i…ể ồ ộ ụ Tuy nhiên do kiến thức chuyên môn còn hạn chế, tài liệu tham khảo cógiới hạn nên còn xảy ra nhiều sai sót Chúng em rất mong mong thầy và các bạn góp ý bổsung để bản đồ án của chúng em được hoàn thiện hơn và giúp chúng em hiểu biết hơn trongquá trình học tập tiếp theo c m n các b n đã chú ý đ c !ả ơ ạ ọ
Nhóm chúng em xin chân thành cảm ơn!
Trang 6CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài:
Lí do nhóm 13 chúng em chọn đề tài “ Thiết kế mạch đo nồng độ bụi “ là do chúng emnhận thấy nhu cầu biết được chất lượng bầu không khí đang của người dân ngày càngtăng Và việc biết được nồng độ bụi trong không khí đang ở ngưỡng nào để người dân và
cơ quan chức năng biết và có biện pháp xử lí để đảm bảo môi trường sống trong sạch hơn.Chính vì lí do đó nên nhó e quyết định chọn đề tài lần này
1.2 Yêu cầu chức năng của đề tài:
- Mạch đo chính xác nhất nồng độ bụi có trong không khí tại vị trí đo
- Mạch đo làm việc ổn định và lien tục
- Màn hình hiển thị thông số cần đo rõ ràng
1.3 Kế hoạch thực hiện và phân chia công việc :
Kết Quả như sau:
- Thành viên Điệu phụ trách phần code
- Thành viên Phong phụ trách phần cứng và mô phỏng
- Thành viên Đàm phụ trách chung và kiêm phần báo cáo
- Ngày 21/12/2017 cả 3 thành viên đi mua linh kiện và làm mạch in
- Ngày 21/12/2017 hoàn thiện mạch in
- Ngày 22/12/2017 nạp code và hoàn thiện sản phẩm
CHƯƠNG 2: THIẾT KẾ HỆ THỐNG
2.1 Thiết kế phần cứng:
2.1.1 Sơ đồ khối hệ thống :
Trang 7Khối điều khiển trung tâm
Khối nguồn
Khối hiển thị
Khố cảm Biến ADC
Tạo xung dao
động
Chức năng và nhiệm vụ của các khối :
- Khối nguồn có chức năng cung cấp nguồn nuôi 5v cho mạch hoạt động
- Khối tạo xung dao động có chức năng tạo xung dao động cho vi điều khiển hoạtđộng
- Khối điều khiển trung tâm có chức năng thu nhận tín hiệu từ cảm biến và thục hiệnchuyển đổi thông tin và chuyển thông tin cần hiển thị tới màn hình hiển thị
- Khối hiển thị là màn hình có chức năng hiển thị thông tin cần thiết từ vi điều khiển
để người sử dụng quan sát thông tin cần
- Khối cảm biến ADC có nhiệm vụ nhận biết sự thay đổi của đại lượng cần đo vàchuyển đổi thành sự thay đổi tín hiệu điện áp
Mạch đo có nhiệm vụ là thu thập thông tin là sự thay đổi nồng độ bụi từ môitrường , xử lí thông tin đó và hiển thị để người quan sát nhận biết thông tin cầnthiết
Trang 8Đây là bộ dao động thạch anh có tác dụng tạo xung nhịp với tần số 20MHz cho VĐK hoạtđộng Hai đầu này được nối vào 2 chân OSC1 và OSC2 của VĐK.
- Khối cảm biến ADC :
Cảm biến bụi GP2Y0101AU0F
Trang 9- Thời gian sử dụng: 5 năm.
ổn định sau khi diot hồng ngoại được kích hoạt
- Chu kì lấy mẫu là 0.004ms Khi hoàn tất, thiết lập các pin LED LOW
để vô hiệu hóa các diot hồng ngoại
- Tính nồng độ bụi theo mối quan hệ giữa điện áp đầu ra và nồng độ bụi
Trang 10Bảng quan hệ giữa giá trị điện áp ra và nồng độ bụi
Nhiệm vụ là đo sự thay đổi của nồng độ bụi trong không khí và chuyển sự thay đổicủa đại lượng đo thành sự thay đổi điện áp
2.1.3 Khối biến đổi :
Vi điều khiển PIC16F883
Trang 11Vi điều khiển kiến trúc 8 bit
Cải thiện phiên bản thay thế 16F873 và 16F873A
Tối đa 24 chân I / O có sẵn
Bộ nhớ chương trình Flash gồm 4096 từ (4k @ 14bits)
256 bytes RAM
Dữ liệu EEPROM 256 bit
Tốc độ CPU 5 MIPS
Dao động ngoài lên đến 20 MHz
Dao động nội bộ chính xác với tần số lựa chọn từ 31 kHz đến 8 MHz 10-bit ADC và 11 kênh
Công nghệ NanoWatt cung cấp các tính năng và chức năng tiêu thụthấp và tiết kiệm năng lượng
Điện áp hoạt động 2V đến 5.5V
2 mô-đun chụp / so sánh / PWM
2 bộ đếm thời gian 8 bit và 1 bộ đếm thời gian 16 bit
Trang 12Lập lại giá trị lập trình lại được
Thiết lập lại nguồn
Bộ hẹn giờ khởi động và bộ dao động khởi động
Hỗ trợ 100.000 chu kỳ ghi / ghi bộ nhớ flash
Hỗ trợ 1.000.000 chu kỳ bộ nhớ EEPROM bị xóa / ghiLưu giữ dữ liệu trên
Trang 13
Sơ đồ pinout của mô-đun LCD 16 × 2 được đưa ra dưới đây:
Như bạn thấy, có 16 chân trong mô-đun này Thật dễ nhớ Có 8 chân dữ cònlại (EN, RS, RW) được sử dụng để điều khiển hoạt động Những chân này là:
1 Register Chọn (RS) : LCD chọn lệnh đăng ký khi pin này thấp Điều này có nghĩa là dữ liệu trong các chân dữ liệu sẽ được coi như một lệnh Khi pin này cao, LCD chọn đăng ký dữ liệu Nó có nghĩa là dữ liệu trong các chân dữ liệu sẽ được coi như một dữ liệu
2 Đọc / ghi (RW) : Khi pin này cao, dữ liệu đang được đọc bởi thanh ghi và khi pin này thấp, dữ liệu đang được ghi bởi mô đun
3 Bật (EN) : Kích hoạt mã pin cho phép luồng dữ liệu vào các chân dữ liệu Cần có xung cao đến thấp để kích hoạt luồng dữ liệu Về cơ
Trang 14bản, một xung cao đến thấp trong pin EN kích hoạt LCD để xử lý dữ liệu.
CÁC HOẠT ĐỘNG CỦA CHÂN ĐƯỢC ĐƯA RA TRONG MỘT BẢNG DƯỚI ĐÂY-
4
Chọn đăng ký lệnh (để lưu trữ dữ liệulệnh) khi thấp, và đăng ký hiển thị (để lưutrữ dữ liệu hiển thị) khi cao
Trang 15Led-Chức năng : nhận thông tin từ khối điều khiển trung tâm và hiển thị thông tin đó lên mànhình dưới dạng kí tự mà người quan sát hiểu được
2.1.5 Khối nguồn
Trang 16Đây là mạch dùng để tạo ra nguồn điện áp chuẩn +5V cấp cho khối điều khiển trungtâm sử dụng PIC16F887 Đầu vào là điện áp xoay chiều sau khi được biến đổi qua máy biếnthế, đưa vào bộ Diode để cho ra dòng điện một chiều ( lúc này điện áp nằm trong khoảng từ7-10V) Sau khi đi qua IC ổn áp 7805 sẽ tạo ra nguồn điện áp chuẩn +5V cung cấp chomạch.
IC ổn áp 7805: đầu vào > 7V đầu ra 5V, 500 mA Mạch ổn áp: cần cho vi điều khiển vì nếunguồn cho vi điều khiển không ổn định thì sẽ treo VĐK, không chạy đúng hoặc reset liêntục thậm chí là chết chip
2.1.6 Sơ đồ nguyên lý:
Mạch mô phỏng bằng phần mềm mô phỏng proteus 8.4
Trang 17Sơ đồ layout
Trang 182.2 Thiết kế phần mềm
- Lưu đồ thuật toán:
- Cách tính toán chuyển đổi từ giá trị điện áp sang nồng độ bụi
Trang 19CHƯƠNG 3: KÊT LUẬN
Các kết quả đạt được,:
M ch đo ạ n ng đ b i k t h p v i vi x lý PIC16F833 và c m bi n b i ồ ộ ụ ế ợ ớ ử ả ế ụ GP2Y0101AU0F có th bi t đ ể ế ượ ươ c t ng đ i l ố ượ ng b i b n trong không khí ụ ử
Trang 20 Hướng phát triển của sản phẩm:
Sản phẩm sẽ được tích hợp them nhiều chứ năng đo như đo nhiệt độ, độ ẩm, hiển thị ngày , giờ và lưu được các thông số đo theo ngày, tuần hoặc theo năm
TÀI LIỆU THAM KHẢO
Tham khảo tài liệu lập trình CCS ,Datasheet của cảm biến bụi GP2Y1010AU0F vàDatasheet của vi điều khiển PIC16F883
L i K t : ờ ế M ch đo ạ n ng đ b i k t h p v i vi x lý PIC16F833 có th bi t đ ồ ộ ụ ế ợ ớ ử ể ế ượ c
t ươ ng đ i l ố ượ ng b i b n trong không khí M ch nh g n r t d làm d s ụ ử ạ ỏ ọ ấ ễ ễ ử
d ng ụ Qua đây ta có th th y đ ể ấ ượ c các b ướ c làm m t m ch vi đi u khi khi n đ ộ ạ ề ể ể
đo đ ượ c m t đ i l ộ ạ ượ ng nào đó c n tr i qua các b ầ ả ướ c nh sau : ư
- Xác đ nh đ tài c n th c hi n ị ề ầ ự ệ
- Ch n c m bi n đo thích h p v i đ tài ọ ả ế ợ ớ ề
- Ch n linh ki n đ x lý các bài toán c n gi i quy t ọ ệ ể ử ầ ả ế
- Mô ph ng ph ỏ ươ ng pháp đo trên ph n m m mô ph ng (th ầ ề ỏ ườ ng dùng là Proteus 8.4)
- Vi t ch ế ươ ng trình vi đi u khi n b ng mã code ề ể ằ
- N p code cho vi đi u khi n ạ ề ể
- L p m ch hoàn ch nh và đo th nghi m ắ ạ ỉ ử ệ
Nhóm 13 xin c m n đã đ c! ả ơ ọ
Trang 21PHỤ LỤC A: ĐÓNG GÓP CÁC THÀNH VIÊN
1 Đinh Quang Điệu phụ trách phần code
2 Nguyễn Thế Phong phụ trách phần cứng và mô phỏng
3 Nguyễn Văn Đàm phụ trách chung và viết báo cáo
#define sAN0 PIN_A0
#define LED PIN_A4
float x,y;
void LCD_Enable(void)
Trang 22//Ham Gui 4 Bit Du Lieu Ra LCD
void LCD_Send4Bit( unsigned char Data )
// Ham Gui 1 Lenh Cho LCD
void LCD_SendCommand (unsigned char command )
Trang 23// Ham Khoi Tao LCD
void LCD_Init ( void )
Trang 24LCD_Enable();
LCD_SendCommand( 0x28 ); // giao thuc 4 bit, hien thi 2 hang, ki tu 5x8 LCD_SendCommand( 0x0c); // cho phep hien thi man hinh
LCD_SendCommand( 0x06 ); // tang ID, khong dich khung hinh
LCD_SendCommand( 0x01 ); // xoa toan bo khung hinh
Trang 25LCD_SendCommand(0x01);
delay_ms(10);
}
// Ham Gui 1 Ki Tu Len LCD
void LCD_PutChar ( unsigned char Data )
//Ham Gui 1 Chuoi Ky Tu Len LCD
void LCD_Puts (char *s)