以下是使用Arduino Uno R3驅動煙霧感測器模組的詳細說明、接線圖和程式碼示例。
所需材料
- Arduino Uno R3
- 煙霧感測器模組(例如MQ-2)
- 麵包板和連線線
接線步驟
-
供電和地線連線:
- 將Arduino Uno的5V引腳連線到煙霧感測器模組的VCC引腳。
- 將Arduino Uno的GND引腳連線到煙霧感測器模組的GND引腳。
-
訊號線連線:
- 將煙霧感測器模組的模擬訊號引腳連線到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秒
}
程式碼詳解
-
定義引腳:
analogPin
:連線到煙霧感測器模組的模擬訊號引腳(A0)。digitalPin
:連線到煙霧感測器模組的數字訊號引腳(D2, 可選)。
-
初始化:
- 在
setup()
函式中,設定數字引腳模式為輸入(如果使用數字輸出)。 pinMode(digitalPin, INPUT)
:設定數字引腳為輸入(可選)。Serial.begin(9600)
:啟動串列埠通訊。
- 在
-
讀取煙霧感測器模組的訊號:
- 使用
analogRead(analogPin)
讀取模擬訊號,並儲存在analogValue
中。 - 使用
digitalRead(digitalPin)
讀取數字訊號,並儲存在digitalValue
中(可選)。
- 使用
-
輸出訊號值:
- 使用
Serial.print
和Serial.println
輸出模擬訊號值。 - 如果使用數字訊號輸出,並根據
digitalValue
的狀態輸出"Smoke detected (digital)"或"No smoke (digital)"。
- 使用
-
延遲:
delay(1000)
:延遲1秒,以便每1秒讀取一次訊號。
總結
以上步驟和程式碼示例展示瞭如何使用Arduino Uno R3驅動煙霧感測器模組並透過串列埠輸出煙霧檢測的狀態。
模擬訊號值表示煙霧濃度,而數字訊號值可以用於檢測煙霧的存在與否。
當檢測到煙霧時,串列埠會輸出相應的模擬值和數字訊號狀態。