少し寄り道して、アルコールセンサを使ってみようと思う。
秋月のページでアルコールセンサ単体MQ-3Bを衝動買いしたが、モジュール化されたものを使っている参考サイトセンサー(MQ-3)を使ってラズパイからアルコールを計測してみたとは違い単体のセンサである。よって、試行錯誤が予想される。
早速つまづく。MQ-3Bのピンはブレッドボードに刺さらなかった。
MQガスセンサ用ピッチ変換キットが必要だった。さらにいうとMQ-3Bのデータシートから、4.7kΩの抵抗も必要だった。買いなおし。。きちんとデータシートを読んだり、設計作業をしないで行き当たりばったりだとこうなってしまう。
センサで検知した値はアナログ電圧というかたちで出力されるので、それをラズパイに取り込むにはADコンバータが必要。ADコンバータは参考サイトにあるMCP3208のまま使えるか不明だが、このままいってみよう。
余談だが、秋月電子のサイトにMCP3208は2種類売っている。調べたところ、下記のような違いだった。これも間違えると実装できないので注意。
- MCP3208-CI/P・・・PDIP(Plastic Dual In-line Package)。プラスチック筐体。ムカデのような形で、ブレッドボードやユニバーサル基板ではこちらを選択。
- MCP3208T-BI/SL・・・SMT(Surface Mount Technology:表面実装)。
他にもデータシートを見ると、温湿度により出力電圧が変わったり、長期間通電していないと長時間のエージングが必要だったり、なかなか扱いが難しそう。まあ、ホビーユースだから絶対値はいいかげんでもいいか。
もっと予習を進めると、
- ADコンバータMCP3208のDout出力(ラズパイに対してデジタル信号を出力する端子)はVdd入力(MCP3208を駆動する電源入力)と同じ電圧
- ラズパイのGPIO入力端子は最大3.3Vまで対応
- MCP3208は0V~Vref端子電圧までをはかれる(厳密には0Vではなさそうだが)
- Vref電圧の精度がとても重要。Vref端子に与える電圧がブレると、測定結果もブレる
- MQ-3Bは最大5V出力
ということがわかる。特に1番目と2番目と5番目をあわせると、そのままではうまくいかないように見える。つまり、MQ-3Bの5V出力アナログ電圧を測定するには、MCP3208のVrefを5Vにしなければいけない。そのためにはVddを5Vにしなければいけない。すると、Doutが5Vになってしまう。すると、ラズパイの入力制限電圧を超えてしまう。
もう少し調べると、分圧するという手法があるようだ。つまりMCP3208からのデジタル信号が5V出力であっても、ラズパイのGPIOに入れるときには3.3Vになるように分圧する。
参考にしたサイト
Raspberry PiでADコンバータ(MCP3208)を使う
ラズパイでアナログ電圧を扱う (3) 使用するパーツ
ラズパイでアナログ電圧を扱う (2) MCP3208②
これらのサイトを見ると、12ビットADコンバータの分解能を生かすにはVrefを安定化させる仕組みをきちんと作らないといけないことがわかるが、今回は気にしないこととする。
この文書も抵抗の具体値など参考になった。
A-Dコンバータとアナログ入力の インターフェース
次回、実装。