Arduinoと戯れる!

Arduino 入門 Lesson 56 【MQ-3 アルコールセンサ その3】

arduino-lesson56-00Arduino入門編
スポンサーリンク
子供と一緒に始める マイコンプログラム
Arduino 入門
Lesson 56
【MQ-3 アルコールセンサ その3】

こにんちは、管理人のomoroyaです。

センサーの使い方の基本を学習する入門編。

 

世の中には、まだまだ色々なセンサーがあります。

これからも、色々なセンサーで遊んでいきます。

 

本記事はLesson 56 【MQ-3 アルコールセンサ その3】です。

Lesson 54、でMQ-3、アルコールセンサの基本制御を理解。

Lesson 55でMQ-3とプラス電子部品で遊びました。

本Lessonでは、MQ-3センサのアナログ出力を利用して遊びたいと思います。
※前回までは、デジタル出力を利用

アルコールを検知したら電圧閾値(検出量)に応じてLEDを光らせるといった具合です。

簡易的な、アルコール検出インジケータを作るイメージ。

アナログ出力の値をアナログ入力で読み取りAD変換しスケッチにて場合分けするだけです。

Lesson 54Lesson 55にてA0を利用してすでに値の読み取りは実施済み。

あとは、場合分けするスケッチとLEDを組み合わせるだけです。

それほど難しい内容ではありません。

 

  • MQ-2:LPG・煙センサ
  • MQ-3:アルコールセンサ ← 本Lessonで使用
  • MQ-4:メタンガスセンサ
  • MQ-5:LPG液化石油ガスセンサ(天然ガス、都市ガス)
  • MQ-6:LPG液化石油ガスセンサ(プロパン、ブタン)
  • MQ-7:一酸化炭素ガスセンサ
  • MQ-8:水素ガスセンサ
  • MQ-9:ガスセンサ(一酸化炭素、石炭ガス、液化天然ガス)
  • MQ-135:空気質センサ(ベンゼン、アルコール、煙)

※あっていると思いますが・・・間違えていたらご了承ください。

 

本Lessonで使用する「MQ-3ガスセンサ」は以下が同等品となります。
※prime対応品(prime対応でなければ他にもあり)

Amazonでの単品購入は割高です。

単品購入の場合は、国内の電子部品専門店をお探しください。

ただし、送料等をかんがえると単品購入は微妙なところ。

 

そのためセンサーキットをおすすめ。
※センサーキット prime対応品 出荷元:Amazon

 

Arduino入門編の解説にて使用しているArduinoは互換品です。

互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

正規品の本体単品がほしい方はこちらとなります。

 

スポンサーリンク

はじめに

本Lessonはアルコールを検知量に応じてLEDを光らせます。

使用する電子部品は、MQ-3センサとLED。

本Lesson開始前に「アナログ入力」に関して下記Lessonを読んでおくとわかりやすいです。

Arduino 入門 番外編 05 【アナログ入力 とは】
今回は、「Arduino 入門 番外編 05 アナログ入力 とは」です。arduino 入門 番外編はarduinoの基本的なことを書いていく方向性にする予定です。今回は、arduinoのアナログ入力について解説していきます。…

 

Lesson 56 目標

本Lessonの目標は以下です。

1.MQ-3センサの使い方を復習
2.MQ-3センサを動かしLEDを光らせるスケッチを描く
3.MQ-3でアルコール量を検出してLEDの光る数を変えて遊ぶ

いつものように、遊ぶことが重要です。

 

MQ-3センサは、これまでのLM393を使用したセンサモジュールと考え方は同じ。

そのため、簡単な測定であればスケッチもそれほど難しくありません。

ただし、動作の詳細を理解するためには多少の電子回路の知識が必要・・・。

回路がわからなくても遊べる、使える、作れるのがArduinoの良いところ。

 

準備

ではLessonの準備に取り掛かりましょう。

部品は「MQ-3センサモジュール」「LED」「抵抗」を使用。

ただし、動作の見た目を分かり易くするために自作のLチカも使います。

 

必要なもの

