Điều khiển hệ thống điện từ xa dùng hồng ngoại
NỘI DUNG
I.,Đặt vấn đề. 4
II.,Mô tả mạch.4
III.Giới thiệu các linh kiện sử dụng trong mạch. 4
1)Tổng quan PIC16f877A4
2)Điều khiển từ xa.5
3)Mắt thu hồng ngoại6
4)MAX232.7
IV.Thiết kế mạch. 8
1)Mạch nguồn. 8
2)mạch nhận. 8
4)Mạch điều khiển.9
5)Mạch giao tiếp máy tính. 10
6)Sơ đồ mạch in. 11
V.Ngôn ngữ lập trình.12
VI.Xây dựng chương trình điều khiển. 12
1)Sơ đồ thuật toán.12
2)Chương trình điều khiển. 14
VII.Nhận xét16
VIII.Tài liệu tham khảo:
Giới Thiệu
Do yêu cầu về lĩnh vực tự động hóa trong sinh hoạt ngay càng cao.
Các thiết bị sinh hoạt ngày càng hiện đại, do đó việc điều khiển từ xa ngày càng trở lên cần thiết và là một yêu cầu không thể thiếu trong xã hội hiện đại. Do đó chúng em chọn đề tài thiết kế điều khiển hệ thống điện từ xa cho đồ án của mình. Đuợc sự hướng dẫn tận tình của thầy “Nguyễn tiến Duy “ và các thầy trong bộ môn “Kỹ Thuật Máy Tính” chúng em đã hoàn thành đồ án này.Do thời gian và khả năng có hạn do đó khó trãnh khỏi các sai sót khi thiết kế,vì vậy chúng em mong được sự góp ý của các Thầy.
16
16 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2610 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Điều khiển hệ thống điện từ xa dùng hồng ngoại, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
NỘI DUNG
Báo cáo: ĐỒ ÁN VI XỬ LÍ
Đề tài: Điều khiển hệ thống điện từ xa dùng hồng ngoại
GVHD:Nguyễn tiến Duy
SVTH :Đỗ văn Nghĩa
Ngô hải Dương
Giới Thiệu
Do yêu cầu về lĩnh vực tự động hóa trong sinh hoạt ngay càng cao.
Các thiết bị sinh hoạt ngày càng hiện đại, do đó việc điều khiển từ xa ngày càng trở lên cần thiết và là một yêu cầu không thể thiếu trong xã hội hiện đại. Do đó chúng em chọn đề tài thiết kế điều khiển hệ thống điện từ xa cho đồ án của mình. Đuợc sự hướng dẫn tận tình của thầy “Nguyễn tiến Duy “ và các thầy trong bộ môn “Kỹ Thuật Máy Tính” chúng em đã hoàn thành đồ án này.Do thời gian và khả năng có hạn do đó khó trãnh khỏi các sai sót khi thiết kế,vì vậy chúng em mong được sự góp ý của các Thầy.
Chúng em xin chân thành cảm ơn.
,Đặt vấn đề
Với yêu cầu thiết kế bộ điều khiển từ xa cho hệ thống điện, chúng em chúng em chọn phương thức thiết kế dùng vi điều khiển để thu tín hiệu hồng ngoại từ điều khiển từ xa dung cho tivi, ở đây chúng em sử dụng điều khiển tivi do no rất rễ sử dụng,rẻ tiền và ít nhiễu so với ta tự thiết kế. Cụ thể ở đây là dùng vi điều khiển PIC16f877A để thu tín hiệu từ điều khiển từ xa của hãng SONY. Do ta phải giải mã tín hiệu của điều khiển từ xa do đó chung em thiết kế thêm module giao tiếp với máy tính để thuận tiện cho quá trình giải mã.
,Mô tả mạch.
Bộ điều khiển
Bộ điều khiển trung tâm
Thiết bị điện
Bộ thu hồng ngoại
Bộ đóng cắt
Giới thiệu các linh kiện sử dụng trong mạch
Các linh kiện sử dụng trong mạch gồm: PIC16f877A, MAX232,mắt thu hồng ngoại,điều khiển tivi, relay va một số lịnh kiện như điện trở, tụ điện.
Tổng quan PIC16f877A
PIC16f877A trong mạch là loại DIP40 chân , 5 cổng vào ra là portA( RA0-RA5), portB(RB0-RB7), portC(RC0-RC7), portD(RD0-RD7), portE(RE0-RE2). Ba bộ định thời Timer0,Timer1,Timer2, 8k bộ nhớ chương trình flash, hỗ trợ giao tiép I2C, RS232, PSP,Có 15 loại ngắt khác nhau.
Có 3 khối bộ nhớ trong PIC16f877A: bộ nhớ chương trình, bộ nhớ dữ liệu và khối bộ nhớ EEPROM.bộ nhớ chường trình và bộ nhớ dữ liệu có đường bus riêng vì vậy có thể truy cập tới từng bộ nhớ 1 cách riêng rẽ.
Điều khiển từ xa.
Điều khiển từ xa cho tivi của SONY
Hình dưới đây là cấu trúc mã do điều khiển sony phát đi
Mắt thu hồng ngoại
mạch thu được thiết kế với một mắt thu hồng ngoại sẵn có trên thị trường.mắt thu này được thiết kế với bộ lọc thồn một dải, chỉ cho phép tần số sấp sỉ 36KHz đi qua.Bình thường đầu ra của mắt thu ở mức cao, khi nhận được tìn hiệu hồng ngoại ở tần số ~36KHz truyền tới, đầu ra của mắt thu sẽ lập tức trở về về mức logic thấp(0V). Khi hết tín hiệu hồng ngoại đầu ra sẽ lập tức trở về mức logic cao( mức 1).nhờ vào việc đo thời gian ở mức thấp của đầu ra, chúng ta có thể biết được thời gian phát xung tương đương ở bên phát, từ đó suy ra mã được trưyền đi.
Sơ đồ nguyên lý mắt thu hồng ngoại
ở mắt thu này chân 1 là (GND),chân 2(VCC), chân 3 la tin hiệu ra.
Sơ đồ kết nối mắt thu với vi điều khiển
MAX232.
Sơ đồ kết nối do nhà sản suât đưa ra
Do mức điện áp ở cổng RS232 là -12,+12 mà vi điều khiển lại làm việc ở mức điện áp 0v-5v do đo phải sử dụng MAX 232 để chuẩn hóa mức điện áp giữa máy tính và VĐK.
Thiết kế mạch
Phần mền sử dụng để vẽ mạch là orcad 10.0
Mạch nguồn
Thiết kế mạch nguồn là một phần rất quan trọng trong thiết kế mạch điện . Vì mạch cần tín hiệu 5V cho VĐK và 12V để đóng mở Relay. Do thời gian có han chúng em sử dụng nguồn máy tính cho mạch. Ưu điểm của nguồn máy tính là ổn định chất lượn tốt, nhưng giá thành thi cao lên không phù hợp với những mạch co quy mô nhỏ. Dưới đây là mạch nguồn 5V đầu vào điện áp 220V rất tiện cho các mạch VDK.
mạch nhận
Mắt nhận rẩt rễ bị nhiễu do nguồn nuôi do đó chúng em thiết thêm mạch lọc RC để lọc những thành phần sóng hài. Ngoài ra ở chân data đưa về PIC mắc thêm tụ 104p để lọc các xung kim.
Mạch đóng cắt dung relay
Mạch đóng cắt sử dụng relay sử dụng c1815 mắc kết hợp với TIP41 để kích mở quận hút.
Mạch điều khiển.
Mạch điều khiển sử dụng cổng D để đóng cắt các relay (dk1->dk8) hai đường hai chân C6,C7 nối với MAX2323 để giao tiếp máy tính(R_PIC, T_PIC), tín hiệu ra của mắt thu hồng ngoại được đưa vào chân B0.
Mạch giao tiếp máy tính
Mạch giao tiếp máy tính nối chân R1OUT va T1IN vè RX va TX của PIC. T1OUT và R1IN nối với RX và TX của cổng COM máy tính. Một điểm rất quan trong la chân GND cuả PIC và GND của máy tính phải được nối với nhau và nối vỏ máy.
Sơ đồ mạch in
Mạch in được thiết kế một lớp và được làm thủ công.
Ngôn ngữ lập trình.
Ngôn ngữ chúng em dùng là CCS để biên dịch. Đây là ngôn ngữ biên dịch C cho PIC ,nó hỗ trợ cho nguời lập trình C rất nhiều thư viện đã xây dựng sẵn.
Xây dựng chương trình điều khiển
Bảng giá trị của 5 xung âm đầu tiên do điều khiển phát đi.Do độ rộng này sẽ thay đổi do nhiễu mối trường do đó ta chỉ lấy phần giá trị cao
mã
0
1
2
3
4
5
1
2
4
2
4
2
4
2
2
2
4
4
2
2
3
2
2
2
2
4
4
4
2
2
2
2
2
2
Sơ đồ thuật toán.
Thuật toán điều khiển của chúng em là đo đo rộng của các xung âm của tín hiệu điều khiển phát đi và gán độ rộng của mỗi xung này vào một mảng. nhờ vào việc so sánh giá trị của mảng sau với các gia trị đã có ta sẽ phân biệt được các mã khác nhau.
Power on
Sleeping
(main)
Interrupt
Setup_timer1(0)
Chờ sườn xuống
T
F
A[i]:=Read_tiner1();
i:=i+1;
Chờ sườn lên
T
F
I= 6
T
F
So sánh
đưa ra
lệnh điều khiển,i=0;
Mode=1
T
Gửi các A[i] lên máy tính,
I=0;
Power off
Chương trình điều khiển
#include
#use delay(clock=12000000)
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#include
#bit mode d1.0
int8 count,i,kt,ok,value_h[20];
int16 value[20];
void init(){
setup_timer_1(T1_INTERNAL | T1_DIV_BY_4);
set_timer1(0);
enable_interrupts(INT_EXT);
ext_int_edge(h_TO_l);
enable_interrupts(INT_TIMER1);
enable_interrupts(GLOBAL);
printf("nghia");
setb=0x01;
setd=0x00;
for(i=0;i<=6;i++){value[i]=0,value_h[i]=0;}
i=0;
}
void print_code (){
for(i=0;i<=6;i++){
value_h[i]=value[i]>>8;
printf("%2u :%2u\n\r",i,value_h[i]);
value_h[i]=0;
}
i=0;
delay_ms(3000);
}
void control(){
for(i=0;i<=8;i++){
value_h[i]=value[i]>>8;
}
if((value_h[1]==2)&&(value_h[2]==2)&&(value_h[3]==2)&&(value_h[4]==2)){printf("%2u\n\r",0);}//buttom1
else
if((value_h[1]==4)&&(value_h[2]==2)&&(value_h[3]==2)&&(value_h[4]==2)){printf("%2u\n\r",1);}//buttom2
else
if((value_h[1]==2)&&(value_h[2]==4)&&(value_h[3]==2)&&(value_h[4]==2)){printf("%2u\n\r",2);}//buttom3
else
if((value_h[1]==4)&&(value_h[2]==4)&&(value_h[3]==2)&&(value_h[4]==2)){printf("%2u\n\r",3);}//buttom4
else
if((value_h[1]==2)&&(value_h[2]==2)&&(value_h[3]==4)&&(value_h[4]==2)){printf("%2u\n\r",4);}//buttom5
else
if((value_h[1]==4)&&(value_h[2]==2)&&(value_h[3]==4)&&(value_h[4]==2)){printf("%2u\n\r",5);}//buttom6
else
if((value_h[1]==2)&&(value_h[2]==4)&&(value_h[3]==4)&&(value_h[4]==2)){printf("%2u\n\r",6);}//buttom7
else
if((value_h[1]==4)&&(value_h[2]==4)&&(value_h[3]==4)&&(value_h[4]==2)){printf("%2u\n\r",7);}//buttom8
else
if((value_h[1]==2)&&(value_h[2]==2)&&(value_h[3]==2)&&(value_h[4]==4)){printf("%2u\n\r",8);}//buttom9
else
if((value_h[1]==2)&&(value_h[2]==4)&&(value_h[3]==2)&&(value_h[4]==4)&&(value_h[5]==4)){printf("%2u\n\r",9);}//vol+
else
if((value_h[1]==4)&&(value_h[2]==4)&&(value_h[3]==2)&&(value_h[4]==4)&&(value_h[5]==4)){printf("%2u\n\r",10);}//vol-
i=0;
delay_ms(500);
}
#INT_EXT
void width(){
disable_interrupts(int_ext);
while(i<=6){
while(b0);//cho muc 0
set_timer1(0);
while(!b0);//cho muc 1
value[i]= get_timer1();
i++;
}
control();
enable_interrupts(int_ext);
}
void main(){
init();
while(1)sleep();//che do tiet kiem nguon
}
Nhận xét
Ưu điểm:
Mạch chạy tương đối ổn định, có thể ghếp nối với máy tính để mởi rộng ứng dụng.
Nhược điểm:
Mạch đóng ngắt dùng relay lên mạch cồng kềnh, cần sử dụng cả điện áp 12V cho mạch. Dùng nguồn máy tính tốn kém cho thiết kế
Hướng phát triển:
Thiết kế điều khiển đóng ngắt dùng triac.thiết kế mạch in 2 lớp cho bộ điều khiển nhỏ gọn. Dùng sóng Radio để điều khiển.
Tài liệu tham khảo:
Kỹ thuật ghép nối máy vi tính ( Ngô Diện Tập)
Vi xử lý 8051 (Tống Văn On)
Các website: www.microchip.com
www.PICvietnam.com.vn
www.Dientuvietnam.net
Các file đính kèm theo tài liệu này:
- Điều khiển hệ thống điện từ xa dùng hồng ngoại.doc