ラズパイでアナログ電圧を扱う (4) 動作確認

 前回、ハードウェアの用意ができました。テスタで確認作業をしたので、配線は正しいと思います。ここでは簡単なプログラムを書いて、A-DコンバータMCP3208が動作していることを確認します。

入力を用意

 基準電圧Vrefは2.5Vです。基準電圧ICのTL431にばらつきがあるので、2.4998Vだったりします。できれば、桁数の多いテスタで電圧を測っておきます。MCP3208の入力電圧範囲は0~Vrefです。
 実験用にアルカリ乾電池を1本用意します。約1.5V前後が計測できるはずです。チャネル0にプラスを、マイナス極をGNDにつなぎます。

短いプログラムで動作確認

 ラズパイのメニューAccessoriesからText Editorを選び、テキスト・エディタを立ち上げます。下記のプログラムをコピーし、piフォルダに、mcp3208b.pyの名前で保存します。

from gpiozero import MCP3208
Vref = 2.5
pot = MCP3208(channel=0)
print(str(pot.value * Vref) + "V")

 画面上の黒いアイコン、ターミナルをクリックして起動します。

 lsコマンドでファイルの一覧を表示します。

python mcp3208b.py

で実行します。1.6****Vのような表示が出たでしょうか。0.0Vなら配線のどこかが正しくありません。

実行環境

 2019年6月20日版をラズパイ3にインストールしました。full版をインストールしたので日本語環境も入りますが、最初に、Use US keyboardとUse English languageをチェックしたので、画面周りは英語です。

 メニューのPreferencesのRaspberry Pi ConfigurationでI2CとSPIをEnableに変更しますが、OKをクリックすると、すぐに有効になります。リブートは不要になりました。

gpiozeroライブラリ

 インストール済みのgpiozeroのバージョンは、pip3で表示できます。

 ドキュメントはこちらで読めます。A-Dコンバータは「15. API - SPI Devices」の項目に説明があります。