ラズベリーパイでセンサの測定値を取り込むためにAD変換のプログラムの勉強をしています。
以下が参考にしているプログラムです。
import spidev#SPI通信を使用するためのライブラリ
import time
spi = spidev.SpiDev() #SPI通信の設定
spi.open(0,0)
spi.max_speed_hz = 1000000
def readAdc(channel):#センサの測定値を変換する関数
adc = spi.xfer2([1,(8+channel)<<4,0])
data = ((adc[1]&3) << 8) + adc[2]
return data
if name == 'main': # 1ch は0, ..., 8chは 7 と書くこと.
ch = 0 #この場合は1chの信号をAD変換して値を表示
for t in range(0,100): #100回文値を表示する
data1 = readAdc(ch) #chの値を上記の関数で数値に変換
print(data1) #値の表示
time.sleep(0.5) #0.5秒に1回データを計測する.
以下の2点がただいま詰まっているところです。
・spi.xfer2()とはどういう意味なのか、また引数を3つとっているがそれぞれのどういう役割なのか
・8+channelとは何なのか、なぜ4bitシフトさせるのか
10bit 8ch ADコンバータ「MCP3008」を使用しています。
ご教授お願いいたします。

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/03 08:10
2019/04/03 15:28
2019/04/04 03:53
2019/04/04 16:22
2019/04/05 07:48