プロジェクト 20: 炎センサー

(1)説明:

炎センサーはIR受光管を使用して炎を検出します。炎の明るさを高低レベルの信号に変換し、中央処理装置に入力して対応するプログラム処理を行います。アナログポートの電圧値は、近くに炎があるかどうかによって異なります。

炎がない場合、アナログポートは約0.3Vを読み取ります。炎がある場合、アナログポートは約1.0Vを読み取ります。炎が近いほど、電圧値は高くなります。火源の検出やスマートロボットの構築に使用できます。

炎センサーのプローブは-25℃から85℃の温度範囲しか耐えられないことに注意してください。

使用中は、炎センサーを火から安全な距離に保ち、損傷を避けてください。

(2)パラメータ:

  • 動作電圧:3.3V-5V(DC)

  • 電流:100mA

  • 最大電力:0.5W

  • 動作温度:-10°Cから+50°C

  • センサーサイズ:31.6mmx23.7mm

  • インターフェース:4pinから3PINインターフェース

  • 出力信号:アナログ信号 A0、A1

(3)接続図:

炎センサーはA1とA2に接続されています。

超音波センサーと光電抵抗を取り外し、炎センサーとファンモジュールを追加すると、 消火ロボットが完成します。

注意: 1)この実験では火源を使用します。火災を防ぐため、可燃物から遠ざけてください。子供は大人の監督のもとで実験を行ってください。安全を確認できない場合は、実験を中止してください。 2)炎センサーは耐火性ではありません。直接炎で燃やさないでください。

(4)テストコード:

(注意: コードをアップロードする前にBluetoothモジュールを接続しないでください。コードのアップロードにもシリアル通信を使用するため、Bluetoothシリアル通信と競合が発生し、アップロードが失敗する可能性があります。)

/*

Keyestudio Mini Tank Robot V3 (Popular Edition)

lesson 20.1

flame sensor

http://www.keyestudio.com

*/

int flame = A1; //炎ピンをアナログピンA1として定義
int val = 0; //デジタル変数を定義

void setup() 
{
	pinMode(flame, INPUT); //ブザーを入力ソースとして定義
    Serial.begin(9600); //ボーレートを9600に設定
}

void loop() 
{
	val = analogRead(flame); //炎センサーのアナログ値を読み取る
	Serial.println(val);//アナログ値を出力して印刷する
	delay(100); //100msの遅延
}

(5)テスト結果:

部品を接続し、コードを書き込み、シリアルモニターを開いてボーレートを9600に設定します。

炎センサーのシミュレーション値を確認できます。

炎が近いほど、シミュレーション値は小さくなります。

モジュールのポテンショメーターを調整して、D1を臨界点に維持します。センサーが炎を検出しない場合、D1はオフになりますが、センサーが炎を検出した場合、D1はオンになります。

注意: 火災を防ぐため、可燃物から遠ざけてください。子供は大人の監督のもとで実験を行ってください。安全を確認できない場合は、実験を中止してください。炎センサーは耐火性ではありません。直接炎で燃やさないでください。

(6)応用練習:

注意: 1)この実験では火源を使用します。火災を防ぐため、可燃物から遠ざけてください。子供は大人の監督のもとで実験を行ってください。安全を確認できない場合は、実験を中止してください。 2)炎センサーは耐火性ではありません。直接炎で燃やさないでください。

次に、LEDをピン9に接続し、炎センサーで制御します。以下のとおりです;

テストコード

(注意: コードをアップロードする前にBluetoothモジュールを接続しないでください。コードのアップロードにもシリアル通信を使用するため、Bluetoothシリアル通信と競合が発生し、アップロードが失敗する可能性があります。)

/*

Keyestudio Mini Tank Robot V3 (Popular Edition)

lesson 20.2

flame sensor

http://www.keyestudio.com

*/

int flame = A1; //炎ピンをアナログピンA1として定義
int LED = 9; //LEDをデジタルポート9として定義
int val = 0; //デジタル変数を定義

void setup() 
{
    pinMode(flame, INPUT); //炎を入力ソースとして定義
    pinMode(LED, OUTPUT); //LEDを出力モードに設定
    Serial.begin(9600); //ボーレートを9600に設定
}

void loop() 
{
    val = analogRead(flame); //炎センサーのアナログ値を読み取る
    Serial.println(val);//アナログ値を出力して印刷する
    if (val < 300)  //アナログ値が300未満の場合、LEDがオンになる
    {
    	digitalWrite(LED, HIGH); //LEDをオンにする
    } 
    else 
    {
    	digitalWrite(LED, LOW); //LEDをオフにする
    }
    delay(50); //50msの遅延
}

(8)テスト結果:

ライターの炎を左の炎センサーに近づけることができます。炎センサーが炎を検出すると、LEDモジュールがアラームとして点灯します。

注意: 火災を防ぐため、可燃物から遠ざけてください。子供は大人の監督のもとで実験を行ってください。安全を確認できない場合は、実験を中止してください。炎センサーは耐火性ではありません。直接炎で燃やさないでください。