Raspberry PiでAD変換

Raspberry Pi自体にはAD変換の機能はないが、AD変換ICを接続することによってアナログ電圧を測定することができる。今回は、Raspberry PiのSPIインターフェースを介してAD変換ICと接続した。更に、AD変換ICに温度センサーICを接続して簡易な温度計測をしてみた。

AD変換ICMCP3204-B12ビット、4チャネル、SPI接続
温度センサーICLM35DZ3端子、温度係数10mV/℃、測定範囲0-100℃、精度±1℃

AD変換の基準電圧はRaspberry Piの3.3Vを使用した。従って、分解能は3300 / 4096 = 0.8mv となる。温度センサーICは、その仕様から0-1.0Vの範囲で1mVの分解能で測定できれば十分なので、オペアンプ等で増幅せずに直接AD変換ICに接続した。また、テストのために、別のチャネルを使って可変抵抗による分圧を測定した。

回路図

WebIOPiをダウンロードして展開する

  1. $ wget http://webiopi.googlecode.com/files/WebIOPi-0.6.0.tar.gz
  2. $ tar xvzf WebIOPi-0.6.0.tar.gz

展開されたディレクトリでsetup.shを実行するとインストールされる。

  1. $ cd WebIOPi-0.6.0/
  2. $ sudo ./setup.sh

configファイルに接続したAD変換ICを登録する

  1. $ sudo nano /etc/webiopi/config
  2.  :
  3. [DEVICES]
  4. adc = MCP3204
  5.  :

ブート時に自動的にWebIOPiのWebサーバが起動するよう設定したうえで再起動する。

  1. $ sudo update-rc.d webiopi defaults
  2. $ sudo reboot

WebIOPiのWebサーバのポートはデフォルトで8000なのでPCなどのブラウザからは次のURLでデフォルトのトップページが表示できる。なお、ログインのid/passwordは、標準でwebiopi/raspberryであるが、必要に応じてwebiopi-passwdコマンドで変更できる。

メイン画面: http:// Raspberry Piのipアドレス:8000/

GPIO Header画面: GPIOコネクタの設定と状態

Device Monitor画面: configファイルに登録したAD変換ICの各チャネルの生電圧が自動更新表示される。CH0の可変抵抗をまわして、0Vから3.3Vの間が測定されることが確認できた。CH1は室温とほぼ同じ23℃に相当する電圧0.23Vを示した。

2013年04月02日