※ブレッドボードはセンサとUNOを直接つなぐ場合不要です。
※ジャンパワイヤーは「M-M」「M-F」を必要に応じて使い分けてください。

 

発光ダイオードは、有色、無色タイプから好みで選択。
※ダイオードセット prime対応品 出荷元:Amazon

 

抵抗、Jumper wireは今後も頻繁に利用します。

 

Jumper wireはできれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。

短めが使いやすい場合も。

 

使用部品説明

MQ-3センサモジュール」「LED」について説明していきます。

ここはLesson 54Lesson 03にも記載があります。

必要ない方は飛ばしましょう!

 

MQ-3センサモジュール(アルコール検知) 実物写真

下の写真が「MQ-3センサモジュール」の実物写真です。

本Lessonで使用するものは、回路が基板実装されたもの。

MQ-3センサ」「LM393」「チップ抵抗」「チップコンデンサ」「LED」で構成されています。

左側:MQ-3センサ搭載の表面

右側:「LM393」「チップ抵抗」「チップコンデンサ」「LED」実装面

arduino-lesson54-01

MQ-3センサモジュール(アルコール検知) 回路図

MQ-3センサモジュールの回路図を示します。

MQ-3センサ、電圧コンパレータIC(LM393)が実装されたモジュールの回路図となります。

 

ここは、電子回路の知識が少し必要になるため興味がない場合はすっ飛ばしてください。

回路図はテスタを使って部品の接続を1つ1つ確認したのでおそらく合っているはず・・・。

  • VCC  Arduinoの5Vに接続
  • GND ArduinoのGNDに接続
  • D0  Arduinoのデジタル入力ピンへ接続(使わない場合接続不要)
  • A0  Arduinoのアナログ入力ピンへ接続(使わない場合接続不要)
補足
アルコールを検知することでセンサ内の抵抗値がかわり、コンパレータの閾値をこえると検出する仕組みと考えられます。

本LessonではD0、A0を以下の用途に使います。

  • D0:Lチカ(外付けLEDの点灯)
  • A0:コンパレータ入力のレベル確認

arduino-lesson54-02

 

MQ-3センサモジュール(アルコール検知) 仕様

MQ-3センサのデータシートは検索すれば閲覧可能です。

データシート(外部サイト)

■仕様抜粋

Pin No.Pin NameFunction
1VCC5V
2検出レンジ25 ~ 500ppm(ものによって異なる)
3余熱48時間以上(センサを使用するには48時間以上の温める必要あり)
精度をもとめなければ、そこまでしなくて多分OKです・・・

 

詳細な特性を知りたい場合はMQ-3、LM393の仕様をそれぞれ個別に確認してください。

MQ-3」「LM393」で検索するとそれぞれ調べることができます。

 

本Lessonは遊び、学習を想定しています。

Arduinoの仕様範囲内で使用していれば問題になることもありません。

遊び、学習以外での使用用途をお考えの場合はデータシートを必ず確認しましょう。

 

センサーキットがおすすめ。
※センサーキット prime対応品 出荷元:Amazon

 

LED

LEDは何でもよいのですが、一般的な5mmサイズが扱いやすいと考えます。

色は好きなものをお使いください。

LEDは向きがあります。

下の図に示すように長い方が「+」、短い方が「-」となります。

向きを間違えて接続すると点灯しません。

 

LEDは大電流を流すと、焼き切れてしまいます。
直接電源に接続することはしないようにしましょう。
必ず、抵抗などで電流を制限して使いましょう。

Arduino_LED

 

手持ちがないかたはセット品がお得です。

有色、無色タイプから好みで選択。
※ダイオードセット prime対応品 出荷元:Amazon

発光ダイオード 5mm LED ダイオード 高輝度 円型頭部 5色ダイオードセット 白赤緑青黄 5色 各40個発光ダイオード 5mm LED ダイオード 透明 高輝度 円型頭部 10色ダイオードセット 白赤緑青黄 10色 各10個

 

実践 回路作成とコード作成

最初に回路図を確認してください。

