Nguồn blog : thachdt.com
Hướng dẫn viết code mạch điều khiển 4 kênh bạnc lệnh remote RF
Chức năng của mạch như sau :
+ Học lệnh từ remote 4 nút RF trên thị trường để điều khiển bất tắt 4 relay
+ Chuyển đổi giữa chế độ tự giữ relay hoặc không tự giữ relay khi nhấn nút trên remote đã học lệnh bằng cách nhấn giữ nút nhấn
Video mạch :

Sơ đồ mạch :
![]() |
sơ đồ mạch |
+ Điện áp hoạt động của mạch này là 12V
Hình một trong nhiều mẫu remote nút mà mạch này hổ trợ học lệnh
![]() |
Mẫu remote 4 nút |
+ Mạch tách sóng mình sử dụng mạch tách thu sóng 315Mhz có sẵn và thông dụng nhất trên thị trường để dùng với remote 315MHz, hoặc các bạn có thể dùng với remote tần số 433MHz thông qua việc đổi sang dùng module thu sóng 433MHz
Hình module thu tách sóng :
![]() |
Module thu sóng 315MHz hoặc 433MHz |
Chuỗi dữ liệu thu được ở module thu sóng:

Code của mạch này như sau : mình sử dụng CCS để viết code
Giải thích về code :
+ Mình sử dụng ngắt ngoài trên chân INT để thực hiện việc đọc giữ liệu , sử dụng timer1 để đo thời gian xung mức cao và phân biệt bit 0 hoặc bit 1 trong chuỗi dữ liệu sau khi qua mạch tách thu sóng
+ Ngắt timer0 mỗi 1ms một lần để phục vụ giám sát thời gian có sóng RF tới và giám sát thời gian giấn nút
+ Hàm RF(); thực hiện việc đọc dữ liệu RF và lấy dữ liệu RF ra biến data
+ Hàm read(char address); đọc dữ liều từ bộ nhớ eeprom
+ Hàm write(char address, long val); ghi dữ liệu vào bộ nhớ eeprom
+ Hàm learn (); thực hiện chế độ học lệnh
+ Hàm main(); là hàm chính thực hiện gọi các hàm trên và thực thi chương trình
Ở mạch này mình sử dụng thêm watch dog timer để nếu có hiện tượng treo chương trình thì hàm restart_wdt(); sẽ tự động reset chip vi điều khiển PIC
Đoạn code này để chuyển giữ chế độ tự giữ relay và không tự giữ relay
switch(chedo)
{
case 0:
{
if(data==data1)output_high(R1);
else output_low(R1);
if(data==data2)output_high(R2);
else output_low(R2);
if(data==data3)output_high(R3);
else output_low(R3);
if(data==data4)output_high(R4);
else output_low(R4);
break;
}
case 1:
{
if((data==data1)&&(m==1)){output_toggle(R1);m=0;}
if((data==data2)&&(m==1)){output_toggle(R2);m=0;}
if((data==data3)&&(m==1)){output_toggle(R3);m=0;}
if((data==data4)&&(m==1)){output_toggle(R4);m=0;}
if(data==0)m=1;
break;
}
}
Giới thiệu sản phẩm :
Bo điều khiển từ xa 4 kênh bạnc lệnh đa chức năng
NO : THACHDT-RF-IR-4-12V V1.0
Điện áp hoạt động : 12V DC hoặc 12V AC ( 50Hz – 60Hz )
Chức Năng :
+ Học lệnh hầu hết các loại remote RF trên thị trường ( tần số 315MHz, hoặc 433MHz)
+ Học lệnh từ tất cả các remote hồng ngoại của tivi, đầu kĩ thuật số ..v.v
+ Nhớ được 3 remote khác nhau
+ Chế độ tự giữ hoặc không tự giữ relay
+ Chế độ tự sao lưu trạng thái relay khi mất điện
+ Còi bip báo ( một tiếng báo bật relay , hai tiếng báo tắt relay )
+ Bật tắt trực tiếp 4 relay bằng 4 nút nhấn trên bo
![]() |
Bo điều khiển từ xa 4 kênh bạnc lệnh đa chức năng bản 12V |
NO : THACHDT-RF-IR-4-220V V1.0
![]() |
Bo điều khiển từ xa 4 kênh bạnc lệnh đa chức năng bản 220V |
NO : THACHDT-RF-IR-4-220V V1.0
![]() |
Phiên bản 220V đấu với tải là các bóng đèn 220V
|