KKHMF PCF8591 AD/DA転換モジュールを購入したので動作確認
前回、中断した記事
arduino 向け土壌センサーモジュールを使おうとした。しかし、A/D変換が出来ないことに気付き断念。
仕方ないので、AmazonでPCF8591(一番安いやつ)を注文することにした。
先日、無事に届いたので、実際に動作させてみる。
PCF8591の使い方
前回、下調べをしたところ既に使用したことのある方がいて、その人のサイトに詳細が書かれていた。
10kΩ抵抗(R8・R9)を取外し
Raspberry PiではI²Cの外部回路による抵抗不要らしいので、半田をつかい外していく。
土壌センサーを一時的な土に突き刺して、電源を入れてみた。
赤LEDは土壌センサーモジュール。正常なのであれば緑にしてほしい。
緑LEDはA/D変換モジュール。光センサーのすぐ隣にLEDがあり、センサーの値が全く読めないとAmazonレビューにコメントがあった。
自分はA/D変換モジュールが使いたいだけなので、全く問題ない。
I²C アドレス確認
pi@yukari:~ $ i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
アドレスに 0x48 が見えたので、ちゃんと接続できている。
土壌センサー値取得
次は、土壌センサーモジュールが接続されているAIN2の値をリードしてみる。
pi@yukari:~ $ i2cset -y 1 0x48 0x02
pi@yukari:~ $ i2cget -y 1 0x48
0x8f
とりあえず、0x8Fという値が読めた。
もう少しサンプルがほしいので、以下3パターンで測定してみる。
・絶縁(乾燥状態):0xFF
・やや湿った土壌 :0x9F
・水道水 :0x6B
どうやら、0x8Fは古いデータが取得されていたらしい。
最初のデータは読み捨ててから、実測値を取得する必要があるようだ。
水道水に浸すと、土壌センサーモジュールのもう一方のLEDが点灯した。
点灯する基準がわからないけど、0x80あたりが閾値のような気がする。
次にやること
中華製のA/D変換モジュールでやや心配だったが、思っていたよりも簡単に土壌センサーモジュールを使うことができた。
次は、Bluetoothで遠隔から情報を取得できるようにしてみることにしよう。
この記事が気に入ったらサポートをしてみませんか?