Chào mừng bạn đến với Điện Tử Viễn Thông SV! =>>Chúc Bạn Một Ngày Vui Vẻ....!

Thứ Năm, 15 tháng 6, 2017

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

Điều khiển Mạch Arduino từ xa giao tiếp với hồng ngoại

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.

 



  • 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)


  • Thự hiện giải mã hồng ngoại bằng cách 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é)


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);            
          }
          
     }

}
>>>Video hướng dẫn youtube

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