Arduino 驅動煙霧感測器模組

jeikerxiao發表於2024-07-02

以下是使用Arduino Uno R3驅動煙霧感測器模組的詳細說明、接線圖和程式碼示例。

所需材料

  • Arduino Uno R3
  • 煙霧感測器模組(例如MQ-2)
  • 麵包板和連線線

接線步驟

  1. 供電和地線連線

    • 將Arduino Uno的5V引腳連線到煙霧感測器模組的VCC引腳。
    • 將Arduino Uno的GND引腳連線到煙霧感測器模組的GND引腳。
  2. 訊號線連線

    • 將煙霧感測器模組的模擬訊號引腳連線到Arduino Uno的模擬引腳A0。
    • 可選:將煙霧感測器模組的數字訊號引腳連線到Arduino Uno的數字引腳D2(用於數字輸出)。

連線圖示

Arduino Uno R3            煙霧感測器模組
----------------          ------------
5V  ------------------->  VCC
GND ------------------->  GND
A0  ------------------->  AO (Analog Output)
D2  ------------------->  DO (Digital Output, 可選)

示例程式碼

const int analogPin = A0;  // 煙霧感測器模組的模擬訊號引腳連線到A0
const int digitalPin = 2;  // 煙霧感測器模組的數字訊號引腳連線到D2(可選)

void setup() {
  pinMode(digitalPin, INPUT);  // 設定數字引腳為輸入(可選)
  Serial.begin(9600);          // 啟動串列埠通訊
}

void loop() {
  // 讀取模擬訊號
  int analogValue = analogRead(analogPin);
  
  // 讀取數字訊號(可選)
  int digitalValue = digitalRead(digitalPin);

  // 輸出模擬訊號值
  Serial.print("Analog value: ");
  Serial.println(analogValue);

  // 輸出數字訊號值(可選)
  if (digitalValue == HIGH) {
    Serial.println("Smoke detected (digital)");
  } else {
    Serial.println("No smoke (digital)");
  }

  delay(1000);  // 延遲1秒
}

程式碼詳解

  1. 定義引腳

    • analogPin:連線到煙霧感測器模組的模擬訊號引腳(A0)。
    • digitalPin:連線到煙霧感測器模組的數字訊號引腳(D2, 可選)。
  2. 初始化

    • setup()函式中,設定數字引腳模式為輸入(如果使用數字輸出)。
    • pinMode(digitalPin, INPUT):設定數字引腳為輸入(可選)。
    • Serial.begin(9600):啟動串列埠通訊。
  3. 讀取煙霧感測器模組的訊號

    • 使用analogRead(analogPin)讀取模擬訊號,並儲存在analogValue中。
    • 使用digitalRead(digitalPin)讀取數字訊號,並儲存在digitalValue中(可選)。
  4. 輸出訊號值

    • 使用Serial.printSerial.println輸出模擬訊號值。
    • 如果使用數字訊號輸出,並根據digitalValue的狀態輸出"Smoke detected (digital)"或"No smoke (digital)"。
  5. 延遲

    • delay(1000):延遲1秒,以便每1秒讀取一次訊號。

總結

以上步驟和程式碼示例展示瞭如何使用Arduino Uno R3驅動煙霧感測器模組並透過串列埠輸出煙霧檢測的狀態。
模擬訊號值表示煙霧濃度,而數字訊號值可以用於檢測煙霧的存在與否。
當檢測到煙霧時,串列埠會輸出相應的模擬值和數字訊號狀態。

相關文章