Project này sử dụng mạch thu hồng ngoại IR để nhận giá trị gửi từ remote
(1) x Arduino Uno R3
(1) x Remote
(1) x Mạch thu hồng ngoại IR
(3) x Dây cắm đực - cái
Bức xạ hồng ngoại là một dạng ánh sáng tương tự như ánh sáng mà chúng ta nhìn thấy xung quanh mình. Sự khác biệt duy nhất giữa ánh sáng IR và ánh sáng nhìn thấy là tần số và bước sóng. Bức xạ hồng ngoại nằm ngoài phạm vi của ánh sáng nhìn thấy, vì vậy con người không thể nhìn thấy nó:
Bởi vì IR là một loại ánh sáng, nó không thể truyền qua tường hoặc các vật liệu khác như WiFi hoặc Bluetooth.
Một hệ thống liên lạc hồng ngoại điển hình yêu cầu một bộ phát IR và một bộ thu IR. Máy phát trông giống như một đèn LED tiêu chuẩn, ngoại trừ nó tạo ra ánh sáng trong phổ IR thay vì phổ khả kiến. Nếu bạn nhìn vào mặt trước của điều khiển từ xa TV, bạn sẽ thấy đèn LED của bộ phát hồng ngoại:
Bộ thu IR là một diode quang và bộ tiền khuếch đại chuyển đổi ánh sáng IR thành tín hiệu điện. Điốt thu IR thường trông như hình dưới hoặc dạng mô-đun
Ánh sáng hồng ngoại được phát ra bởi mặt trời, bóng đèn và bất kỳ thứ gì khác tạo ra nhiệt. Điều đó có nghĩa là có rất nhiều nhiễu ánh sáng IR xung quanh chúng ta. Để ngăn nhiễu này làm nhiễu tín hiệu IR, một kỹ thuật điều chế tín hiệu được sử dụng.
Trong điều chế tín hiệu IR, một bộ mã hóa trên điều khiển từ xa IR sẽ chuyển đổi tín hiệu nhị phân thành tín hiệu điện đã được điều chế. Tín hiệu điện này được gửi đến đèn LED phát. Đèn LED truyền chuyển đổi tín hiệu điện đã được điều chế thành tín hiệu ánh sáng IR đã được điều chế. Bộ thu IR sau đó giải điều chế tín hiệu ánh sáng IR và chuyển đổi nó trở lại dạng nhị phân trước khi chuyển thông tin đến bộ vi điều khiển:
Tín hiệu IR được điều chế là một chuỗi các xung ánh sáng IR được bật và tắt ở một tần số cao được gọi là tần số sóng mang. Tần số sóng mang được sử dụng bởi hầu hết các máy phát là 38 kHz, vì nó rất hiếm trong tự nhiên và do đó có thể được phân biệt với tiếng ồn xung quanh. Bằng cách này, bộ thu IR sẽ biết rằng tín hiệu 38 kHz đã được gửi từ bộ phát và không được thu từ môi trường xung quanh.
Diode thu phát hiện tất cả các tần số của ánh sáng IR, nhưng nó có bộ lọc băng thông và chỉ cho phép qua IR ở 38 kHz. Sau đó, nó khuếch đại tín hiệu đã điều chế bằng bộ tiền khuếch đại và chuyển nó thành tín hiệu nhị phân trước khi gửi đến bộ vi điều khiển.
Dạng trong đó tín hiệu IR đã điều chế được chuyển đổi sang dạng nhị phân được xác định bởi một giao thức truyền dẫn. Có nhiều giao thức truyền IR. Sony, Matsushita, NEC và RC5 là một số giao thức phổ biến hơn.
Giao thức NEC cũng là loại phổ biến nhất trong các dự án Arduino, vì vậy ta sẽ sử dụng nó làm ví dụ để cho thấy cách bộ thu chuyển đổi tín hiệu IR đã điều chế thành tín hiệu nhị phân.
Logic ‘1’ bắt đầu với xung mức cao dài 562,5 µs của 38 kHz IR, tiếp theo là xung mức thấp dài 1.687,5 µs. Logic ‘0’ được phát với xung mức cao dài 562,5 µs theo sau là xung mức thấp dài 562,5 µs:
Đây là cách giao thức NEC mã hóa và giải mã dữ liệu nhị phân thành tín hiệu điều chế. Các giao thức khác chỉ khác nhau về khoảng thời gian của các xung mức CAO và mức THẤP riêng lẻ.
Mỗi lần bạn nhấn một nút trên điều khiển từ xa, một mã thập lục phân duy nhất sẽ được tạo. Đây là thông tin được điều chế và gửi qua IR tới người nhận. Để giải mã phím nào được nhấn, bộ vi điều khiển nhận cần biết mã nào tương ứng với mỗi phím trên điều khiển.
Các điều khiển từ xa khác nhau gửi các mã khác nhau cho các lần nhấn phím, vì vậy bạn sẽ cần xác định mã được tạo cho từng phím trên điều khiển từ xa cụ thể của mình. Nếu bạn có thể tìm thấy biểu dữ liệu, các mã khóa IR sẽ được liệt kê. Nếu không, có một bản phác thảo Arduino đơn giản sẽ đọc hầu hết các điều khiển từ xa phổ biến và in mã thập lục phân vào màn hình nối tiếp khi bạn nhấn một phím.
Kết nối mô-đun IR nhận với Arduino:
IR nhận -- Arduino
G (-) GND
R +5V
Y (S) 11
Tải thư viện IRremote
https://github.com/Arduino-IRremote/Arduino-IRremote
Cài thư viện:
Sketch/Inclucde Library/Add .ZIP Library --> Chọn "Arduino-IRremote-master"--> Open
Đoạn code này xuất ra màn hình Serial Monitor giá trị đọc từ Remote
Đoạn code này đọc giá trị gửi từ remote, chuyển đổi thành tên nút nhân tương ứng và in ra màn hình Serial Monitor
References:
https://www.circuitbasics.com/arduino-ir-remote-receiver-tutorial/