Search Code

Mã Arduino và Video: Mô-đun cảm biến ngọn lửa cho Arduino

Mã Arduino và Video: Mô-đun cảm biến ngọn lửa cho Arduino

Trong hướng dẫn này, chúng ta sẽ khám phá cách sử dụng mô-đun cảm biến lửa với Arduino. Cảm biến lửa phát hiện sự hiện diện của ngọn lửa và có thể kích hoạt chuông báo động hoặc đèn chỉ báo khi phát hiện. Đến cuối dự án này, bạn sẽ có một hệ thống hoạt động phản ứng với việc phát hiện lửa bằng cảnh báo âm thanh và phản hồi trực quan.

infrared flame sensor module -blue
infrared flame sensor module

Mô-đun cảm biến lửa hoạt động bằng cách sử dụng đèn LED hồng ngoại để phát hiện ngọn lửa. Khi phát hiện ngọn lửa, mô-đun sẽ xuất ra tín hiệu có thể được sử dụng để kích hoạt các thành phần khác, chẳng hạn như còi báo động hoặc đèn LED. Dự án này sẽ bao gồm việc nối dây cảm biến lửa với Arduino và viết một chương trình đơn giản để xử lý đầu vào và đầu ra.

Để hiểu rõ hơn về mã và cách nối dây, tôi khuyến khích bạn xem video liên quan (trong video tại 00:00).

Phần cứng được giải thích

Các thành phần chính trong dự án này bao gồm mô-đun cảm biến lửa, bo mạch Arduino và còi báo động hoặc đèn LED để cảnh báo. Cảm biến lửa có bốn chân: chân đầu ra kỹ thuật số (DO), chân đầu ra tương tự (AO), chân nguồn (VCC) và chân nối đất (GND). Chân đầu ra kỹ thuật số gửi tín hiệu HIGH khi phát hiện ngọn lửa, trong khi đầu ra tương tự cung cấp các giá trị thay đổi dựa trên cường độ của ngọn lửa.

Arduino đọc đầu ra kỹ thuật số để xác định xem có ngọn lửa hay không. Khi cảm biến phát hiện ngọn lửa, Arduino có thể kích hoạt chuông báo động hoặc đèn bằng chân đầu ra. Độ nhạy của việc phát hiện lửa có thể được điều chỉnh bằng chiết áp tích hợp trên mô-đun.

Chi tiết bảng dữ liệu

Nhà sản xuấtGeneric
Số bộ phậnLM393
Điện áp logic/IO5 V
Điện áp cung cấp2–36 V
Dòng điện đầu ra (mỗi kênh)20 mA
Dòng điện đỉnh (mỗi kênh)50 mA
Hướng dẫn tần số PWMN/A
Ngưỡng logic đầu vào0,8 V (thấp), 2,0 V (cao)
Sụt áp / RDS(on) / bão hòa0,2 V
Giới hạn nhiệt125 °C
Kiểu đóng góiTO-220
Ghi chú / biến thểĐộ nhạy có thể điều chỉnh

  • Đảm bảo cung cấp điện áp phù hợp từ 2 đến 36 V cho mô-đun.
  • Giữ đèn LED hồng ngoại của cảm biến thông thoáng để phát hiện lửa tối ưu.
  • Sử dụng tản nhiệt nếu mô-đun hoạt động gần giới hạn dòng điện đỉnh.
  • Thận trọng khi nối dây để tránh đoản mạch hoặc kết nối sai.
  • Điều chỉnh độ nhạy bằng chiết áp trên bo mạch cho các ứng dụng khác nhau.
  • Xác minh rằng đầu ra báo động có thể xử lý tải được kết nối (còi/đèn LED).

Hướng dẫn nối dây

Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor

Để nối dây mô-đun cảm biến lửa với Arduino, hãy bắt đầu bằng cách kết nối chân VCC của cảm biến lửa với chân 5V trên Arduino. Sau đó, kết nối chân GND của cảm biến với một trong các chân GND trên Arduino. Chân đầu ra kỹ thuật số (DO) từ cảm biến lửa nên được kết nối với chân kỹ thuật số 2 trên Arduino, mà chúng ta sẽ gọi là FLAME trong mã. Cuối cùng, kết nối một thiết bị báo động, chẳng hạn như còi, với chân kỹ thuật số 8 trên Arduino, được gọi là ALARM.

Đảm bảo rằng tất cả các kết nối đều chắc chắn, vì kết nối lỏng lẻo có thể dẫn đến hành vi không nhất quán. Nếu bạn muốn sử dụng đầu ra tương tự, hãy kết nối chân đầu ra tương tự (AO) với một chân tương tự trên Arduino, chẳng hạn như A0, nhưng điều này là tùy chọn cho chức năng cơ bản. Trong video, các phương pháp nối dây thay thế cũng được thảo luận (trong video tại 02:30).

