Arduinoコードとビデオ:Arduino用炎センサーモジュール
このチュートリアルでは、Arduinoで炎センサーモジュールを使う方法を紹介します。炎センサーは炎の存在を検出し、検出時にアラームやインジケーターを作動させることができます。プロジェクトが終わる頃には、炎を検知すると音による警報と視覚的フィードバックで反応する実用的なシステムが完成しているでしょう。


炎センサーモジュールは赤外線LEDを用いて炎を検出して動作します。炎が検出されると、モジュールはブザーやLEDなどの他の部品を作動させるために使える信号を出力します。このプロジェクトでは、炎センサーをArduinoに配線し、入出力を処理する簡単なプログラムを書きます。
コードと配線をより明確に理解するために、関連する動画(動画の:00の部分)をご確認ください。
ハードウェア解説
このプロジェクトの主な構成要素は、炎検知センサーモジュール、Arduinoボード、および警報用のブザーまたはLEDです。炎センサーモジュールには4本のピンがあり、デジタル出力ピン(DO)、アナログ出力ピン(AO)、電源ピン(VCC)、接地ピン(GND)があります。デジタル出力ピンは炎を検知するとHIGH信号を送り、アナログ出力は炎の強さに応じて変化する値を提供します。
Arduinoはデジタル出力を読み取り、炎の有無を判定します。センサーが炎を検出すると、Arduinoは出力ピンを使ってアラームやライトを作動させることができます。モジュール上の内蔵ポテンショメータで炎検出の感度を調整できます。
データシートの詳細
| 製造元 | 一般的 |
|---|---|
| 部品番号 | LM393 |
| ロジック/入出力電圧 | 5 V |
| 電源電圧 | 2~36 V |
| 出力電流(チャンネルあたり) | 20ミリアンペア |
| ピーク電流(チャンネルあたり) | 50 mA |
| PWM周波数に関するガイダンス | 該当なし |
| 入力論理閾値 | 0.8 V(低)、2.0 V(高) |
| 電圧降下 / RDS(オン)/ 彩度 | 0.2 V |
| 熱限界 | 摂氏125℃ |
| パッケージ | TO-220 |
| 備考 / バリエーション | 感度調節可能 |
- モジュールには2~36Vの適切な電圧を供給してください。
- 最適な火炎検出のために、センサーの赤外線LEDを遮らないようにしてください。
- モジュールがピーク電流に近い状態で動作する場合は、ヒートシンクを使用してください。
- 短絡や誤った接続を避けるため、配線には注意してください。
- 用途に応じてオンボードのポテンショメーターで感度を調整してください。
- アラーム出力が接続されている負荷(ブザー/LED)に対応できることを確認してください。
配線手順


火炎センサーモジュールをArduinoに配線するには、まずセンサーのVCCピンをArduinoの5Vピンに接続します。次に、センサーのGNDピンをArduinoのGNDピンのいずれかに接続します。センサーのデジタル出力ピン(DO)はArduinoのデジタルピン2に接続し、ここではFLAMEコード内で。最後に、ブザーなどの警報装置をArduinoのデジタルピン8に接続します(以下では〜と呼ばれる)ALARM。
すべての接続が確実に固定されていることを確認してください。接続が緩いと動作が不安定になることがあります。アナログ出力を使用する場合は、アナログ出力ピン(AO)をArduinoのA0などのアナログピンに接続してください。ただし、基本的な機能には必須ではありません。動画では代替の配線方法も説明されています(動画の02:30で)。
コード例と解説
以下のコードスニペットは、火炎センサーを初期化し、シリアルモニターを設定します:
#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
}ここでは、炎センサーとアラームのピンを定義し、シリアル通信を9600ボーレートで初期化します。これにより、デバッグのためにシリアルモニタにメッセージを表示できます。
次に、メインループ内で火炎センサーを読み取ります:
void loop() {
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");
}
delay(200);
}このコードの部分は火炎センサーの状態をチェックします。火を検出した場合(HIGH)はアラームを作動させ、シリアルモニタに火事だ!火事だ!と表示します。火が検出されない場合(LOW)はアラームを停止し、シリアルモニタに平和と表示します。ループには200ミリ秒の遅延が含まれており、検出の感度を変えるために調整できます。
デモンストレーション/当日のご案内
システムの電源を入れると、シリアルモニタには「Robojax.com Fire Module Test」と表示され、その後、炎が検出されるまで「Peace」と表示されます。炎が検出されると、ブザーが鳴り、LEDが点灯して火災状態を示します。モジュール上のポテンショメータを調整することで、センサーの感度をテストできます。リモコンなどからの赤外線信号による誤検知(動画の04:15参照)には注意してください。
動画のタイムスタンプ
- 00:00- 炎検知センサーモジュールの紹介
- 午前02:30- 配線手順
- 04:15- 炎検知の実演
リソースと参考文献
-
外部LM393 データシート (PDF)ti.com
ファイル📁
ファイルは利用できません。