Mạch điều khiển từ xa Arduino IR

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề





Trong bài đăng này, chúng tôi sẽ xây dựng một công tắc điều khiển từ xa không dây dựa trên IR (hồng ngoại) dựa trên Arduino có thể tùy chỉnh, bao gồm điều khiển từ xa IR và một bộ thu, bạn có thể sửa đổi theo nhu cầu của mình. Trong phần sau của bài viết, chúng ta sẽ tìm hiểu về phiên bản an toàn được nâng cấp của điều khiển từ xa IR sẽ chỉ phản hồi với một tần số được chỉ định duy nhất.

Nếu bạn ở trên trình độ mới bắt đầu, bạn có thể hoàn thành nó một cách dễ dàng. Mạch đề xuất được minh họa ở đây chỉ có ba điều khiển trên điều khiển từ xa và 3 rơ le trên đầu thu. Bạn có thể sửa đổi mã và sơ đồ mạch để đáp ứng nhu cầu của mình.



Bạn sẽ cần hai bảng Arduino, đóng vai trò điều khiển từ xa và một bảng khác hoạt động như bộ thu. Tôi muốn giới thiệu Arduino pro mini cho dự án này, vì kích thước của chúng khá nhỏ và kích thước tổng thể của điều khiển từ xa có thể bị che khuất.

Bạn có thể sử dụng Arduino pro mini dựa trên 3.3V cho điều khiển từ xa để bạn có thể được cấp nguồn bằng hai ô nút hoặc hai pin cỡ AA, tùy theo nhu cầu của bạn.



Mạch phát IR có 3 nút nhấn và một đèn LED hồng ngoại để gửi lệnh đến bộ thu. Mỗi nút đã được lập trình với mã thập lục phân duy nhất, mã thập lục phân tương tự cũng được lập trình ở phía máy thu.

Khi nhấn một nút, đèn LED hồng ngoại sẽ gửi mã thập lục phân đến bộ thu, bộ thu sẽ nhận ra nút nào được nhấn và nó sẽ BẬT / TẮT rơle tương ứng.

Điều khiển từ xa được đề xuất sử dụng giao thức RC5 để giao tiếp với người nhận, bạn có thể thay đổi mọi thứ bằng cách sửa đổi mã.

Nếu bạn chỉ mới bắt đầu sử dụng Arduino, bạn vẫn có thể hoàn thành nó chỉ cần làm theo sơ đồ và tải lên mã mà không cần sửa đổi.

Mạch và chương trình:

Bộ phát từ xa Arduino:

Mạch điều khiển từ xa IR chống lừa đảo

Mạch trên minh họa cách xây dựng bộ phát từ xa Arduino IR.

Ba điện trở 10K là điện trở kéo xuống, ngăn chặn sự kích hoạt ngẫu nhiên của điều khiển từ xa do tích điện tĩnh và điện trở giới hạn dòng điện 220ohm được sử dụng cho đèn LED hồng ngoại.

Chương trình cho máy phát từ xa:

//---------Program developed by R.Girish--------//
#include
IRsend irsend
const int button1 = 4
const int button2 = 5
const int button3 = 6
void setup() {
pinMode(button1, INPUT)
pinMode(button2, INPUT)
pinMode(button3, INPUT)
}
void loop()
{
if (digitalRead(button1) == HIGH)
{
delay(50)
irsend.sendRC5(0x80C, 32)
delay(200)
}
if (digitalRead(button2) == HIGH)
{
delay(50)
irsend.sendRC5(0x821, 32)
delay(200)
}
if (digitalRead(button3) == HIGH)
{
delay(50)
irsend.sendRC5(0x820, 32)
delay(200)
}
}
//---------Program developed by R.Girish--------//

Bộ thu Arduino:

Mạch thu IR Arduino như hình trên bao gồm Cảm biến TSOP1738 ít bóng bán dẫn, điện trở hạn chế dòng điện cho bóng bán dẫn, rơ le và điốt để hấp thụ điện áp cao từ cuộn dây rơ le.

Sơ đồ mạch là tự giải thích.

Chương trình cho bộ thu Arduino:

