Raspberry piでアナログ入力を取り扱おうという話の続きです。
前2回は、デバイスドライバを使用しませんでしたが、標準でMCP3001, MCP3002, MCP3004, MCP3008, MCP3201, MCP3202, MCP3204, MCP3208 ,MCP330用のデバイスドライバが含まれています。デバイスドライバを組み込めばファイルの読み書きと同じようにAD変換の結果を取り込むことができます。(変換結果は10bitとなります。)
設定
/boot/config.txt ファイルの最後に次の1行を追加します。
$ sudo mousepad /boot/config.txt
dtoverlay=mcp3008:spi0-0-present,spi0-0-speed=500000
spi0-0-present: 使用するポートとCEの端子を指定します。
spi0-0-speed=500000: SPIの転送速度を指定します。
使用法
pi@raspberrypi:~ $ cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw 1023 pi@raspberrypi:~ $ cat /sys/bus/iio/devices/iio\:device0/in_voltage0_raw 298 pi@raspberrypi:~ $ cat /sys/bus/iio/devices/iio\:device0/in_voltage1_raw 87 pi@raspberrypi:~ $ cat /sys/bus/iio/devices/iio\:device0/in_voltage2_raw 28 pi@raspberrypi:~ $ cat /sys/bus/iio/devices/iio\:device0/in_voltage3_raw 4 pi@raspberrypi:~ $ cat /sys/bus/iio/devices/iio\:device0/in_voltage4_raw 1 pi@raspberrypi:~ $ cat /sys/bus/iio/devices/iio\:device0/in_voltage5_raw 1023 pi@raspberrypi:~ $ cat /sys/bus/iio/devices/iio\:device0/in_voltage6_raw 0 pi@raspberrypi:~ $ cat /sys/bus/iio/devices/iio\:device0/in_voltage7_raw 35 pi@raspberrypi:~ $
ファイル"/sys/bus/iio/devices/iio:device0/in_voltage(ポート)_raw"の内容がAD変換の結果をASCIIコードにしたものになっています。
参考
Using MCP3008 ADCs with Raspberry Pis
※コメント投稿者のブログIDはブログ作成者のみに通知されます