IR Sensor (cảm biến hồng ngoại) và cảm biến chuyển động PIR với Arduino và với Raspberry PI

Xin chào, trong phần trước, chúng ta đã thảo luận về giao diện của cảm biến siêu âm với Raspberry Pi và tôi hy vọng bạn thích phần này. Trong blog này, chúng ta sẽ thảo luận về các loại cảm biến hồng ngoại và giao diện của cảm biến hồng ngoại với Raspberry Pi 4 và bảng Arduino.

Cảm biến hồng ngoại được sử dụng rộng rãi trong robot theo dòng và trong máy in 3D làm công tắc giới hạn IR. Nhưng bạn có biết cảm biến IR hoạt động như thế nào không? Không! Đừng lo lắng, tôi ở đây để nói với bạn. Vâng, cảm biến IR phát ra tín hiệu và nó phát hiện đối tượng dựa trên trạng thái của tín hiệu nhận được. Nói thêm về cảm biến hồng ngoại, cảm biến hồng ngoại có hai loại và chúng như sau:

Các loại cảm biến hồng ngoại

1) Cảm biến hồng ngoại chủ động

2) Cảm biến hồng ngoại thụ động

Cảm biến IR chủ động

Cảm biến hoạt động bao gồm một bộ thu và một bộ phát, bộ phát không là gì khác ngoài một đèn LED hồng ngoại hoặc một nguồn LED đơn giản tạo ra ánh sáng và mặt khác, bộ thu nhận các tín hiệu được truyền bởi bộ phát IR.

Kết nối của cảm biến hoạt động với Arduino và Raspberry PI 

Những thứ bạn sẽ cần

  • Cảm biến
  • Arduino
  • Kết nối cáp
  • Raspberry Pi
  • Ardunio IDE
  • Thonny IDE

Trong hình bên dưới, bạn có thể thấy một PCB và một số thành phần được gắn trên PCB đó. PCB đó không có gì khác ngoài một cảm biến IR.

Kết nối của một cảm biến hồng ngoại

Cảm biến IR

Cho đến thời điểm này, những gì chúng ta đọc được là về những điều cơ bản của tất cả các cảm biến IR, trong phần này của blog này, chúng ta sẽ thảo luận về giao diện của cảm biến IR với Arduino và với Raspberry Pi; như bạn có thể thấy trong hình sau, mô-đun có ba chân đầu ra GND, VCC và tín hiệu. Trong đó GND và VCC rõ ràng được sử dụng để cấp nguồn cho mô-đun và chúng tôi nhận được đầu ra ở chân tín hiệu.

Vì vậy, để lấy đầu ra từ cảm biến, bạn phải cấp nguồn cho mô-đun thông qua bảng Arduino hoặc Raspberry Pi và lấy đầu ra trên chân đầu ra của nó. Bạn có thể đang nghĩ điều này và vâng, nó có phần đúng nhưng có một điểm khó hiểu, bạn sẽ làm gì nếu cảm biến không xuất ra chính xác ??

Làm thế nào chúng ta có thể biết rằng cảm biến hồng ngoại đang hoạt động hay không?

Có thể có nhiều lý do dẫn đến việc không nhận được đầu ra chính xác từ cảm biến và một vài trong số chúng tôi đã liệt kê bên dưới.

Sự cố chương trình

Đúng! Tôi biết rằng bạn không mắc phải những lỗi như vậy, nhưng nếu mô-đun không hoạt động, thì việc kiểm tra những thứ nhỏ như vậy cũng có thể giúp ích. Vì vậy bạn hãy thử kiểm tra xem đã kết nối chân tín hiệu với đúng chân cắm chưa nhé.

Độ lợi đầu ra của IC hẹn giờ 555 không được điều chỉnh đúng cách

Đây là vấn đề thường gặp nhất; Những vấn đề như vậy trở nên trầm trọng hơn khi điều chỉnh sai độ lợi của IC hẹn giờ 555 và vấn đề này có thể được giải quyết bằng cách điều chỉnh chiết áp gắn trên mô-đun về đúng vị trí của nó.