//-----------------Program developed by R.Girish-----------//
#include
int input = 11
int op1 = 8
int op2 = 9
int op3 = 10
int intitial1
int intitial2
int intitial3
IRrecv irrecv(input)
decode_results dec
#define output1 0x80C // code received from button A
#define output2 0x821 // code received from button B
#define output3 0x820 // code received from button C
void setup()
{
irrecv.enableIRIn()
pinMode(op1,1)
pinMode(op2,1)
pinMode(op3,1)
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW)
intitial1 = 0
} else {
digitalWrite(op1, HIGH)
intitial1 = 1
}
break
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW)
intitial2 = 0
} else {
digitalWrite(op2, HIGH)
intitial2 = 1
}
break
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW)
intitial3 = 0
} else {
digitalWrite(op3, HIGH)
intitial3 = 1
}
break
}
irrecv.resume()
}
}
//--------------Program developed by R.Girish-----------//

Bằng cách làm theo các giải thích trên, bạn có thể thực hiện ba điều khiển, nếu bạn muốn thêm nhiều điều khiển và rơ le, bạn cần chỉnh sửa mã và sơ đồ mạch.

Bạn có thể chỉ định đầu ra và đầu vào cho các chân không sử dụng trong bộ thu và điều khiển từ xa trong chương trình và kết nối số lượng bóng bán dẫn và rơ le cho các chân tương ứng trong bộ thu và tương tự kết nối số lượng công tắc và kéo điện trở xuống trong điều khiển từ xa.

Bạn có thể sử dụng mã thập lục phân ngẫu nhiên để chỉ định nhiều nút hơn.

Ví dụ: 0xA235, 0xFFFF, 0xBA556, v.v. Và cũng thêm giá trị thập lục phân tương tự vào mã người nhận. Ví dụ: #define output4 0xA235, #define outout5 0xFFFF, v.v.

Tạo điều khiển từ xa IR với tần số duy nhất

Trong các phần trên, chúng ta đã tìm hiểu về điều khiển từ xa IR đơn giản sẽ hoạt động với bất kỳ bộ phát từ xa IR nào.
Trong bài viết sau, chúng ta sẽ tìm hiểu cách tạo phiên bản nâng cấp của khái niệm trên để điều khiển hoàn hảo các thiết bị gia dụng bằng vi điều khiển arduino, vi điều khiển này sẽ hoạt động với một tần số riêng và không bao giờ hoạt động với các thiết bị cầm tay IR thông thường.

Điều khiển từ xa IR chống lừa

Mạch này có thể bật / tắt các tiện ích của bạn bằng cách sử dụng các nút không sử dụng trên điều khiển TV hoặc bất kỳ điều khiển từ xa không sử dụng nào khác có thể nằm trong hộp rác của bạn trong nhiều lứa tuổi.

Phương châm của dự án này là giúp đỡ những người gặp khó khăn về thể chất và giúp họ tiếp cận việc chuyển đổi BẬT / TẮT các thiết bị gia dụng cơ bản như quạt hoặc đèn một cách độc lập.

Mục tiêu thứ hai là cho phép người dùng kiểm soát các tiện ích “Giống như một ông chủ” mà không cần phải di chuyển khỏi vị trí hiện có của họ.

Mạch sử dụng giao tiếp dựa trên IR truyền thống giữa máy phát và máy thu.

Mạch này hoàn toàn chống lại các điều khiển từ xa IR khác và các nguồn IR khác và ít bị lỗi hơn.

Vấn đề lớn với bộ vi điều khiển không dựa trên Mạch điều khiển từ xa IR , được tìm thấy trên internet, là nó có thể BẬT / TẮT với bất kỳ điều khiển từ xa dựa trên IR nào và chỉ có thể điều khiển một thiết bị ngay lập tức và cũng dễ bị lỗi hơn.

Mạch này khắc phục các sự cố được chỉ định ở trên và chúng tôi có thể điều khiển một số tiện ích trên một điều khiển từ xa và gán khóa cho các tiện ích cụ thể.

Trước khi tiếp tục dự án này, bạn cần tải xuống các tệp thư viện cho arduino theo liên kết này và làm theo hướng dẫn được cung cấp bên dưới: github.com/z3t0/Arduino-IRremote