Ví dụ mã và hướng dẫn chi tiết

Đoạn mã sau khởi tạo cảm biến lửa và thiết lập màn hình nối tiếp:

#define FLAME 2 // kết nối chân DO của cảm biến với chân này
#define ALARM 8 // chân 8 cho báo động 

void setup() {
  Serial.begin(9600);
  Serial.println("Robojax.com Fire Module Test");
  pinMode(FLAME, INPUT); // định nghĩa chân đầu vào FLAME
  pinMode(ALARM, OUTPUT); // định nghĩa chân đầu ra ALARM
}

Ở đây, chúng ta định nghĩa các chân cho cảm biến lửa và báo động, và khởi tạo truyền thông nối tiếp ở tốc độ 9600 baud. Điều này cho phép chúng ta in thông báo ra màn hình nối tiếp để gỡ lỗi.

Tiếp theo, chúng ta đọc cảm biến lửa trong vòng lặp chính:

void loop() {
  int fire = digitalRead(FLAME); // đọc cảm biến FLAME

  if(fire == HIGH) {
    digitalWrite(ALARM, HIGH); // bật còi
    Serial.println("Fire! Fire!");
  } else {
    digitalWrite(ALARM, LOW); // tắt còi
    Serial.println("Peace");
  }
  delay(200);
}

Phần này của mã kiểm tra trạng thái của cảm biến lửa. Nếu nó phát hiện ngọn lửa (HIGH), nó sẽ kích hoạt báo động và in "Fire! Fire!" ra màn hình nối tiếp. Nếu không có ngọn lửa (LOW), nó sẽ tắt báo động và in "Peace". Vòng lặp bao gồm độ trễ 200 mili giây, có thể được điều chỉnh để thay đổi độ nhạy của việc phát hiện.

Trình diễn / Điều gì sẽ xảy ra

Khi hệ thống được bật nguồn, màn hình nối tiếp sẽ hiển thị "Robojax.com Fire Module Test" theo sau là "Peace" cho đến khi phát hiện ngọn lửa. Khi phát hiện ngọn lửa, còi sẽ kêu và đèn LED sẽ sáng, chỉ ra tình trạng cháy. Bạn có thể kiểm tra độ nhạy của cảm biến bằng cách điều chỉnh chiết áp trên mô-đun. Hãy cẩn thận với các cảnh báo sai, chẳng hạn như những cảnh báo do tín hiệu hồng ngoại từ điều khiển từ xa gây ra (trong video tại 04:15).

Mốc thời gian video

  • 00:00 - Giới thiệu về mô-đun cảm biến lửa
  • 02:30 - Hướng dẫn nối dây
  • 04:15 - Trình diễn phát hiện lửa

Hình ảnh

infrared flame sensor module -blue
infrared flame sensor module -blue
infrared flame sensor module
infrared flame sensor module
Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor
Arduino wiring for infrared flame sensor
62-This is the Arduino code and video for a flame sensor module for Arduino.
Ngôn ngữ: C++
/*
 * This is code for a Flame Sensor module for Arduino.
 * Watch the video https://youtu.be/OZkZIP3KlHQ
  * Other Arduino libraries and videos https://robojax.com
 *  * 
	Flame Sensor module for Arduino
	Written by Ahmad Shamshiri for Robojax.com
	on January 18, 2018 at 22:21 in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * 
 * 
 */
/*


What does it do?
When the infrared diode sees the flame, it sends the digital output DO to
also, the level of flame is represented with the analog output.

 */
  // 4 Infrared Obstacle code for Robojax.com
#define FLAME 2 // connect DO pin of sensor to this pin
#define ALARM 8 // pin 8 for Alarm 


void setup() {
  Serial.begin(9600);
  Serial.println("Robojax.com Fire Module Test");
  pinMode(FLAME, INPUT);//define FLAME input pin
  pinMode(ALARM, OUTPUT);//define ALARM output pin
  // Flame sensor code for Robojax.com

}

void loop() {
    // Flame sensor code for Robojax.com

  int fire = digitalRead(FLAME);// read FLAME sensor


  if( fire == HIGH)
  {
    digitalWrite(ALARM,HIGH);// set the buzzer ON
    Serial.println("Fire! Fire!");
  }else{
    digitalWrite(ALARM,LOW); // Set the buzzer OFF
    Serial.println("Peace");
    // Flame sensor code for Robojax.com

  }



  delay(200);
}

Tài nguyên & tài liệu tham khảo

Tập tin📁

Không có tệp nào khả dụng.