実装編。
秋葉原で不足パーツを買ってきて、まずははんだづけの練習。
そして本番。MQ-3Bセンサを変換基盤へはんだづけ。2ピン目からこつをつかんでうまくできた。
そしてMCP3208をアダプタを介してブレッドボードにさそうとしたが、なんとささらない。というか、刺さってもブレッドボードのバネの力で押し戻される。結局MCP3208をブレッドボードに直差しにすることにしたが、アダプタとの分離が非常につらかった。アダプタは、上のチップを頻繁に差し替える場合などに有効なのだろうが、ブレッドボードというよりはユニバーサル基板で使用するのかな。
こういうことは各サイトに書いていないので、失敗して覚えるしかないが、一方で買うまえにどう見分ければよいのやら。
今回は今までで一番手づまりが発生した。
まず、回路をくみ上げてみてから電源投入の前に+とーのラインの抵抗をはかると、40Ωと低い。どこかショートしているのか?と思って調べたが、結局のところアルコールセンサのヒータ抵抗が出ているだけだった。しかし、データシートの抵抗値よりはかなり高い理由が、よくわからなかった。
次に、抵抗2個を使って5Vを3.3Vと1.7Vに分圧したつもりだが、0.8Vと4V超に分圧されている。買った抵抗は間違っていないはずだが。。どこで誤差が生じているのか、これも謎。Doutから、GPIOの耐力以上の電圧が出てラズパイが壊れても怖いので、Vddには5Vではなく、3.3Vを入れるよう暫定的に変更。これにより、アルコールセンサの上限値までは測定できなくなる。
次に、サンプルプログラムで0出力されてしまう。アルコールセンサを完全分離し、MCP3208のch0に3.3Vを入れてみるが反応なし。ということは、まずいのはMCP3208の配線か、プログラムということになる。
→結局配線ミスだった。SPI通信で使用するCLKとMISOの接続が互い違いになっていた。プログラムのデバックは慣れているんだが、物理配線のデバッグに相当する作業はどうやれば効率よくできるんだろうか。
また、配線を入れ替えている最中にラズパイ強制再起動発生。そしてMCP3208の表面がかなり熱くなっていた。きっと、まずいところをショートしてしまって、発熱してしまったんだろう。危ない危ない。