質問: MCP3008(channel=0) print(str(pot.value * Vref) + "V") ``` 「0.001609555446995512V」と表示され、可変抵抗を回しても変化しません。 5ドル!ラズパイ・ゼロ(Raspberry pi Zero)でIoT (9) A-Dコンバータの利用6 MCP3002/MCP3008
回答: magurochanさん、 その1の方法ですが、MCP3008とMCP3208のデータシートをみたところ、形式が違うので、 その出力結果は、期待するものでないかもしれません。 MCP3008をもってないんですが、データシートからすると、以下のようなコードになりそうですが、どうでしょうか? ``` ... # # 1バイト目 | 2バイト目 | 3バイト目 # 012345678 |0 1 2 3 4 5 6 7 |0 1 2 3 4 5 6 7 # D_out B9 B8 B7 B6 B5 B4 B3 B2 B1 B0 # D_in 1 1 D2 D1 D0 0 0 0 0 # | | | | | # | | 読み出しチャネルの指定 # | 1: シングルエンド # [スタートビット] # cmnd = (0b00001000 + adch) << 4 c, raw = pi.spi_xfer(hndl, [ 1, cmnd, 0 ]) data = ((raw[1] << 8) + raw[2]) & 0x3FF ... ```