🌱 Giải mã tín hiệu hồng ngoại từ remote sử dụng vi điều khiển
Bài viết trước đã đề cập đến rất nhiều chuẩn hồng ngoại - IR protocols, vì vậy việc giải mã mà mã hóa phát tín hiệu hồng ngoại theo tất cả các chuẩn trên sẽ mất rất nhiều thời gian. Bài viết này sẽ chỉ đề cập đến phương án chung để có thể giải mã tín hiệu hồng ngoại trả về từ LED thu hồng ngoại sử dụng vi điều khiển.
➤ Thiết bị sử dụng để giải mã hồng ngoại
Để thực hành giải mã tín hiệu hồng ngoại, chúng ta cần chuẩn bị một số thiết bị cần thiết.
➥ LED thu hồng ngoại
TSOP4838 Technical Informations |
Hoạt động của LED thu hồng ngoại này cũng rất đơn giản, nó sẽ lọc tín hiệu hồng ngoại với tần số mang tương ứng (TSOP48xx - phần xx sẽ tương ứng với tần số mang theo đơn vị kHz).
- Ở trạng thái bình thường khi không nhận được tín hiệu hồng ngoại, chân tín hiệu OUT của LED sẽ trả về mức logic HIGH.
- Khi nhận được tín hiệu xung hồng ngoại Burst (ví dụ 38kHz), chân tín hiệu sẽ bị kéo xuống mức LOW (như hình dưới).
Tín hiệu của LED thu hồng ngoại |
➥ Vi điều khiển
Rõ ràng rồi, nội dung chính của bài viết này, sẽ xoay quanh vi điều khiển và các ngoại vi của nó để xử lý tín hiệu trả về từ LED thu hồng ngoại! Bạn có thể sử dụng bất kỳ vi điều khiển nào sẵn có, vì giải mã tín hiệu hồng ngoại không yêu cầu quá cao về mặt phần cứng của ngoại vi (ngoại vi cần có: External Interrupt, Timer, EEPROM có thì càng tốt).
Nếu có sẵn thì bạn có thể thêm một con Arduino, để có thể check nhanh các tín hiệu hồng ngoại từ remote nhanh hơn với bộ Framework Arduino có sẵn.
➥ Bộ điều khiển cầm tay (IR Remote Control)
Bạn cũng cần có ít nhất một bộ điều khiển hồng ngoại (IR Remote Control), bạn cũng có thể sử dụng điều khiển tivi / điều hòa sẵn có tại nhà.
Bạn có thể tham khảo mua sản phẩm remote tại đây (Bao gồm remote + Led thu + Led phát hồng ngoại)!
➤ Sử dụng Vi điều khiển để giải mã hồng ngoại
Dễ thấy với tín hiệu trả về ở trên chúng ta hoàn toàn có thể sử dụng vi điều khiển để giải mã tín hiệu hồng ngoại, hai công việc vi điều khiển cần làm:
- Phát hiện các tín hiệu số (HIGH/LOW) trên chân OUT của LED thu hồng ngoại.
- Đo thời gian mỗi tín hiệu duy trì ở mức logic của nó.
Để giải mã tín hiệu hồng ngoại, mình sẽ đặt ra hai bài toán khác nhau:
- Giải mã tín hiệu hồng ngoại đã biết trước protocols
Ví dụ đã biết là remote sử dụng NEC protocols, việc cần làm là đo, detect độ rộng các tín hiệu xung Start, Stop, giải mã address và command của từng phím là gì! - Giải mã tín hiệu hồng ngoại bất kỳ - chưa biết trước protocols
Phần này chúng ta sẽ trả về Raw Data - tức là độ rộng xung ở mức HIGH / LOW, còn việc phân tích đó là protocol gì thì có thể dùng các thuật toán khác hoặc tự phân tích manual.
Ở bài viết này mình sẽ hướng dẫn mọi người đọc nhanh Raw Data của tín hiệu remote sử dụng Arduino.
➥ Kết nối phần cứng
Kết nối LED nhận TSOP1838 với Arduino |
➥ Thêm thư viện IRRemote cho Arduino
Bạn có thể tải thư viện Arduino cho IRRemote tại đây! Sau đó giải nén và ném vào folder Library. Ví dụ mặc định đường dẫn trên Windows: C:\Program Files (x86)\Arduino\libraries\
➥ Giải mã raw code hồng ngoại với thư viện Arduino
➥ Đọc tín hiệu raw từ các remote không theo chuẩn thông dụng
Download Code và Raw Data tại đây!
>>>= Follow ngay =<<<
bạn ơi mình cũng đang có bai tập về phần này, rất mong bạn ra tiếp video tiếp theo, làm sao để viết sao chép từ remote không theo chuẩn nào cả để viết code lên attiny85 .
Trả lờiXóa84F9F4E1
Raw: (263) 9008, 3980, 1000, 984, 1028, 1956, 1028, 1956, 1028, 1960, 1000, 980, 1004, 980, 1000, 984, 1000, 984, 1024, 1960, 1004, 980, 1000, 984, 1000, 984, 1024, 1960, 1024, 1960, 1024, 1960, 1024, 1960, 1000, 984, 1024, 1960, 1004, 980, 1028, 1960, 1000, 980, 1028, 1956, 1000, 984, 1028, 1960, 1024, 1960, 996, 984, 1024, 1960, 1000, 984, 1024, 1960, 996, 988, 1024, 1960, 1020, 30888
Raw: (263) HIGH 9004
LOW 3980
HIGH 996
LOW 988
HIGH 1024
LOW 1964
HIGH 1020
LOW 1960
HIGH 1024
LOW 1964
HIGH 996
LOW 988
HIGH 996
LOW 1008
HIGH 976
LOW 984
HIGH 1000
LOW 984
HIGH 1024
LOW 1960
HIGH 1004
LOW 984
HIGH 996
LOW 984
HIGH 1004
LOW 980
HIGH 1024
LOW 1960
HIGH 1028
LOW 1960
HIGH 1024
LOW 1956
HIGH 1028
LOW 1956
HIGH 1004
LOW 980
HIGH 1028
LOW 1960
HIGH 1000
LOW 984
HIGH 1024
LOW 1960
HIGH 1004
LOW 980
HIGH 1028
LOW 1956
HIGH 1004
LOW 980
HIGH 1028
LOW 1960
HIGH 1024
LOW 1960
HIGH 1000
LOW 980
HIGH 1028
LOW 1956
HIGH 1004
LOW 980
HIGH 1028
LOW 1956
HIGH 1000
LOW 984
HIGH 1024
LOW 1960
HIGH 1024
LOW 30880
Mình mới làm NEC, phần giao thức bất kỳ mình sẽ làm sau nhé
Xóahttps://www.laptrinhdientu.com/2024/10/AVR-ATTiny13-NEC-IR-Protocol-RemoteControl.html