Cảm biến thu hồng ngoại IR 1838 và ứng dụng điều khiển LED, điều khiển rèm cửa bằng Arduino UNO R3

Bài trước:  Điều khiển cửa cuốn tự động bằng cảm biến mưa

1. Giới thiệu về Module IR 1838


Module IR 1838 có ba chân theo thứ tự là (-) (+) (Signal) như hình được dùng để thu nhận tín hiệu hồng ngoại từ các nguồn phát 38khz như remote,.... Thông thường chân (+) được nối với chân 5V trong Arduino, chân (-) nối với GND và chân (S) nối với chân digital.

Để điều khiển IR1838 chúng ta cần cài đặt thư viện IRRemote (Download tại đây) .

2. Sơ đồ kết nối với Arduino.

Trong sơ đồ trên IR kết nối với Arduino như sau:
    Arduino                                     IR1838
        5V                                              +
     GND                                             -
        8                                                 S
Ngoài ra còn có 2 led xanh và vàng nối với chân 2 và 3 của Arduino để chúng ta bật tắt chúng bằng Remote thông qua IR1838.

3. Code

a. Trước hết chúng ta cần đoạn code để đọc các giá trị nút nhấn trên một Remote cụ thể để từ các giá trị đó chúng ta xử lý theo ý đò của mình.

Đoạn code sau đây sẽ cho phép đọc và in ra Serial giá trị một nút nhân trên Remote.

#include<IRremote.h> Khai báo thư viện IR
const int chanRemote=8; //Chân IR nối với chân 8
IRrecv irrecv(chanRemote); //khai báo 
decode_results results; //Khai báo biến nhận giá trị trả về
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  irrecv.enableIRIn(); //Cho phép nhận tín hiệu
}

void loop() {
  // put your main code here, to run repeatedly:
  if(irrecv.decode(&results)) //Nếu có kết quả trả về
  {
    Serial.println(results.value, HEX); //In giá trị nút nhấn kiểu HEX
    delay(200);
    irrecv.resume(); //Chờ nhận tín hiệu tiếp theo
  }
}

Giải thích code:

Với đoạn code trên mình dùng remote hồng ngoại như sau:

Khi nhấn trước cảm biến thu hồng ngoại sẽ có mã như sau:
    Play --> FFC23D,    Next --> FF02FD,   PRE --> FF22DD,   V+ --> FFA857,   V- -->FFE01F,...
Khi đã có được mã cần thiết của các nút bấm chúng ta có chương trình điều khiển 2 led như sau:
#include<IRremote.h>
const int chanRemote=8; //Chân IR1838
IRrecv irrecv(chanRemote);
decode_results results;
int led1=2; //Chân led 1
int led2=3; //Chân led 2
boolean trangthailed1=LOW; //Trạng thái led1 và led2 và low
boolean trangthailed2=LOW;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(led1,OUTPUT);
  pinMode(led2,OUTPUT);
  irrecv.enableIRIn();
  
}

void loop() {
  // put your main code here, to run repeatedly:
  if(irrecv.decode(&results)) //Nếu nhận được tín hiêu jremote
  {
    if (results.value==0xFF30CF) // tín hiệu nhận được là nút 1
    { //Serial.println("Dang nhan ON/OFF");
      trangthailed1= !trangthailed1; // Đổi trạng thái led (Tắt thành sáng, sagns thành tắt)
      digitalWrite(led1,trangthailed1);//Ghi trạng thái vừa đổi cho led
    }
    if (results.value==0xFF18E7) //Nếu nút nhấn là nút 2
    { //Serial.println("Dang nhan ON/OFF");
      trangthailed2= !trangthailed2;
      digitalWrite(led2,trangthailed2);
  }
  irrecv.resume();
}
}

Giải thích: Trong đoạn code trên đầu tiên chúng ta khai báo các chân là: Remote 8, led1 2, led2 3.

  • Lúc đầu gán trạng thái 2 led là LOW (tắt).
  • Nếu có nút nhấn thì kiểm tra:
    • Nếu mã code là nút 1 thì đổi trạng thái led (LOW thành HIGH hoặc HIGH thành LOW) rồi ghi vào led1 để led 1 sáng hoặc tắt tùy vào giá trị ghi vào. 
    • Nếu mã code là nút 2 thì đổi trạng thái led (LOW thành HIGH hoặc HIGH thành LOW) rồi ghi vào led1 để led 2 sáng hoặc tắt tùy vào giá trị ghi vào.
    • Chú ý: Nhấn lần đầu bật, lần 2 tắt và lặp lại.
Trên đây tôi đã giới thiệu với các bạn một module nhận tín hiệu hồng ngoại là IR1838 và ứng dụng module này để nhận tín hiệu từ remote và điều khiển 2 led bật tắt. 

Các bạn hoàn toàn có thể ứng dụng để bật tắt đèn hoặc các thiết bị trong nhà thông qua relay (Sẽ giới thiệu trong các bài sau).
Bài tiếp theo tôi sẽ trình bày cách sử dụng remote và IR1838 để điều khiển cửa cuốn (mà kéo). Các bạn hãy đón theo dõi nhé.
Các bạn có thể xem chi tiết tại Video sau:
Download:

Nhận xét, góp ý, thắc mắc, câu hỏi của bạn

أحدث أقدم