見出し画像

KKHMF PCF8591 AD/DA転換モジュールを購入したので動作確認

前回、中断した記事

arduino 向け土壌センサーモジュールを使おうとした。しかし、A/D変換が出来ないことに気付き断念。

仕方ないので、AmazonでPCF8591(一番安いやつ)を注文することにした。

先日、無事に届いたので、実際に動作させてみる。

PCF8591の使い方

前回、下調べをしたところ既に使用したことのある方がいて、その人のサイトに詳細が書かれていた。

10kΩ抵抗(R8・R9)を取外し

Raspberry PiではI²Cの外部回路による抵抗不要らしいので、半田をつかい外していく。

裏側の抵抗R8・R9

土壌センサーを一時的な土に突き刺して、電源を入れてみた。

赤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で遠隔から情報を取得できるようにしてみることにしよう。




この記事が気に入ったらサポートをしてみませんか?