Phân loại mạch trong cảm biến PIR

Tôi không nghĩ rằng tôi cần phải giải thích điều này, bạn đủ thông minh để hiểu lý do của những vấn đề như vậy. Bất kỳ phần nào của mô-đun bị quá nhiệt có nghĩa là mô-đun đó đã bị hỏng và không thể sử dụng thêm.

Cảm biến IR vẫn không hoạt động

– Nếu một bộ phận trên bo mạch không nóng, hãy lấy điện thoại ra và bật máy ảnh trên mô-đun này, nếu bạn thấy đèn đỏ từ cảm biến, bạn có thể cho biết rằng mô-đun đã hoạt động hoàn toàn và tất cả các kết nối cần được kiểm tra lại.

Kết nối cảm biến IR với Arduino Board

Bản phác thảo sau đây cho thấy giao diện của cảm biến IR với Bảng Arduino. Trong bản phác thảo này, chúng tôi đã kết nối chân tín hiệu của mô-đun với D7 của Arduino và cấp nguồn cho mô-đun này thông qua các chân VCC và GND.

Arduino với cảm biến hồng ngoại

Mã Arduino cho cảm biến hồng ngoại

int SignalPin = 2;   // Connect the signal pin of IR module to the D2 pin of Arduino 
void setup() {
  pinMode(SignalPin, INPUT); // Initialize D2 as an INput pin
  Serial.begin(9600); 
}
int Object = HIGH;
void loop() {
  Object = digitalRead(obstaclePin);
  if (Object == LOW)
  {
    Serial.println("Object Not Found"); // If there is nothing in its path
    delay(200);
  }
  else
  {
    Serial.println("Obstacle Found"); //If there is obstacle 
  }
  delay(100);
}

Kết nối cảm biến IR với Raspberry Pi

Sơ đồ sau đây cho thấy giao diện của cảm biến hồng ngoại với pi raspberry. Trong sơ đồ này, chúng tôi đang cấp nguồn cho cảm biến IR thông qua Raspberry Pi và chúng tôi đang sử dụng bộ chuyển đổi mức giữa cảm biến và bảng Raspberry, chúng tôi đang sử dụng bộ chuyển đổi mức vì Raspberry không thể xử lý điện áp cao hơn 3,3v trên chân GPIO của nó . Và  nếu chúng ta không sử dụng bộ chuyển đổi mức thì sẽ có nhiều nguy cơ làm hỏng bo mạch Raspberry Pi do điện áp cao. vì vậy  tôi khuyên bạn nên sử dụng bộ chuyển đổi mức.

Kết nối cảm biến IR với Raspberry Pi
Kết nối cảm biến IR với Raspberry Pi

Mã Python của cảm biến IR cho Raspberry Pi

import RPi.GPIO as GPIO # Import Raspberry Pi GPIO library 

def button_callback(Detection): 

print("Object Is detected") 

GPIO.setwarnings(False) # Ignore warning for now 

GPIO.setmode(GPIO.BOARD) # Use physical pin numbering 

