Arduino 入門
Lesson 42
【火炎センサ・赤外線センサ】
こにんちは、管理人のomoroyaです。
センサーの使い方の基本を学習する入門編。
世の中には、まだまだ色々なセンサーがあります。
これからも、色々なセンサーで遊んでいきます。
Lesson 42は 【火炎センサ・赤外線 センサ】。
火炎(火焔)センサといっても、火を直接検知するわけではなく赤外線を受信することで火炎を検知するセンサです。
そのため、火炎センサという名前ではありますが、実際は赤外線センサです。
「赤外線センサ」「IRセンサ」「火炎センサ」と呼ばれています。
特に760〜1100nm(近赤外線)に高い感度を持ちます。
本Lessonで使用するセンサは、火炎を検知すると出力ピンにデジタルとアナログ信号が出力されるモジュールです。
ちなみに、Lesson 15でも「赤外線センサモジュール」を扱っています。
また、Lesson 30では「赤外線センサモジュール」を使って、テレビのリモコンで「ステッピングモーター」を動かしています。
管理人、お気にいりのLessonです!
本Lessonで使用する火炎センサ(赤外線センサ)は以下が同等品となります。
基板に実装されているモジュールとなります。
Arduino入門編の解説にて使用しているArduinoは互換品です。
互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。
そのため互換品の品質も悪くなく、それでいて値段は安いです。
正規品本体の値段程度で豊富な部品が多数ついています。
正規品(Arduino UNO R3)の本体単品がほしい方はこちらとなります。
Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)
はじめに
まず、赤外線とはなんぞやということですがWikipediaの説明を記載しておきます。
赤外線(せきがいせん)は、可視光線の赤色より波長が長く(周波数が低い)、電波より波長の短い電磁波のことである。ヒトの目では見ることができない光である。英語では infrared といい、「赤より下にある」「赤より低い」を意味する(infra は「下」を意味する接頭辞)。分光学などの分野ではIRとも略称される。対義語に、「紫より上にある」「紫より高い」を意味する紫外線(英:ultraviolet)がある。
赤外線センサ(せきがいせんセンサ)は、赤外領域の光(赤外線)を受光し電気信号に変換して、必要な情報を取り出して応用する技術、またその技術を利用した機器。人間の視覚を刺激しないで物を見られる、対象物の温度を遠くから非接触で瞬時に測定できるなどの特徴を持つ。
本Lessonで使用する「火炎センサ・赤外線センサ」、動作はそんなに難しくありません。
760〜1100nmの波長を感知すると、センサモジュールのD0にHigh、A0にアナログ値が出力されます。
Lesson 42 目標
本Lessonの目標は以下です。
2.炎を検知するスケッチを描く
3.火炎センサで遊ぶ
いつものように、遊ぶことが重要です。
今回のセンサも動かすのは簡単。
赤外線受信部の近くでライターなどの火をつけたり消したりすることで火炎の検知を確認することができます。
動作は単純なので、遊びなどに使うには十分なセンサです。
準備
ではLessonの準備に取り掛かります。
部品は「火炎センサ・赤外線センサ モジュール」のみ。
いつものように、自作したLチカも使います。
モジュールに実装されたLEDで確認できますが、せっかく作ったので・・・。
必要なもの
- USB接続用のPC(IDE統合環境がインストールされたPC)
→管理人が勝手に比較したBTOメーカーを紹介しています。 - UNO R3(以下UNO)、おすすめUNO互換品(ELEGOO)
- PCとUNOを接続するUSBケーブル
- ブレッドボード安価(大)、ブレッドボード安価(中)
※おすすめブレッドボード(大)、おすすめブレッドボード(中) - 火炎センサモジュール・IRセンサ
- 330Ω 1本
※330ΩはLEDを使用する場合必要 - M-M Jumper wire(UNOと部品をつなぐための配線)
- M-F Jumper wire(UNOと部品をつなぐための配線)
※ジャンパワイヤーは「M-M」「M-F」を必要に応じて使い分けてください。
Jumper wire、抵抗は今後も頻繁に利用します。
Jumper wireはできれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。
短めが使いやすい場合も。
抵抗も単品で揃えるよりはセットをおすすめします。
抵抗、LEDなどを個別でセット品を購入しても、そんなに使わない!
という方は、「電子工作基本部品セット」が使い勝手が良い。
使用部品説明
火炎センサ・赤外線センサ モジュールについて説明していきます。
火炎センサモジュールは、IR受信LED、低動作電圧低オフセット電圧コンパレータLM393、3296Wの半固定抵抗器、6個のチップ抵抗、2個のLEDから構成されています。
火炎センサ・赤外線センサ 実物写真
下の写真が火炎センサ・赤外線センサの実物写真です。
本Lessonで使用するものは、IR受信用のセンサが基板実装されたもの。
端子は上から下記となっています。
- A0 アナログ出力ピン
- G ArduinoのGNDに接続
- + Arduinoの5Vに接続
- D0 デジタル出力ピン
火炎センサ・赤外線センサ 回路図
火炎センサ・赤外線センサの回路図を示します。
回路図掲載予定・・・。
モジュール基板から読み取るため時間のあるときに・・・。
火炎センサ・赤外線センサ 仕様
仕様は以下となります。
- 動作電圧:3.3~5.5V
- 赤外線波長検出:760nm~1100nm
- センサー検出角度:60度
- モジュールサイズ:1.5cm × 3.6cm
Arduinoの仕様範囲内で使用していれば問題になることはありません。
実践 回路作成とコード作成
最初に回路図を確認してください。
次に、回路図に合わせて部品を接続します。
最後にコードを書いて、火炎センサ・赤外線センサを動かしていきましょう。
Arduinoのピン配置を確認したい方は番外編02を参照してください。
回路図
火炎センサ・赤外線センサが実装されたモジュールの端子を接続していきます。
Arduinoはデジタル入力は7、アナログ入力はA0を使用。
あとは、5VとGNDのみ。
デジタル出力の13には確認用のLEDをつけます。(自作したLチカ)
回路図がこちら。
※LEDが不要の場合は、13番ピンには何も接続する必要はありません。
こちらがブレッドボード図。
回路図は「fritzing」を利用しています。
「fritzing」の使い方は下記を参照してください。
接続
下図に示すように、用意した部品を使用して接続しましょう。
部品は「火炎センサ・赤外線センサ」、LED、抵抗のみとなります。
※センサが実装されたモジュール
部品は3個、接続は簡単です。
火炎センサ・赤外線センサと接続するジャンパーワイヤーはF-Mを使用してます。
そのため、Arduinoに面実装されているLEDで確認する場合はブレッドボードもいりません。
毎回ブレッドボードにLEDをセットするのも面倒なので「Lチカ」自作しました。
おすすめです。
使用するポートは、デジタル入力7、アナログ入力0、5V、GND。
穴に挿入しづらいときは、ラジオペンチなどを使用してください。
コードの書き込み
接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。
コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。
コマンド説明
本Lessonでは、特に新しいコマンドはありません。
サンプルコード
本Lessonのスケッチではデジタル出力として13を指定しています。
そのため、外付けのLEDがなくてもArduinoに面実装されているLEDが「点灯」「消灯」します。
面実装されたLEDで確認できるため外付けのLEDはなしでもかまいません。
//Lesson 42 火炎センサ・赤外線センサ モジュール(flame sensor module) //接触を検知するセンサ //https://omoroya.com/ const int led = 13; // LED点灯確認用 const int digitalPin = 7; // センサ D0出力接続先 const int analogPin = A0; // センサ A0出力接続先 void setup() { pinMode(led, OUTPUT); //13番ピンを出力指定 pinMode(digitalPin, INPUT); //7番ピンを入力指定 Serial.begin(9600); //シリアル通信のデータ転送レートを9600bpsで指定 } void loop() { int d_val; // digital readings float a_val; //analog readings // D0出力の制御 d_val = digitalRead(digitalPin); if(d_val == HIGH){ // D0出力がHIGH digitalWrite(led, HIGH); // 13番ピンHIGH出力(LチカON) } else if(d_val == LOW){ // D0出力がLOW digitalWrite(led, LOW); // 13番ピンLOW出力(LチカOFF) } // A0出力の制御 変化を確認しやすいようにa_valの値をそのまま出力 a_val = analogRead(analogPin); //A0データの読み込み //a_val = (float)analogRead(analogPin) / 1024.0f * 5.0f; //A0データを読み込み電圧に変換 Serial.println(a_val); // シリアルモニタに出力 delay(100); }
動作確認 LEDの「点灯」「消灯」
では、さっそく動作を確認していきます。
火炎センサ・赤外線センサに火を近づけてみてください。
ライター、チャッカマンが使いやすいかも。
管理人、手元にライターがなく、ロウソク使いました・・・。
- 火炎なし → LEDは消灯
- 火炎あり → LED点灯
■火炎がない状態
自作の「Lチカ」、モジュールのLEDが消灯。
■火炎がある状態
自作の「Lチカ」、モジュールのLEDが点灯。
今回のスケッチはシリアルモニタに出力していますので、「シリアルプロッタ」をぜひ見てみてください。
「ツール」 -> 「シリアルプロッタ」で開くことができます。
■シリアルプロッタのチャート
火炎を検出すると検出しているのがよくわかります。
チャッカマンなどで、火をつけたり消したりして「シリアルプロッタ」の動きを見てみてください。
まとめ
本Lessonは、以下を目標としました。
2.炎を検知するスケッチを描く
3.火炎センサで遊ぶ
火炎センサ・赤外線センサで火炎を検出することができました。
赤外線を検知しているわけですが、もし興味のあるかたは赤外線センサ(IRセンサ)について色々調べてみてください。
組み合わせることで色んな事ができる汎用性の高いセンサであることがわかります。
Lesson 42【火炎センサ・赤外線センサ】 はここまで。
色々工夫をすれば遊びに使えるセンサです。
ぜひ、遊んでみてください。
疑問点、質問などありましたら気軽にコメントください。
次回、Lesson 43は 【マイク・サウンド検知センサ その1】。
最後に
疑問点、質問などありましたら気軽にコメントください。
この電子部品の解説をしてほしい!などなどなんでもOKです。
リンク切れ、間違いなどあればコメントいただけると助かります。
Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。
Arduino入門編、Arduino入門編2で使用しているUNOはAmazonにて購入可能です。
Arduino入門編では互換品を使用。
Arduinoはオープンソース。
複製して販売するのもライセンス的に問題なし。
そのため互換品の品質も悪くなく、それでいて値段は安いです。
正規品本体の値段程度で豊富な部品が多数ついています。
学習用、遊び用、お試し用には安価な互換品がおすすめです。
ELEGOO UNO キット レベルアップ チュートリアル付 uno mega2560 r3 nanoと互換 Arduino用
上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。
Arduino入門編2では「Arduino UNO R4 Minima」「Arduino UNO R4 WIFI」にて遊ぶため今のところは正規品を使用。(まだ互換品が・・・ほぼない)
Amazonでお得に買う方法
Amazonでお得に購入するならAmazon Mastercard、Amazonギフト券がおすすめです。
時期により異なりますが、様々なキャンペーンを実施しています。
\Amazonギフト券/
Amazonギフトカード キャンペーン
\Amazon Mastercard お申込み/
Amazon Mastercard 申し込み
いずれの場合もプライム会員である方がお得!!
\Amazon Prime 30日間の無料会員を試す/
無料会員登録
コメント