アルコールセンサ(MQ-3)完全ガイド:ピン配列、Arduino接続、呼気アルコール検知の仕組み
飲酒運転は世界中で重大な犯罪とされており、血中アルコール濃度の測定は警察官の重要な業務です。本記事では、アルコールセンサ(MQ-3)を用いてアルコール濃度を検知し、Arduinoなどのマイコンでデバイスを構築する方法を詳しく解説します。
アルコールセンサ(MQ-3)とは
MQ-3センサは、エタノールガスの濃度を測定し、アナログ出力として結果を出力する電子デバイスです。MQシリーズの代表的なアルコールセンサで、酸化金属半導体(MOS)を採用し、5V DCで動作、25〜500 ppmのアルコール濃度を検知可能です。
MQ-3センサモジュールのピン配列
MQ-3センサ本体のピン説明
- Aピン:電源電圧に接続(2本とも同一)
- Bピン:1本はGND、もう1本は信号出力
- Hピン(ヒータ):1本は電源(VCC)、もう1本はGND
※AピンとBピンは互換性があるため、入れ替えても動作します。
主な特徴・仕様
特長
- 内部に2層のメッシュ構造を持ち、ヒータ部品を爆発から保護(アルコールは可燃性のため)
- チューブラ検知素子に酸化アルミニウムセラミックと二酸化スズ(SnO₂)コーティングを採用、アルコールに高感度
- 高アルコール感度、低コスト、低消費電力スタンバイモード搭載
- 多くのマイコン(Arduino、ESP32、STM32等)と互換性あり
アルコール検知の原理
クリーンな空気中では、SnO₂半導体層が高温で加熱されると酸素吸着が起こり、酸素分子がSnO₂の電子を引き寄せます。これによりSnO₂表面下に電子欠乏層が形成され、高抵抗状態で電流が流れにくくなります。
一方、人の呼気中にアルコールが存在すると、吸着酸素の表面密度が低下し、ポテンシャル障壁が減少。電子が二酸化スズ内に押し出され、電流がセンサを流れるようになります。この電流変化を検知することでアルコール濃度を測定します。
濃度単位にはppm(parts-per-million)を使用。500 ppmとは、ガス100万分子中にアルコール分子が500個存在することを意味します。
主な用途
- 飲酒検知器(飲酒運転取締り)
- 産業用・家庭用エタノールガス警報器
- バックグラウンドセンシングデバイス
アナログ出力によるアルコール濃度測定(Arduino連携)
配線方法
センサのVCCをArduino 5Vに、GNDをGNDに、AO(アナログ出力)をArduinoのアナログピンA0に接続します。
キャリブレーション(校正)
センサ値をパーセントや濃度レベルに対応付ける作業です。飲酒前後の呼気をセンサに吹きかけたり、飲酒しない場合はイソプロピルアルコールやハンドサニタイザーの蒸気を当ててテストします。MQ-3はヒータ駆動型のため、正確な結果を得るには20秒以上ウォームアップが必要です。
完成プログラムの判定閾値例
- シラフ(Sober):< 120
- 飲酒・基準値内(Legal limit):120〜400
- 酔っ払い(Drunk):> 400
※閾値はご自身のキャリブレーション結果に合わせて調整してください。
デジタル出力によるアルコール検知
内蔵ポテンショメータで閾値を設定し、それを超えるとステータスLEDが点灯して「High」出力になります。
- 配線:VCC→5V、DO(デジタル出力)→Arduinoデジタルピン、GND共通。アナログ出力は未接続でOK。
- キャリブレーション:ポテンショメータを回して閾値設定。アルコール蒸気を吹きかけ、LEDが点灯する位置で時計回りに調整、消灯位置で反時計回りに微調整。
- Arduinoコード:
Arduinoで本格的なアルコール濃度計を作る(RS/R0法)
MQ-3はアルコール以外のガスも検知可能です。より正確な濃度測定には、クリーン空気中での基準抵抗値(R0)と、対象ガス存在時の抵抗値(RS)の比を用います。
- RS/R0の算出
RS:特定濃度ガス存在時の抵抗値、R0:クリーン空気中の抵抗値
- Arduinoスケッチ(基本版)
- LCD表示付きブレーザースケッチ
まとめ
アルコールセンサ(MQ-3)のセットアップは難しくありません。本ガイドに従って仕組みを理解し、MQ-3のポテンシャルを最大限に引き出してください。長寿命化のため、腐食性ガス(アルカリ、シリコン蒸気)や凍結環境を避けて保管・使用してください。ご質問はお気軽にどうぞ。
産業技術
- Raspberry Piと湿度センサーで作る自動エアロポニックスシステム
- Arduino Portenta H7にMAX6675でサーモカップル温度センサーを接続する
- DHT11温湿度センサーで作る温度アラート – LEDとピエゾブザーで視覚/聴覚通知
- K30 CO2センサで室内空気質をリアルタイム監視する
- Arduinoでシンプルな障害物センサーを自作 – IR LEDとフォトダイオード入門
- DFRobot静電容量式指紋センサーをArduino/ESP8266で使う – 登録・認証・削除の完全ガイド
- Arduinoで高速・高精度RPM測定 – レーザーとIRセンサーによる新アルゴリズム
- コンパクトなArduinoレーダーシステム – HC-SR04超音波センサー & 1.8インチST7735ディスプレイ搭載
- DS18B20 1-Wire防水温度センサ徹底解説:ピン配列・仕様・Arduino活用・用途例
- Arduinoセンサー:種類、応用、実世界プロジェクト
- MQ135アルコールセンサー:回路、動作原理、応用