Mạch Điều Khiển Từ Xa 4 Thiết Bị RF
Thời gian vừa qua mình có nhận được một cuộc gọi từ một anh dưới Bình Phước. Anh ấy lên ý tưởng việc đóng ngắt máy bơm từ xa. Vì anh ấy đi tưới rẫy kéo dây nước rất xa muốn đóng ngắt. Lên mạng tìm kiếm. Mình kiếm được mạch này khá hay. Xin chia sẻ với bạn.
Xem thêm bài này nhé.
+ Mạch nạp pitkit2 hoặc burn-e để nạp chương trình cho vi điều khiển PIC ( có kèm phần mềm nạp ) , 1 máy tính laptop
+ 1 cục nguồn 220V – 12V để test mạch
+ PIC16F54
PT2272-M4
C1815
78L05
Nút nhấn nhỏ loại tròn 2 chân
Module thu sóng 315Mhz loại không có IC
Role 12V 5 chân
Domino 2C ( màu xanh )
Diode 1N4007
Diode 1N4148
Đèn LED 3mm ( màu gì cũng được )
Điện trở 10K
Điện trở 4K7
Điện trở 1K
Điện trở 620k ( phải mua đúng loại điện trở này )
Tụ hóa 220uF-16V
Tụ hóa 47uF-16V
Tụ gốm 100nF ( tụ trên lưng có ghi số 104 )
Loa chíp nhỏ loại 12V
Remote 315Mhz loại có 4 nút ( giống như hình )[/success]
Module Điều Khiển 4 Kênh
Sơ Đồ Mạch Layout
Mạch In Làm Thực Tế
Lưu Ý Đấu Dây
Mạch Thật Thực Tế
Code CCS
Nếu bạn chưa biết về CCS có thể xem thêm ở đây:
[warning title="CODE NÈ" icon="exclamation-triangle"]
#include <16f54.h>
#FUSES WDT // Watch Dog Timer
#FUSES LP //Low power osc < 200 khz
#FUSES PROTECT //Code protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES RESERVED //Used to set the reserved FUSE bits
#use delay(clock=68000,RESTART_WDT)
#define R4 PIN_B4
#define R3 PIN_B5
#define R2 PIN_B6
#define R1 PIN_B7
#define D0 PIN_A2
#define D1 PIN_A3
#define D2 PIN_A0
#define D3 PIN_A1
#define N1 PIN_B0
#define N2 PIN_B1
#define N3 PIN_B2
#define N4 PIN_B3
void main (void)
{
SETUP_WDT(WDT_1152MS );
RESTART_WDT();
set_tris_b(0b11110000);
set_tris_a(0xff);
output_low(R1);
output_low(R2);
output_low(R3);
output_low(R4);
int1 R1_set=0,R2_set=0,R3_set=0,R4_set=0;
while(true)
{
RESTART_WDT();
if((input(D0))&&(R1_set==1)){output_toggle(R1);R1_set=0;}
else if((input(N1))&&(R1_set==1)){output_toggle(R1);R1_set=0;}
if(((input(D0))==0)&&((input(N1))==0))R1_set=1;
if((input(D1))&&(R2_set==1)){output_toggle(R2);R2_set=0;}
else if((input(N2))&&(R2_set==1)){output_toggle(R2);R2_set=0;}
if(((input(D1))==0)&&((input(N2))==0))R2_set=1;
if((input(D2))&&(R3_set==1)){output_toggle(R3);R3_set=0;}
else if((input(N3))&&(R3_set==1)){output_toggle(R3);R3_set=0;}
if(((input(D2))==0)&&((input(N3))==0))R3_set=1;
if((input(D3))&&(R4_set==1)){output_toggle(R4);R4_set=0;}
else if((input(N4))&&(R4_set==1)){output_toggle(R4);R4_set=0;}
if(((input(D3))==0)&&((input(N4))==0))R4_set=1;
}
} [/warning]
Video Mạch Thực Tế
Toàn bộ file mạch in vẽ bằng PROTEUS 8 cùng với file code hex. Bạn có thể tải tại đây:
Xem thêm bài này nhé.
Điều Khiển Từ Xa 4 Kênh RF Học Mã Hay Nhất
[success title="LINH KIỆN CẦN " icon="check-circle"] + Máy hàn nhỏ ,chì hàn , nhựa thông , kìm bấm , đồng hồ đo điện ( không có cũng được mà có thì càng tốt )+ Mạch nạp pitkit2 hoặc burn-e để nạp chương trình cho vi điều khiển PIC ( có kèm phần mềm nạp ) , 1 máy tính laptop
+ 1 cục nguồn 220V – 12V để test mạch
+ PIC16F54
PT2272-M4
C1815
78L05
Nút nhấn nhỏ loại tròn 2 chân
Module thu sóng 315Mhz loại không có IC
Role 12V 5 chân
Domino 2C ( màu xanh )
Diode 1N4007
Diode 1N4148
Đèn LED 3mm ( màu gì cũng được )
Điện trở 10K
Điện trở 4K7
Điện trở 1K
Điện trở 620k ( phải mua đúng loại điện trở này )
Tụ hóa 220uF-16V
Tụ hóa 47uF-16V
Tụ gốm 100nF ( tụ trên lưng có ghi số 104 )
Loa chíp nhỏ loại 12V
Remote 315Mhz loại có 4 nút ( giống như hình )[/success]
Module Điều Khiển 4 Kênh
Sơ Đồ Mạch Nguyên Lý
Mạch In Làm Thực Tế
Lưu Ý Đấu Dây
Mạch Thật Thực Tế
Code CCS
Nếu bạn chưa biết về CCS có thể xem thêm ở đây:
[Download] CCS 4.104 FULL - Trình Biên Dịch Vi Điều Khiển PIC
#include <16f54.h>
#FUSES WDT // Watch Dog Timer
#FUSES LP //Low power osc < 200 khz
#FUSES PROTECT //Code protected from reading
#FUSES NODEBUG //No Debug mode for ICD
#FUSES RESERVED //Used to set the reserved FUSE bits
#use delay(clock=68000,RESTART_WDT)
#define R4 PIN_B4
#define R3 PIN_B5
#define R2 PIN_B6
#define R1 PIN_B7
#define D0 PIN_A2
#define D1 PIN_A3
#define D2 PIN_A0
#define D3 PIN_A1
#define N1 PIN_B0
#define N2 PIN_B1
#define N3 PIN_B2
#define N4 PIN_B3
void main (void)
{
SETUP_WDT(WDT_1152MS );
RESTART_WDT();
set_tris_b(0b11110000);
set_tris_a(0xff);
output_low(R1);
output_low(R2);
output_low(R3);
output_low(R4);
int1 R1_set=0,R2_set=0,R3_set=0,R4_set=0;
while(true)
{
RESTART_WDT();
if((input(D0))&&(R1_set==1)){output_toggle(R1);R1_set=0;}
else if((input(N1))&&(R1_set==1)){output_toggle(R1);R1_set=0;}
if(((input(D0))==0)&&((input(N1))==0))R1_set=1;
if((input(D1))&&(R2_set==1)){output_toggle(R2);R2_set=0;}
else if((input(N2))&&(R2_set==1)){output_toggle(R2);R2_set=0;}
if(((input(D1))==0)&&((input(N2))==0))R2_set=1;
if((input(D2))&&(R3_set==1)){output_toggle(R3);R3_set=0;}
else if((input(N3))&&(R3_set==1)){output_toggle(R3);R3_set=0;}
if(((input(D2))==0)&&((input(N3))==0))R3_set=1;
if((input(D3))&&(R4_set==1)){output_toggle(R4);R4_set=0;}
else if((input(N4))&&(R4_set==1)){output_toggle(R4);R4_set=0;}
if(((input(D3))==0)&&((input(N4))==0))R4_set=1;
}
} [/warning]
Video Mạch Thực Tế














