Nhu cầu hiện đại hoá đang trở thành xu hướng của toàn cầu. Hiện đại hóa đem lại sự tiện nghi, hiện đại, và giải quyết nhiều vấn đề cho con người. Do đó, em thực hiện đề tài này với mong muốn hiện đại hóa trong điện tử sẽ càng ngày càng thịnh hành.
Trang 1CHƯƠNG 1: GIỚI THIỆU CHUNG
1.1 Ý tưởng hình thành đồ án
- Nhu cầu hiện đại hoá đang trở thành xu hướng của toàn cầu Hiệnđại hóa đem lại sự tiện nghi, hiện đại, và giải quyết nhiều vấn đề cho conngười Do đó, em thực hiện đề tài này với mong muốn hiện đại hóa trongđiện tử sẽ càng ngày càng thịnh hành
1.2 Các chức năng cơ bản của mạch
- Đo nhiệt độ bằng IC lm35 (từ 25 oC đến 70 oC) Dùng vi xử lýPIC16F877A để tín hiện nhiệt độ và hiển thị lên LCD
- Nếu nhiệt độ đo đươc từ cảm biến cao hơn 30 oC, vi xử lý sẽ điềukhiển còi chạy thông qua relay
- Nếu nhiệt độ quá đạt 40 oC, vi điều khiển sẽ điều khiển quạt chạythông qua relay
- Có thêm 3 nút bấm để điều chỉnh nhiệt độ điều khiển quạt chạy vàcòi ( nút UP, DOWN và MENU )
Trang 2CHƯƠNG 2: THIẾT KẾ CÁC MẠCH THIẾT BỊ2.1 Giới thiệu tổng quan về hệ thống
- Hệ thống bao gồm 5 khối chính liên kết với nhau với trung tâm là viđiều khiển PIC16F877A
Sơ đồ chân PIC16F877A
- Khối vi điều khiển trung tâm sử dụng PIC16F877A với nguồn cungcấp 5V
- Khối đo nhiệt độ (input) sử dụng cảm biến LM35 đo nhiệt độ Vậnchuyển dữ liệu thu được về vi điều khiển qua chân AN0
- Khối hiển thị LCD sử dụng LCD 16x2 kết nối với vi điều khiển đểhiển thị nhiệt độ thu được từ cảm biến
Trang 3- Khối cài đặt nhiệt độ gồm các nút nhấn để điều chỉnh nhiệt độ bậtquạt và báo còi thích hợp
- Khối điều khiển thiết bị bao gồm 1 con relay dùng để điều khiểnquạt và 1 con relay dùng để điều khiển còi báo hiệu
Sơ đồ tổng quát hệ thống
- Ở hệ thống trên , nhìn chung chỉ sử dụng những chân cơ bản củaPIC16F877A với chức năng xuất nhập I/O, hiển thị LCD và module relay đểđiều khiển thiết bị Với những thứ cơ bản đó chúng ta có thể phát triển thêmnhiều ứng dụng khác làm tăng khả năng cho board như mở rộng để giám sátthêm nhiều cảm biến hay mở rộng port I/O để có thể điều khiển với số lượngthiết bị lớn hơn
2.2 Khối vi điều khiển trung tâm
a) PIC16F877A
Trang 4- Mạch ứng dụng với yêu cầu không cao, vì vậy PIC16F877A là viđiều khiển phù hợp do đây là họ VĐK phổ biến và có nhiều tài liệu và phầnmềm hỗ trợ.
- Thiết lập PIC16F877A:
+ Xung clock nội 4 Mhz
+ Sử dụng bộ chuyển đổi tín hiệu tương tự sang tín hiệu số ADC 10bit đa hợp 8 kênh, giao tiếp với tín hiệu tương tự nhận từ cảm biến LM35
+ Lập trình trên bộ nhớ Flash cho chương trình chính và EEPROMcho các biến chức năng đặt cho khối điều khiển
+ Các ngõ vào I/O nối với các thiết bị ngoại vi là LCD, nút bấm vàrelay
+ Port D được đặt là ngõ ra giao tiếp hiển thị LCD
+ Port B đặt ngõ vào cho các chân nối với button thực hiện việc ngắt+ Port A đặt ngõ vào thu nhiệt độ từ sensor LM35
+ Port C là ngõ ra thực hiện việc phát còi báo và bật quạt
Trang 6nhả nút reset ra, tụ đc nạp nên chân reset sẽ từ từ bị kéo xuống 0 tạo khoảngthời gian lớn hơn 2 chu kì máy và chống nảy cho phím bấm Như vậy đểreset mạch ta dùng một button và mắc như hình trên.
Reset buttond) Mạch nạp
- Sử dụng mạch nạp đa năng Burn E dùng cho các loại PIC Mạch nạpđược kết nối với PIC qua 1 dãy chân nạp được thiết kế sẵn trên board Cácchân nạp có trình tự kết nối như sau:
+ Chân 1 Burn E kết nối với chân MCLR của vi điều khiển
+ Chân 2 kết nối với 2 chân nguồn của PIC là chân số 11 và 32
+ Chân 3 kết nối với 2 chân nối đất của PIC là chân số 12 và 31
+ Chân 4,5 lần lượt kết nối với port RB7 và RB6 của PIC
Trang 7Sơ đồ kết nối chân mạch nạpe) Khối nguồn
- Nguồn chính 5v cung cấp nguồn cho toàn mạch và các thiết bị ngoạivi
- Nguồn phụ 12V được cung cấp cho quạt thông qua relay
Bộ nguồn 5V và 12V
2.3 Khối đo nhiệt độ
Trang 8a) Cảm biến nhiệt độ LM35
Sơ lược
- Hiệu chỉnh trực tiếp qua độ C
- Ngõ ra điện áp tuyết tính 10mV/oC
- Tầm đo -55oC tới 150oC
- Giá thành rẻ, thông dụng
Sơ lược về LM35b) Chuyển đổi giá trị ADC sang nhiệt độ
- Như chúng ta đã biết tín hiệu đầu vào của cảm biến nhiệt độ LM35
là giá trị ADC Như vậy, cần phải biến đổi giá trị ADC này thành giá trị nhiệt
độ để có thể hiển thị lên LCD
- Theo lý thuyết ta có:
Cứ 5000mV > 1023adc
Vậy X > Giá trị ADC thu được
Trong đó X là ngõ ra điện áp của cảm biến vào vi điều khiển
==> X =
Trang 9Mặ khác ta có:
Cứ 10mV thì ta được 1oC
==> Nhiệt độ =
= c) Kết nối
- LM35 có kết nối đơn giản với 2 chân nối nguồn đất và 1 chân dữliệu cho PIC
- Tuy nhiên nếu mắc như vậy vẫn chưa tối ưu hóa được nhiệt độ đovào do có sự ảnh hưởng của nhiễu
- Cách giả quyết cho vấn đề này là lọc nhiễu cho cảm biến bằng 1mạch lọc RC do có giá trị do nhà phát hành PIC đưa ra
LM35 với mạch lọc RC
- Vì trở 75Ω không có nhiều trên thị trường nên ta có thể linh độngchọn trở 100Ω
- Để đảm bảo tính chống nhiễu cao cho khối đo nhiệt độ, hệ thống còn
sử dụng 1 bộ lọc nhiễu trên code bằng cách lấy 10 lần đo nhiệt độ rồi chialấy giá trị trung bình Như vậy khả năng chống nhiễu của khối sẽ cao hơn
Trang 10Kết nối của khối đo nhiệt
- LCD là từ viết tắt của Liquid Crystal Display (màn hình tinh thể lỏng) Có nhiều loại màn hình LCD với các kích cỡ khác nhau, nhưng trong mạch ứng dụng này ta sài loại LCD 16x2 bán phổ biến trên thị trường
- Gồm 2 chân nguồn VCC và VDD, chân 3 tùy chỉnh độ tương phản
- Theo đó là 3 chân điều khiển hoạt động của LCD là RS RW và E
Trang 11- Dữ liệu từ chân D0 đến D7 theo chế độ 4 bit hoặc 8 bit Ở thiết kế này em sử dụng chế độ 4 bit nhằm tiết kiệm chân ngoại vi của vi điều khiển
- Chân 15 là chân dương đèn led nền của LCD được nối vào nguồn 5V
- Khi thực hiện việc bấm nút, chân của vi điều khiển được nối mass
Sử dụng lệnh ngắt khi có đầu vào là mức thấp trong code của vi điều khiển
- Như vậy khi ta bấm nút vi điều khiển sẽ ngắt sang chế độ làm việc khác Cho phép ta cài đặt điều chỉnh nhiệt độ báo đèn và nhiệt độ bật quạt
Trang 12Sơ đồ nguôn lý của khối cài đặt nhiệt độ
2.6 Khối điều khiển thiết bị
a) Điều khiển còi
- Công dụng: khi nhiệt độ cao quá mức 30 độ (nhiệt độ mặc định có thể điều chỉnh) thực hiện việc bật còi báo hiệu
- Vận hành: khi nhiệt độ tăng quá 30 oC, vi điều khiển xuất 1 mức tín hiệu cao 5V ra chân RC1 kết nối với còi
Trang 13b) Điều khiển quạt relay.
RELAY
- Relay có nhiệm vụ điều khiển các thiết bị ngoại vi thông qua tiếpđiểm thường đóng và thường hở Mạch sử dụng các oppto kích transistor vàrelay cách li điều khiển thiết bị với khả năng ứng dụng cao, có thể sử dụngđiều khiển được cho rất nhiều loại thiết bị khác nhau kể cả thiết bị dùngnguồn 220V xoay chiều
- Nguyên lí hoạt động của 1 kênh tiêu biểu trong khối như sau: nhìnvào sơ đồ nguyên lí ta thấy, khi có tín hiệu ngỏ ra từ chân vi diều khiển ởmức cao 5V kích vào Anot led của oppto làm led oppto sáng, khi đótransistor quang của oppto dẫn nguồn VCC qua điện trở 10K kích vào cực Bcủa transistor C1815 Khi đó transistor C1815 dẫn tiếp tục làm nguồn VCCqua cuộn dây relay đổ xuống mass Khi có điện qua cuộn dây relay thì côngtắc của relay sẽ bật và kết thúc quá trình điều khiển thiết bị
Sơ đồ nguyên lý relay
- Quạt được kết nối với chân COM và NO của module relay Khi cótín hiệu mức cao kích vào, chân NO sẽ đóng làm cho quạt chạy
Trang 14Kết nối quạt với module relay
2.7 Xây dựng lưu đồ thuật toán và viết chương trình
Trang 15Sơ đồ thực hiện Code
Trang 16CHƯƠNG 3: KẾT QUẢ3.1 Ưu điểm
- Mạch nhỏ gọn, ứng dụng cao
- Sử dụng module relay cách ly nguồn điện của các thiết bị với mạch
- Cảm biến được chống nhiễu cao qua 2 bộ lọc nhiễu
- Nguồn cung cấp mạch không nhiều, tiết kiệm năng lượng
- Mạch được thiết kế linh động có thể tái sử dụng
3.2 Nhược điểm
- Code chưa được tối ưu
- Kích thước vẫn chưa tối ưu
- Giá trị đọc vẫn chưa chính xác
- Điều khiển quạt và đèn báo
Trang 18
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(AN0_AN1_AN2_AN3_AN4);
Trang 19//TODO: User Code
Trang 20//Tong = Tong + GiaTriADC;
Trang 22if(UP==0)
{
while(UP==0);
NhietDoMax=NhietDoMax+1; if(NhietDoMax>60)
NhietDoMax=40;
}
}
}
Trang 25}
case 2:
{
output_bit(PIN_C1,TrangThai); break;