次に、回路図に合わせて部品を接続します。

最後にコードを書いて、「MQ-3センサ」を動かしていきましょう。

 

Arduinoのピン配置を確認したい方は番外編02を参照してください。

 

回路図

MQ-3」「LED」を接続していきます。

Arduinoは

デジタル入力として10、デジタル出力として2、3、4、5、13。
※13はMQ-3のデジタル出力を利用して検出の有無に使用

アナログ入力としてA0を使用。

あとは、5VGNDのみ。

 

回路図がこちら。
※LEDが不要の場合は、13番ピンには何も接続する必要はありません。

arduino-lesson56-01

こちらがブレッドボード図。

arduino-lesson56-02

 

回路図は「fritzing」を利用しています。

「fritzing」の使い方は下記を参照してください。

 

接続

下図に示すように、用意した部品を使用して接続しましょう。

部品は「MQ-3センサモジュール」、LED、抵抗のみとなります。
※センサが実装されたモジュール

LEDの数があるので、少し面倒ですが接続は簡単です。

 

毎回ブレッドボードにLEDをセットするのも面倒なので「Lチカ」自作しました。

おすすめです。

 

使用するポートは、デジタル入力10、デジタル出力2、3、4、5、13、アナログ入力A0、5V、GND。

穴に挿入しづらいときは、ラジオペンチなどを使用してください。

arduino-lesson56-03

 

コードの書き込み

接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。

コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。

 

コマンド説明

本Lessonでは、特に新しいコマンドはありません。

 

サンプルコード

Lesson 54のスケッチに「LEDと抵抗」を追加しただけのスケッチとなります。

LEDを組み合わせるだけで、なんとなく検出量をはかれた気分になり、なおかつ作った感を味わえます。

A0の出力は1.3V~4.0V程度でした。
※検出電圧のMin、Maxを調べてスケッチの閾値は変更ください

それを5段階に分けます。

段階(閾値)アナログ入力のAD変換後の閾値[V]LEDの点灯数[個]
12.0 以下0
22.0 ~2.51
32.5 ~ 3.02
43.0 ~3.53
53.5 以上4

 

本スケッチでは、「DDRD」「PORTD」を使用して、スケッチの簡略化をしています。

//Lesson 56 MQ-3センサ(アルコール検出センサモジュール)とLEDを使ったインジケータ
//アルコールなどの燃焼性ガスを検知したらインジケータのようにLEDを点灯する
//https://omoroya.com/

const int AQ0 = A0;   //MQ-3センサモジュールA0の出力先
const int DQ0 = 10;   //MQ-3センサモジュールD0の出力先
const int led1 = 5;   //インジケータLED用のPIN
const int led2 = 4;   //インジケータLED用のPIN
const int led3 = 3;   //インジケータLED用のPIN
const int led4 = 2;   //インジケータLED用のPIN
const int led = 13;   //MQ-3センサの状態をモニタするためのLED <- 面実装LEDだけでOK不要
  
void setup (){
  pinMode (DQ0, INPUT);     //10番ピンをINPUT指定
  DDRD = DDRD | B00111100;  //Output指定をまとめて指定(2,3,4,5番ピンをOutput指定)
  PORTD = B00000000;        //出力状態をまとめて指定。デジタルピン0~7をLOW
  pinMode (led, OUTPUT);    //13番ピンをOUTPUT指定<-なくてもOK
       
  Serial.begin (9600);   //シリアル通信のデータ転送レートを9600bpsで指定
}
  
