0 đánh giá

Điều khiển Mạch Arduino từ xa qua remote TV bất kỳ

Bài này sẽ hướng dẫn bạn làm sao để giải mã bất kỳ loại remote TV nào để dùng nó vào việc điều khiển từ xa thiết bị của bạn dùng arduino.

Bước 1: Chuẩn bị
khoere_breadboard-8637355701.jpg khoere_remote-3014286314.jpg khoere_arduino-uno-7067274386.jpg khoere_cambienir-2109918193.jpg
  • Arduino
  • Remote hồng ngoại bất kỳ
  • Mắt thu hồng ngoại
  • Board cắm dây
  • Dây cắm
  • LED

Thực hiện nối cảm biến hồng ngoại vào arduino như sau:

(Vout) chân 1 cảm biến hồng ngoại nối vào chân 11(Arduino)
(GND) chân 2 cảm biến hồng ngoại nối vào chân GND(Arduino)
(Vcc) chân 3 cảm biến hồng ngoại nối vào chân 5V(Arduino)

Bước 2: Tải về thư viện và chương trình và chạy thử giải mã hồng ngoại
  • Trước tiên bạn copy thư mục IRremote,  có trong file nén ở trên vào thư viện.
  • Thự hiện giải mã hồng ngoại bằng các chạy chương trình sau
#include <IRremote.h>

int IRpin = 11;
IRrecv irrecv(IRpin);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // bắt đầu nhận tín hiệu
}

void loop() 
{
  if (irrecv.decode(&results)) 
    {
      Serial.println(results.value, DEC); // In giá trị ra
      irrecv.resume();   // nhận tiếp tục
    }
  
  
}

Sau khi nạp chương trình vào arduino, nối cảm biến như bước 1, ta chạy chương trình và mở Serial Monitor của arduino ide lên để xem, tiến hành nhấn remote để xem kết quả nhận được là các giải số đã được giải mã

Ví dụ khi nhấn nút nguồn remote bạn sẽ nhận được mã sau:

16753245
4294967295
4294967295
4294967295
4294967295
4294967295
4294967295
4294967295

Nút mode:

16736925
4294967295
4294967295
4294967295
4294967295

(Chú ý: các số nhận được ở đây tùy vào loại remote TV bạn dùng nhé)

 

 

Bước 3: Ứng dụng để đóng tắt đèn LED 13

Sau đây chúng ta sẽ test code ở phía trên với phím mode và phím nguồn của remote để bật tắt LED 13 tích hợp sẳn trong board arduino

#include <IRremote.h>

int IRpin = 11;  // Chân cảm biến nhận hồng ngoại
int LED = 13;    // chân LED
IRrecv irrecv(IRpin);
decode_results results;
boolean LEDon = true; // 
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Bắt đầu nhận tín hiệu
  pinMode(LED, OUTPUT);
}

void loop() 
{
   
  if (irrecv.decode(&results)) 
    {
      
      irrecv.resume();   // Nhận tiếp
    }
  
   if (results.value == 16753245)  // nếu giá trị nhấn là nút mode (bạn có thể đổi giá trị tương ứng cho nút mình muốn)
     {
       if (LEDon == true)   // Nếu LED sáng thì tắt và ngược lại
         {
           LEDon = false;   
           digitalWrite(LED, HIGH);
           delay(100);      //             
         }         
        else
          {
            LEDon = true;
            digitalWrite(LED, LOW);
            delay(100);            
          }
          
     }

}

 

CHÚC BẠN THÀNH CÔNG !

(!) Nếu có bất kỳ thắc mắc nào cần hỏi vui lòng đặt câu hỏi tại HỏiHay.Net, Cộng đồng Hỏi đáp Hỏi Hay sẽ trả lời bạn.
730 lượt xem ^tháng ^ngày
admin 2,030 điểm

Please log in or register to Comment this Media.

minhtuan 140 điểm
cho em hỏi tai sao với Ứng dụng để đóng tắt đèn LED 13 lại dùng boolean với ledon
0 đánh giá
^tháng ^ngày