Arduino Cảm biến tránh vật thể bằng hồng ngoại

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Arduino và cảm biến tránh vật cản bằng hồng ngoại để phát hiện sự có mặt của vật cản.

cảm biến tránh vật cản Arduino

Phần cứng cần chuẩn bị

1×Arduino Uno R3
1×USB 2.0 cable type A/B (for USB-A PC)
1×USB 2.0 cable type C/B (for USB-C PC)
1×IR Obstacle Avoidance Sensor
1×Alternatively, TCRT5000 Obstacle Avoidance Sensor
1×dây jumper
1×(Khuyến nghị) Screw Terminal Block Shield for Arduino Uno
1×(Khuyến nghị) Breadboard Shield for Arduino Uno
1×(Khuyến nghị) Enclosure for Arduino Uno
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Cảm Biến Tránh Vật Cản Hồng Ngoại

Cảm biến chướng ngại vật hồng ngoại (IR) được sử dụng để phát hiện sự hiện diện của bất kỳ vật cản nào ở phía trước mô-đun cảm biến bằng tín hiệu hồng ngoại. Khoảng cách phát hiện từ 2 cm đến 30 cm. Khoảng cách phát hiện có thể được điều chỉnh bằng một biến trở tích hợp.

Sơ đồ chân

Cảm biến tránh vật cản IR gồm ba chân:

  • Chân GND: cần được kết nối với GND (0V)
  • Chân VCC: cần được kết nối với VCC (5V hoặc 3.3V)
  • Chân OUT: là một chân đầu ra: LOW khi có vật cản, HIGH khi không có vật cản. Chân này cần được kết nối với chân đầu vào của Arduino.
sơ đồ chân cảm biến né tránh vật cản ir
image source: diyables.io

Cách hoạt động

Một mô-đun cảm biến vật cản hồng ngoại có bộ phát IR và bộ nhận IR tích hợp. Bộ phát IR phát tín hiệu hồng ngoại. Bộ nhận IR dò tín hiệu IR phản xạ để xác định vật thể có mặt hay không. Sự có mặt của vật cản được phản ánh ở chân OUT:

  • Nếu có vật cản ở trước cảm biến, chân OUT của cảm biến sẽ ở mức thấp
  • Nếu không có vật cản ở trước cảm biến, chân OUT của cảm biến sẽ ở mức cao

※ Lưu ý:

Trong quá trình vận chuyển, cảm biến có thể bị biến dạng, điều này có thể gây ra sự cố hoạt động. Nếu cảm biến không hoạt động đúng cách, điều chỉnh bộ phát IR và bộ thu IR sao cho chúng nằm song song.

Sơ đồ đấu dây

sơ đồ đấu dây cảm biến ir tránh vật cản cho Arduino

This image is created using Fritzing. Click to enlarge image

Cách Lập Trình Cho Cảm Biến Tránh Va Chạm Bằng Tia Hồng Ngoại (IR)

  • Khởi tạo chân Arduino ở chế độ đầu vào kỹ thuật số bằng cách sử dụng hàm pinMode(). Ví dụ, chân GIOP18.
pinMode(18, INPUT_PULLUP);
  • Đọc trạng thái chân Arduino bằng cách sử dụng hàm digitalRead().
int state = digitalRead(18);

Mã Arduino

Có hai cách để lập trình cho một ứng dụng tránh chướng ngại vật:

  • Làm hoặc không làm điều gì khi vật cản có mặt hoặc không có mặt
  • Làm hoặc không làm điều gì khi vật cản được phát hiện hoặc được loại bỏ

Mã Arduino để kiểm tra xem có vật cản hay không

/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino/arduino-infrared-obstacle-avoidance-sensor */ // Arduino's pin connected to OUT pin of IR obstacle avoidance sensor const int SENSOR_PIN = 8; void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: int state = digitalRead(SENSOR_PIN); if (state == LOW) Serial.println("The obstacle is present"); else Serial.println("The obstacle is NOT present"); delay(100); }

Hướng dẫn từng bước

  • Sao chép mã ở trên và mở nó bằng Arduino IDE
  • Nhấn Tải lên trên Arduino IDE để tải mã lên Arduino
  • Đặt một vật cản trước cảm biến trong một thời gian, rồi gỡ bỏ nó.
  • Xem kết quả trên Serial Monitor.
COM6
Send
The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is NOT present The obstacle is present The obstacle is present The obstacle is present The obstacle is present The obstacle is NOT present The obstacle is NOT present
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Mã Arduino để phát hiện chướng ngại vật

/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino/arduino-infrared-obstacle-avoidance-sensor */ // Arduino's pin connected to OUT pin of IR obstacle avoidance sensor const int SENSOR_PIN = 8; int lastState = HIGH; // the previous state from the input pin int currentState; // the current reading from the input pin void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); // initialize the Arduino's pin as aninput pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the the input pin: currentState = digitalRead(SENSOR_PIN); if (lastState == HIGH && currentState == LOW) Serial.println("The obstacle is detected"); else if (lastState == LOW && currentState == HIGH) Serial.println("The obstacle is cleared"); delay(50); // save the the last state lastState = currentState; }

Hướng dẫn từng bước

  • Sao chép mã ở trên và mở bằng Arduino IDE
  • Nhấp nút Tải lên trên Arduino IDE để tải mã lên Arduino
  • Đặt một vật cản trước cảm biến trong một lúc, rồi bỏ nó ra.
  • Xem kết quả trên Serial Monitor.
COM6
Send
The obstacle is detected The obstacle is cleared
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.

Tham chiếu hàm

Bài hướng dẫn liên quan