Arduino cơ bản 13: Điều khiển LED bằng IR Remote sử dụng Arduino

Trong nội dung bài viết khóa học lập trình Arduino hôm mình mình xin gửi đến các bạn một chủ đề mới (linh kiện mới IR), dùng để điều khiển các thiết bị.

Thông qua bài viết các bạn sẽ nắm được chức năng cấu tạo của IR Receiver trong lập trình Arduino.

Với chủ đề hôm nay mình sẽ dùng ánh sáng hồng ngoại IR để bật tắt LED nhé.

IR Receiver

Bức xạ hồng ngoại (IR), hay ánh sáng hồng ngoại, là dạng năng lượng bức xạ mà mắt người không nhìn thấy nhưng chúng ta có thể cảm nhận dưới dạng nhiệt. Mọi vật trong vũ trụ đều phát bức xạ IR ở mức nào đó, song có hai nguồn dễ thấy nhất là mặt trời và ngọn lửa.

IR là một loại bức xạ điện từ, một dải liên tục tần số được tạo ra khi các nguyên tử hấp thụ và sau đó giải phóng năng lượng. Từ tần số cao nhất đến thấp nhất, bức xạ điện từ bao gồm tia gamma, tia X, bức xạ tử ngoại, ánh sáng nhìn thấy, bức xạ hồng ngoại, vi sóng và sóng vô tuyến.

Sơ đồ nguyên lý

Các linh kiện cần thiết cho dự án

Tên linh kiệnSố lượng
Arduino Uno R31
Dây cắm6
Breadboard1
IR Receiver1
LED 5mm1
Trở 220R1
IR Remote 1

Code

#include <IRremote.h>
int RECV_PIN = 11;   
int ledPin = 10;
boolean ledState = LOW;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(ledPin,OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {  
      Serial.println(results.value, HEX);
      if(results.value == 0xFD00FF){
         ledState = !ledState;  
         digitalWrite(ledPin,ledState);  
           }     
   irrecv.resume();
   }
}

Giải thích code

Đầu tiên kiểm tra xem remote đã nhận tín hiệu chưa nếu quá trình nhận tín hiệu thành công thì xuất ra màn hình giá trị mã HEX.

if (irrecv.decode(&results))
...
if(results.value == 0xFD00FF)

Đảo trạng thái của LED

ledState = !ledState;
digitalWrite(ledPin,ledState);

Nhận giá trị tiếp theo.

irrecv.resume();

Thư viện

Cài đặt thư viện IR Remote: Tải ngay

Scroll to Top