ĐIỀU KHIỂN tự ĐỘNG bật tắt đèn BẰNG cảm BIẾN HỒNG NGOẠI DÙNG PIC (có code và sơ đồ mạch) ĐIỀU KHIỂN tự ĐỘNG bật tắt đèn BẰNG cảm BIẾN HỒNG NGOẠI DÙNG PIC (có code và sơ đồ mạch) ĐIỀU KHIỂN tự ĐỘNG bật tắt đèn BẰNG cảm BIẾN HỒNG NGOẠI DÙNG PIC (có code và sơ đồ mạch) ĐIỀU KHIỂN tự ĐỘNG bật tắt đèn BẰNG cảm BIẾN HỒNG NGOẠI DÙNG PIC (có code và sơ đồ mạch) ĐIỀU KHIỂN tự ĐỘNG bật tắt đèn BẰNG cảm BIẾN HỒNG NGOẠI DÙNG PIC (có code và sơ đồ mạch)
Trang 1ĐIỀU KHIỂN TỰ ĐỘNG BẬT TẮT ĐÈN BẰNG CẢM BIẾN HỒNG NGOẠI DÙNG
PIC
Trang 2DANH MỤC CÁC TỪ VIẾT TẮT VIII
CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 GIỚI THIỆU ĐỀ TÀI 1
1.2 PHƯƠNG ÁN THỰC HIỆN 1
1.3 KẾT QUẢ THỰC HIỆN 1
1.4 YÊU CẦU BAN ĐẦU 1
CHƯƠNG 2 NỘI DUNG CỦA ĐỀ TÀI 2
2.1 SƠ ĐỒ KHỐI 2
2.1.1 Sơ đồ khối mạch 2
2.1.2 Chức năng từng khối 2
2.2 NGUYÊN LÍ HOẠT ĐỘNG 3
2.3 SƠ ĐỒ MẠCH MÔ PHỎNG 4
2.4 SƠ ĐỒ MẠCH NGUYÊN LÍ 5
CHƯƠNG 3 LỰA CHỌN LINH KIỆN 6
3.1 VI ĐIỀU KHIỂN PIC 16F877A 6
3.2 IC ỔN ÁP 7805 9
3.3 LED 7 ĐOẠN 10
3.4 CẢM BIẾN HỒNG NGOẠI 11
3.5 IC OP-AMP LM358 12
CHƯƠNG 4 KẾT QUẢ THI CÔNG MẠCH 13
4.1 SƠ ĐỒ MẠCH IN 13
4.2 MẠCH THỰC TẾ 14
4.2.1 Kết quả thu được trên mạch thực tế 15
CHƯƠNG 5 NHẬN XÉT VÀ KẾT LUẬN 20
Trang 35.4 H 20
TÀI LIỆU THAM KHẢO 21 PHỤ LỤC 22
Trang 4HÌNH 2-2: SƠ ĐỒ MẠCH MÔ PHỎNG 4
HÌNH 2-3: SƠ ĐỒ MẠCH NGUYÊN LÍ 5
HÌNH 3-1: SƠ ĐỒ CHÂN PIC 16F877A 6
HÌNH 3-2: SƠ ĐỒ CHÂN IC 7805 9
HÌNH 3-3: LED 7 ĐOẠN 10
HÌNH 3-4: CẢM BIẾN HỒNG NGOẠI DÙNG IC LM358 11
HÌNH 3-5: SƠ ĐỒ CHÂN IC OP-AMP LM358 12
HÌNH 4-1: SƠ ĐỒ MẠCH IN 13
HÌNH 4-2: MẠCH THỰC TẾ 14
HÌNH 4-3: MẠCH THỰC TẾ KHI CẤP NGUỒN 15
HÌNH 4-4: MẠCH THỰC TẾ KHI CÓ NGƯỜI ĐẦU TIÊN ĐI VÀO 16
HÌNH 4-5: MẠCH THỰC TẾ KHI CÓ NGƯỜI THỨ 2 ĐI VÀO 17
HÌNH 4-6: MẠCH THỰC TẾ KHI CÓ NGƯỜI ĐẦU TIÊN ĐI RA 18
HÌNH 4-7: MẠCH THỰC TẾ KHI CÓ NGƯỜI THỨ 2 ĐI RA 19
Trang 5IC Intergrated Circuit
PIC Programmable Intelligent Computer
RISC Reduced Instructions Set Computer
Trang 6CHƯƠNG 1 TỔNG QUAN VỀ ĐỀ TÀI
1.1Giới thiệu đề tài
Mục tiêu đặt ra của đề tài là xây dựng một căn phòng có khả năng tự động bật đènkhi có người bước vào phòng và tắt đèn khi số người trong phòng đi ra hết Đề tàiđược xây dựng dựa trên sử dụng vi điều khiển PIC và cảm biến hồng ngoại
1.2Phương án thực hiện
- Sử dụng datasheet để hiểu được cấu tạo và nguyên lí hoạt động của : vi điềukhiển PIC, cảm biến hồng ngoại, LED 7 đoạn,…
- Nghiên cứu và sử dụng các phần mềm viết code cho vi điều khiển PIC (PIC
C Compiler, MikroC for PIC,…)
- Thực hiện chạy thử trên testboard
1.3Kết quả thực hiện
Thi công hoàn chỉnh board mạch đúng theo yêu cầu đặt ra ban đầu và hoạt độngchính xác, ổn định
1.4Yêu cầu ban đầu
- Sử dụng vi điều khiển PIC, cảm biến hồng ngoại
- Khi có người đi vào thì bật đèn và khi người trong phòng đi ra hết thì tắt đèn
- Chỉ có 1 người ra hoặc vào phòng trong 1 lượt
- Số lượng người trong phòng không quá 99
Trang 7Khối xử lý
Khối chấp hành
Khối hiển thịKhối cảm biến
Giải thích: Sau khi cấp nguồn, khối cảm biến sẽ đưa tín hiệu vào khối xử lý khi có
người đi vào ra Khối xử lý sẽ thực hiện so sánh các điều kiện đã được đặt ra trongcode và đưa tín hiệu điều khiển đến các khối chấp hành lệnh, khối hiển thị
2.1.2 Chức năng từng khối
Khối nguồn: cung cấp nguồn 1 chiều 5V cho mạch Trong khối nguồn sử dụng: 1 biến áp 1A, 1 cầu diode chỉnh lưu, 1 IC ổn áp 7805, tụ lọc nhiễu
Khối cảm biến: ban đầu khi chưa có người đi vào LED phát truyền tới
photodiode với tín hiệu mức cao Khi có người đi qua chắn tín hiệu truyền tínđến photodiode tín hiệu mức thấp sẽ nhận được ở đầu ra photodiode
Trang 8 Khối xử lý: PIC nhận được tín hiệu từ cảm biến sau đó thực hiện chương trình ngắt Nếu là quá trình đi vào sẽ thực hiện tăng biến số đếm người sau
đó truyền tín hiệu đến khối hiển thị và khối chấp hành Ngược lại, nếu là quá trình đi ra sẽ thực hiện giảm biến đếm số người sau đó truyền tín hiệu đến khối hiển thị và khối chấp hành
Khối chấp hành: thực hiện bật tắt đèn khi nhận được tín hiệu từ khối xử lý
Khối hiển thị: hiển thị số người ra vào phòng thông qua LED 7 đoạn
2.2Nguyên lí hoạt động
Khi có người đi vào và qua 2 cảm biến hồng ngoại, tín hiệu được đưa từ photodiode
về vi điều khiển Vi điều khiển thực hiện ngắt khi có sự thay đổi từ tín hiệu mức caosang mức thấp ở port B Trong quá trình đi vào tăng biến đếm số người thêm 1 đơn
vị, xuất ra LED 7 đoạn và bật đèn Tương tự trong quá trình đi ra, khi có người đi ra
và qua 2 cảm biến hồng ngoại, tín hiệu được đưa từ photodiode về vi điều khiển Viđiều khiển thực hiện chương trình ngắt Sau đó, vi điều khiển thực hiện giảm biếnđếm số người Nếu số người trong phòng vẫn còn thì không tắt đèn Trong trườnghợp, người đó là người cuối cùng thì sẽ thực hiện tắt đèn
Trang 92.3Sơ đồ mạch mô phỏng
Hình 2-2: Sơ đồ mạch mô phỏng
Giải thích mạch mô phỏng:
- Tín hiệu của 2 cảm biến được nối với chân RB4 và RB5
- 7 chân của port C nối với 7 chân dữ liệu vào LED 7 đoạn
- 2 chân RD0 và RD1 nối với các cực B của transistor để thực hiện điều khiểntín hiệu vào LED 7 đoạn
- Tín hiệu điều khiển đèn được cho ra chân RA0 và vào chân B của transistor
để điều khiển rơle bật tắt đèn
Trang 102.4Sơ đồ mạch nguyên lí
Hình 2-3: Sơ đồ mạch nguyên lí
Trang 11CHƯƠNG 3 GIỚI THIỆU LINH KIỆN
3.1Vi điều khiển PIC 16F877A
PIC là một vi điều khiển được xây dựng trên kiến trúc RISC thực thi một lệnh vớimột chu kì máy (một chu kì máy bằng bốn chu kì của bộ dao động thạch anh) PIC
có thể lập trình được với ngôn ngữ C hoặc ASM Ngôn ngữ C được hỗ trợ rất dễdàng để tiếp cận cho việc lập trình hoạt động của vi điều khiển
Sơ đồ chân PIC 16F877A:
Hình 3-1: Sơ đồ chân PIC 16F877A [2]
Chức năng của từng chân:
- Chân OSC1/CLK1(13): ngõ vào kết nối với dao động thạch anh hoặc ngõvào nhận xung dao động clock từ bên ngoài
Trang 12- Chân OSC2/CLK1(14): ngõ ra dao động thạch anh hoặc ngõ ra cấp xung daođộng clock.
- Chân VSS(12,31) và chân VDD(11,32): là các chân nguồn của PIC (cấpnguồn hoạt động khoảng 2V ~ 5V)
- Chân MCLR/Vpp(1) mang 2 chức năng: ngõ vào reset tích cực mức thấp vàngõ vào nhận điện áp lập trình cho PIC
- Chân RA0/AN0(2), RA0/AN1(3) có 2 chức năng: xuất nhập tín hiệu số vàngõ vào tín hiệu tương tự của kênh thứ 0, 1
- Chân RA2/AN2/VREF-/CVREF(4) có 4 chức năng: xuất nhập tín hiệu số,ngõ vào tín hiệu tương tự ở kênh thứ 2, ngõ vào điện áp chuẩn thấp của bộA/D, ngõ ra điện áp chuẩn của bộ so sánh
- Chân RA3/AN3/VREF+(5) có 3 chức năng: xuất nhập tín hiệu số, ngõ vàotín hiệu tương tự ở kênh thứ 3, ngõ vào điện áp chuẩn cao của bộ A/D
- Chân RA4/T0CKI/C1OUT(6) có 3 chức năng: xuất nhập tín hiệu số, ngõ vàoxung clock bên ngoài cho Timer 0, ngõ ra bộ so sánh 1
- Chân RA5/AN4/SS/C1OUT(7) có 4 chức năng: xuất nhập tín hiệu số, ngõvào tín hiệu tương tự ở kênh thứ 4, ngõ vào chọn lựa SP1 phụ, ngõ ra bộ sosánh 2
- Chân RB0/INT(33) có 2 chức năng: xuất nhập tín hiệu số, ngõ vào tín hiệungắt ngoài
- Chân RB1(34),RB2(35): xuất nhập tín hiệu số
- Chân RB3/PGM(36) có 2 chức năng: xuất nhập tín hiệu số, cho phép lậptrình điện áp thấp ICSP
- Chân RB4(37),RB5(38): xuất nhập tín hiệu số
- Chân RB6/PGC(39) có 2 chức năng: xuất nhập tín hiệu số, mạch gỡ rối vàxung clock lập trình ICSP
- Chân RB7/PGD(40) có 2 chức năng: xuất nhập tín hiệu số, mạch gỡ rối và
dữ liệu lập trình ICSP
Trang 13- Chân RC0/T1OCO/T1CK1(15) có 3 chức năng: xuất nhập tín hiệu số, ngõ ra
bộ dao động Timer 1, ngõ vào xung clock bên ngoài cho Timer 1
- Chân RC1/T1OSI/T1CCP2(16) có 3 chức năng: xuất nhập tín hiệu số, ngõvào bộ dao động Timer 1, ngõ vào Capture 2, ngõ ra Camparator 2, ngõ raPWM 2
- Chân RC2/CCP1(17) có 2 chức năng: xuất nhập tín hiệu số, ngõ vào Capture
- Chân RC5/SD0(24) có 2 chức năng: xuất nhập tín hiệu số, dữ liệu ra SPI
- Chân RC6/TX/CK(25) có 3 chức năng: xuất nhập tín hiệu số, truyền bấtđồng bộ USART, xung đồng bộ USART
- Chân RC7/RX/DT(26) có 3 chức năng: xuất nhập tín hiệu số, nhận dữ liệubất đồng bộ USART, dữ liệu đồng bộ USART
- Chân RD0-7/PSP0-7(19-30) có 2 chức năng: xuất nhập tín hiệu số, dữ liệuport song song
- Chân RE0/RD/AN5(8) có 3 chức năng: xuất nhập tín hiệu số, điều khiển đọccho port song song ,ngõ vào tín hiệu tương tự kênh thứ 5
- Chân RE1/WD/AN6(9) có 3 chức năng: xuất nhập tín hiệu số, điều khiển ghicho port song song, ngõ vào tín hiệu tương tự kênh thứ 6
- Chân RE0/CS/AN7(10) có 3 chức năng: xuất nhập tín hiệu số, lựa chọn điềukhiển đọc cho port song song,ngõ vào tín hiệu tương tự kênh thứ 7
Ngắt được sử dụng trong mach là: Ngắt ở port B Ngắt ở port B được thực hiện khi
có sự thay đổi trang thái của các chân RB4 đến RB7
Trang 143.2IC ổn áp 7805
Hình 3-2: Sơ đồ chân IC 7805 [1]
Nguồn có điện áp trong một mạch điện có thể dao động dẫn đến điện áp đầu rakhông ổn định IC 7805 có chức năng ổn định điện áp đầu ra không thay đổi vớimức điện áp khoảng 5V
Thông số kỹ thuật:
- Khoảng điện áp đầu vào: 7V ~ 35V (nguồn 1 chiều)
- Khoảng nhiệt độ hoạt động: -200C ~ 1500C
- Dòng điện đầu ra: 1A
- Khoảng điện áp đầu ra: 4.8V ~ 5.2V
Trang 153.3LED 7 đoạn
Hình 3-3: LED 7 đoạn [1]
LED 7 đoạn là linh kiện dùng để hiển thị các thông số dưới dạng các số hoặc cáctrạng thái làm việc
Cấu tạo: LED 7 đoạn được cấu tạo bởi 8 LED đơn ghép lại với nhau trong đó có
1 LED đơn dùng để hiển thi dấu chấm LED 7 đoạn được phân chia thành 2 loại:
- Chân Anode chung (chân dương của các LED đơn được nối nhau)
- Chân Cathode chung (chân âm của các LED đơn được nối nhau)
Nguyên lý hoạt động: các LED đơn phải được phân cực thuận để sáng lên Để hình thành một số nào đó ta phải cho các LED đơn tương ứng sáng lên
Thông số kĩ thuật:
- Điện áp hoạt động 5V hoặc 3V3 (nguồn 1 chiều)
- Dòng hoạt động 20mA
Trang 163.4Cảm biến hồng ngoại
Hình 3-4: Cảm biến hồng ngoại dùng IC LM358
Cảm biến hồng ngoại có cấu tạo 1 LED phát tia hồng ngoại và 1 photodiode Tiahồng ngoại được phát ra từ LED phát với 1 tần số nhất định, khi phát hiện có vậtcản thì tín hiệu đến Photodiode sẽ là tín hiệu thấp
Để tăng khoảng cách thu tín hiệu cần phải tăng công suất đầu phát
Trang 173.5IC Op-amp LM358
Hình 3-5: Sơ đồ chân IC Op-amp LM358 [2]
Op-Amp LM358 là bộ khuếch đại thuật toán kép công suất thấp Bên trong IC có 2
bộ khuếch đại có độ lợi cao, tương thích với nhiều mạch logic Trong mạch này, ICđược sử dụng như 1 bộ so sánh điện áp
IC có 8 chân:
- Chân 1: ngõ ra của bộ khuếch đại 1
- Chân 2: ngõ vào đảo của bộ khuếch đại 1
- Chân 3: ngõ vào không đảo của bộ khuếch đại 1
- Chân 4: chân nối cực âm của nguồn
- Chân 5: ngõ vào không đảo của bộ khuếch đại 2
- Chân 6: ngõ vào đảo của bộ khuếch đại 2
- Chân 7: ngõ ra của bộ khuếch đại 2
- Chân 8: chân nối cực dương của nguồn
Thông số kỹ thuật:
- Khoảng điện áp hoạt động: 3V ~ 30V (nguồn 1 chiều)
- Khoảng nhiệt độ hoạt động: 0 ~ 700C
- Điện áp ngõ ra 0V đến VCC (+) – 1.5V
Trang 18CHƯƠNG 4 KẾT QUẢ THI CÔNG MẠCH
4.1Sơ đồ mạch in
Hình 4-1: Sơ đồ mạch in
Trang 194.2Mạch thực tế
Hình 4-2: Mạch thực tế
Trang 204.2.1 Kết quả thu được trên mạch thực tế
Hình 4-3: Mạch thực tế khi cấp nguồn
Khi cấp nguồn cho mạch đèn LED 7 đoạn sáng lên Phần đèn hiển thị ở khối chấphành không sáng
Trang 21Hình 4-4: Mạch thực tế khi có người đầu tiên đi vào
Khi có người đi vào đèn hiển thị ở khối chấp hành sáng lên và LED 7 đoạn hiển thị
có 1 người đi vào
Trang 22Hình 4-5: Mạch thực tế khi có người thứ 2 đi vào
Khi có người thứ 2 đi vào đèn hiển thị ở khối chấp hành vẫn sáng và LED 7 đoạnhiển thị có 2 người đi vào
Trang 23Hình 4-6: Mạch thực tế khi có người đầu tiên đi ra
Khi có người đầu tiên đi ra đèn hiển thị ở khối chấp hành vẫn sáng và LED 7 đoạnhiển thị trong phòng chỉ còn 1 người
Trang 24Hình 4-7: Mạch thực tế khi có người thứ 2 đi ra
Khi người cuối cùng trong phòng đi ra đèn hiển thị phần điều khiển ở RA1 tắt vàđèn LED 7 đoạn đưa về giá trị ban đầu
Trang 25CHƯƠNG 5 NHẬN XÉT VÀ KẾT LUẬN
5.1Ưu điểm
- Mạch đơn giản dễ dàng thực hiện
- Hiện thị đúng số người khi đi ra hoặc vào phòng
- Thực thi đúng yêu cầu đề bài đặt ra
5.2Nhược điểm
- Mạch còn bị ảnh hưởng từ tác động bên ngoài
- Khoảng cách của cảm biến còn bị hạn chế
5.4Hướng phát triển
- Mở rộng thiết bị được điều khiển
- Có thể kiểm soát từ xa thông qua sóng RF, Wifi, …
- Thay thế cảm biến hồng ngoại bằng laser và quang trở để khắc phục khoảngcách đặt của cảm biến
- Thiết kế thêm phần hiển thị điện năng tiêu thụ để có thể so sánh được hiệunăng sử dụng
- Điều khiển mức độ hoạt động của thiết bị theo nhiệt độ phòng, cường độ ánhsáng tự nhiên
Trang 26TÀI LIỆU THAM KHẢO
Tiếng Việt:
[1] Điện tử cơ bản tại trang web http://www.dientuvietnam.net
[2] Thông tin về linh kiện tại trang web http://www.alldatasheet.com
[3] Phan Đình Duy, Vũ Đức Lung, Lê Quang Minh, (2016) Giáo trình Vi điềukhiển, Trường đại học Quốc gia thành phố Hồ Chí Minh, Tp Hồ Chí Minh
Trang 27PHỤ LỤC
#include<16f877a.h> //khai bao thu vien cho pic;
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG,NOBROWNOUT,NOLVP, NOCPD, NOWRT
#use delay(clock=20000000) //tao xung cho PIC;
int8 const LED7[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //mang hien thi cac so tu 0 den 9;
long i,dvi,chuc,ng,a,b,vao,ra; //khai bao cac bien;
// =========================================================//
void den(ng){
if (ng==0) output_low(pin_a1); //xuat ra cong a gia tri 0;
else output_high(pin_a1); //xuat ra cong a gia tri 1;
}
//========================================================//
void led(ng){
dvi= ng% 10; // Lay so hang don vi;
chuc= (ng/ 10) % 10; // Lay so hang chuc;
for(i=0;i<100;i++){
output_c(LED7[chuc]); output_high(pin_d0); delay_ms(1);output_low(pin_d0);
// dua ma so hang chuc ra port C, bat LED 1, tre 1ms roi tat;
output_c(LED7[dvi]); output_high(pin_d1); delay_ms(1);output_low(pin_d1);
// dua ma so hang don vi ra port C, bat LED 2, tre 1ms roi tat;
Trang 28}
}
//=======================================================//
void divao(){ //chuong trinh con dau vao;
if ((a==0)&&(b==0)){ //neu bat dau di vao thi thuc hien;
a=1; //ghi nhan da qua senso 1;
if (ng!=99) ng++; //neu so nguoi con nho hon 99 thi bien ng tang;
}
else if ((a==0)&&(b==1)){ //neu la cuoi cua qua trinh di ra;
a=1; //ghi nhan da qua senso 1;
}
}
//========================================================//void dira(){ //chuong trinh con di ra;
if ((a==0)&&(b==0)){ //neu bat dau di ra va con nguoi trong phong;
b=1; //ghi nhan da qua senso 2;
if (ng!=0) ng ; //neu so nguoi con lon hon 0 thi dem giam;
}
else if((a==1)&&(b==0)){ //neu la cuoi cua qua trinh vao;
b=1; //ghi nhan da qua senso 2;
}
}
//======================================================//
Trang 29long vaora(){ //ctr ngat cong B;
vao=input(pin_b4); //gan bien vao doc du lieu vao chan B4 tu senso 1; ra=input(pin_b5); //gan bien vao doc du lieu vao chan B5 tu senso 2;
if (vao==0) divao();//neu co tin hieu vao thi cho chay ctr con di vao; else if (ra==0) dira();//neu co tin hieu ra thi cho chay ctr con di ra;
a=b=0; ng=0; //Gan cac gia tri ban dau;
set_tris_a(0); // khai bao port A la cong ra;
set_tris_b(0xff); // khai bao port B la cong vao;
set_tris_c(0); // khai bao port C la cong ra;
set_tris_d(0); //khai bao port D la cong ra;
enable_interrupts(INT_rb); //cho phep ngat ngoai tai port B;
enable_interrupts(GLOBAL); //cho phep ngat toan cuc;
while (true)
{ //lien tuc kiem tra senso va dieu khien den;
led(ng); //goi ham hien thi den led;
den(ng); //goi ham bat tat den;
}
}