Hướng dẫn:

1) Nhấp vào nút “sao chép hoặc tải xuống” theo liên kết đã cho và nhấn “Tải xuống ZIP”.

2) Giải nén tệp và di chuyển thư mục “IRremote” vào thư mục thư viện Arduino của bạn.

3) Xóa thư mục “RobotIRremote” khỏi thư viện arduino của bạn. “RobotIRremote” có định nghĩa tương tự về thư viện “IRremote” xung đột và không thể tải mã lên Arduino vì vậy, việc xóa / xóa là bắt buộc.

Bằng cách sao chép hướng dẫn trên, phần mềm Arduino IDE của bạn đã sẵn sàng cho bất kỳ / hầu hết các dự án dựa trên IR.

Gán chìa khóa cho điều khiển từ xa:

Trong điều khiển từ xa TV của chúng tôi, mỗi phím có mã thập lục phân duy nhất, được sử dụng để nhận biết phím nào được nhấn cho một thao tác. Trước khi tải mã cuối cùng lên Arduino, bạn cần tìm mã thập lục phân cho các khóa của mình là gì.

Để thực hiện việc này, hãy xây dựng mạch sau trong breadboard và làm theo hướng dẫn.

1) Mở Arduino IDE và tải lên mã ví dụ “IRrecv Demo”

2) Mở màn hình nối tiếp và bấm phím trên điều khiển từ xa mà bạn muốn sử dụng.

Bạn sẽ thấy mã thập lục phân bật lên ngay sau khi bạn nhấn phím. Đó là mã thập lục phân cho khóa cụ thể đó.

3) Làm tương tự cho hai phím khác (3 phím được đưa ra trong dự án này để điều khiển 3 thiết bị)

· Chúng tôi sẽ sử dụng các mã thập lục phân này trong chương trình chính và tải lên arduino.

Chương trình:
//-----------------Program developed by R.Girish-----------//
#include
int input = 11
int op1 = 8
int op2 = 9
int op3 = 10
int intitial1
int intitial2
int intitial3
IRrecv irrecv(input)
decode_results dec
#define output1 0x111 // place your code received from button A
#define output2 0x112 // place your code received from button B
#define output3 0x113 // place your code received from button C
void setup()
{
irrecv.enableIRIn()
pinMode(op1,1)
pinMode(op2,1)
pinMode(op3,1)
}
void loop() {
if (irrecv.decode(&dec)) {
unsigned int value = dec.value
switch(value) {
case output1:
if(intitial1 == 1) {
digitalWrite(op1, LOW)
intitial1 = 0
} else {
digitalWrite(op1, HIGH)
intitial1 = 1
}
break
case output2:
if(intitial2 == 1) {
digitalWrite(op2, LOW)
intitial2 = 0
} else {
digitalWrite(op2, HIGH)
intitial2 = 1
}
break
case output3:
if(intitial3 == 1) {
digitalWrite(op3, LOW)
intitial3 = 0
} else {
digitalWrite(op3, HIGH)
intitial3 = 1
}
break
}
irrecv.resume()
}
}
//--------------Program developed by R.Girish-----------//

GHI CHÚ:

Trong chương trình:

#define output1 0x111 // đặt mã của bạn nhận được từ nút A

#define output2 0x111 // đặt mã của bạn nhận được từ nút B

#define output3 0x111 // đặt mã của bạn nhận được từ nút C

· Đặt 3 mã duy nhất từ ​​điều khiển từ xa của bạn vào vị trí 111, 112 và 113 này và tải mã lên. Các mã thập lục phân sẽ từ 0 đến 9 và A đến F, ví dụ: 20156, 26FE789, FFFFFF.

· Đặt mã của bạn với “0x” (không x).

Sơ đồ mạch:

· Nhấn phím sẽ bật rơle ON và bằng cách nhấn một lần nữa, nó sẽ tắt rơle.




Một cặp: Thuốc chống muỗi tự nhiên sử dụng điện trở Watt cao Tiếp theo: Mạch dò kim loại đất sâu - Máy quét mặt đất