void loop (){
  float A0_out;
  int D0_out;

  //MQ-3センサモジュールA0の値を読み取り電圧値を計算
  A0_out = (float)analogRead(AQ0) / 1024.0f * 5.0f;
  //MQ-3センサモジュールD0の読み取り
  D0_out = digitalRead(DQ0);

  //シリアルモニタへの表示
  Serial.println (D0_out);  
  Serial.print ("A0 voltage value:");
  Serial.print (A0_out, 4);
  Serial.println ("V, ");
  
  if(A0_out < 2.0){
    PORTD = B00000000; //デジタルピン7~1をLOW
  }else if(A0_out >= 2.0 && A0_out <2.5){
    PORTD = B00100000; //5番ピンに"HIGH"を出力 LED ON
  }else if(A0_out >= 2.5 && A0_out <3.0){
    PORTD = B00110000; //5,4番ピンに"HIGH"を出力 LED ON
  }else if(A0_out >= 3.0 && A0_out <3.5){
   PORTD = B00111000; //5,4,3番ピンに"HIGH"を出力 LED ON
  }else if(A0_out >= 3.5){
    PORTD = B00111100; //5,4,3,2番ピンに"HIGH"を出力 LED ON
  }
}

 

動作確認 閾値に応じてLED点灯

では、さっそく動作を確認していきます。

布などにアルコールを湿らせてMQ-3センサに近づけてください。

  • アルコール検知なし → LED OFF
  • アルコール検知あり → 検出量に応じてLEDが複数個ON

 

■アルコール検知なし(シリアルモニタのA0出力:~2.0V)

LED:0個(すべてOFF)

arduino-lesson56-04

 

■アルコール検知なし(シリアルモニタのA0出力:2.0V~2.5V以下)

LED:1個ON

arduino-lesson56-05

 

 

■アルコール検知なし(シリアルモニタのA0出力:2.5V~3.0V以下)

LED:2個ON

arduino-lesson56-06

 

■アルコール検知なし(シリアルモニタのA0出力:3.0V~3.5V以下)

LED:3個ON

arduino-lesson56-07

 

■アルコール検知なし(シリアルモニタのA0の出力は3.5V~)

LED:4個ON(すべてON)

arduino-lesson56-08

 

検出閾値に応じてLEDが複数個点灯します。!
簡易的な、アルコール検出インジケータの完成です。

 

まとめ

本Lessonは、以下を目標としました。

1.MQ-3センサの使い方を復習
2.MQ-3センサを動かしLEDを光らせるスケッチを描く
3.MQ-3でアルコール量を検出してLEDの光る数を変えて遊ぶ

 

アナログ入力とLEDを組み合わせることによって、インジケータのようにして遊ぶことが可能です。

MQ-3センサを組み合わせることで、アルコール検出インジケータの完成です。

スケッチもLesson 54にif分を追加するだけでできてしまいます。

 

Lesson 56 【MQ-3 アルコールセンサ その3】 はここまで。

簡易的な、アルコール検出インジケータを作ってみました。

ぜひ、遊んでみてください。

疑問点、質問などありましたら気軽にコメントください。

 

次回、Lesson 57は要望のあった【Membrane Switch Module】を解説します。

 

最後に

疑問点、質問などありましたら気軽にコメントください。

この電子部品の解説をしてほしい!などなどなんでもOKです。

リンク切れ、間違いなどあればコメントいただけると助かります。

 

Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。

 

Arduino入門編で使用しているUNOはAmazonにて購入可能です。

互換品とは言え、Arduinoはオープンソース。

複製して販売するのもライセンス的に問題なし。

 

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

学習用、遊び用、お試し用には安価な互換品がおすすめです。

 

 

上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。

 

Amazonでお得に買う方法

Amazonでお得に購入するなら、Amazonギフト券がおすすめです。

現金でチャージするたびに、チャージ額に応じたポイントが付与されます。

最大2.5%!!!(Amazonプライム会員ならさらにお得)

チャージ額(一回分)一般プライム会員
5,000円~19,999円0.5%1.0%
2,0000円~39,999円1.0%1.5%
40,000円~89,999円1.5%2.0%
90,000円~2.0%2.5%

さらに、初回チャージで2000ポイントもらえるキャンペーンも実施中!
※いつもは1000ポイント、今なら2000ポイントです!

\Amazonギフト券 2000ポイントキャンペーン/
Amazonチャージ 初回購入で2000ポイントキャンペーン

 

補足情報
コンビニ・ATM・ネットバンクが対象
購入は1円単位で可能

コメント

タイトルとURLをコピーしました