GPIO.setup(34, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Set pin 10 to be an input pin and set initial value to be pulled low (off) 

GPIO.add_event_detect(10,GPIO.RISING,Detection=Object_detected) # Setup event on pin 10 rising edge 

GPIO.cleanup()

Giới thiệu chuyển động cảm biến PIR

Không giống như cảm biến hồng ngoại chủ động, cảm biến hồng ngoại thụ động không yêu cầu bộ phát và bộ thu riêng biệt. Các cảm biến IR như vậy thu nhiệt xung quanh và phát hiện đối tượng dựa trên độ lệch trong số đọc.

Các cảm biến này chủ yếu được sử dụng trong các ứng dụng giám sát gia đình.

Cảm biến và điều chỉnh độ trễ trong cảm biến chuyển động PIR

Cảm biến PIR
Cảm biến PIR

Ngoài tất cả những điều cơ bản này, nếu bạn kiểm tra mô-đun, bạn sẽ thấy hai chiết áp trên cảm biến PIR.

Một chiết áp được chỉ định là độ nhạy được sử dụng để điều chỉnh phạm vi cảm biến. Và một chiết áp được chỉ định là Định thời gian đầu ra được sử dụng để điều chỉnh độ trễ.

Khắc phục sự cố nếu mô-đun PIR vẫn không hoạt động

Có thể có nhiều lý do mà mô-đun có thể ngừng hoạt động và một vài trong số chúng tôi đã liệt kê bên dưới.

Mô-đun không đưa ra bất kỳ đầu ra nào trong phút đầu tiên sau khi bật nó lên

Nếu bạn đang gặp vấn đề này, đừng lo lắng, nó không phải là vấn đề, trong phút đầu tiên sau khi cấp nguồn, cảm biến PIR bắt đầu đọc các tia hồng ngoại xung quanh nó. Do đó, hãy để nó ổn định trong môi trường xung quanh.

Đầu ra không ổn định

Nếu bạn đang gặp phải sự cố này, có hai lý do, thứ nhất là bạn đã thay đổi nhầm chiết áp đầu tiên (độ nhạy) của mô-đun thành vị trí tối đa của nó và nguyên nhân thứ hai của sự cố có thể là vị trí của cảm biến PIR không chính xác. Nếu bạn đã lắp đặt cảm biến PIR tại điểm mà cảm biến PIR tiếp xúc trực tiếp với không khí và ánh sáng. Đây có thể là lý do mà cảm biến đang tạo ra sai đầu ra.

Kết nối cảm biến PIR với Arduino

Hình sau đây. Hiển thị giao diện của cảm biến PIR với bảng Arduino. Trong phần này, chúng tôi đã kết nối chân tín hiệu của cảm biến PIR với chân D9 của bảng Arduino và cấp nguồn cho cảm biến thông qua chính Arduino.

Cảm biến chuyển động Pir
Cảm biến chuyển động Pir

Cảm biến chuyển động PIR Mã Arduino

<

int led = 13;                // the pin that the LED is atteched to
int sensor = 9;              // the pin that the sensor is atteched to
int state = LOW;             // by default, no motion detected
int val = 0;                 // variable to store the sensor status (value)

void setup() {
  pinMode(led, OUTPUT);      // initalize LED as an output
  pinMode(sensor, INPUT);    // initialize sensor as an input
  Serial.begin(9600);        // initialize serial
}

void loop(){
  val = digitalRead(sensor);   // read sensor value
  if (val == HIGH) {           // check if the sensor is HIGH
    digitalWrite(led, HIGH);   // turn LED ON
    delay(100);                // delay 100 milliseconds 
    
    if (state == LOW) {
      Serial.println("Motion detected!"); 
      state = HIGH;       // update variable state to HIGH
    }
  }

Kết nối của cảm biến PIR với Raspberry Pi

Hình dưới đây cho thấy sơ đồ giao diện của cảm biến PIR với pi raspberry.

Cảm biến PIR với Raspberry Pi

Cảm biến chuyển động PIR Mã Python

import RPi.GPIO as GPIO  

From time import sleep 

GPIO.setwarnings(False)  

GPIO.setmode(GPIO.BOARD)  

GPIO.setup(14, GPIO.IN) #Read output from PIR motion sensor  

while True:  

input=GPIO.input(11)  

if input == 0: #When output from motion sensor is LOW 
   print ("No object detected",input) 
   sleep(0.1) 
elif input == 1: #When output from motion sensor is HIGH 
   print ("Object detected",input) 
   sleep(0.1)

Phần kết luận –

Trong phần này, tôi đã cố gắng giải thích từng điều về cảm biến IR và cảm biến PIR. Tôi hy vọng blog này đã xóa tan những nghi ngờ của bạn về cảm biến IR và cảm biến PIR.
Nếu có bất kỳ nghi ngờ nào, vui lòng cho tôi biết trong phần bình luận và tôi sẽ cố gắng giải quyết truy vấn của mình ở đó cho chắc chắn.