質問: reading * 3.3 / 1024 print("Reading=%d\tVoltage=%f" % (reading, voltage)) time.sleep(1) ``` このコードはGithubリンクからコピペしたものです。 **このコードのどこに問題があるのでしょうか。あと、analog_readの関数で何を行っているのかが分からないのでそちらも教えていただきたいです。 また、このような通信を理解する助けとなる本があれば教えていただければ幸いです** **補足:** 電子機器や接続の問題も考えましたが、機器は全て新品で配線も何度も確認したので考えづらいです。 上記画像と私のRaspberry Pi3 ModelB+はGPIOピン配置が異なりますが、そこは合わせて配置しています。 * MCP3008データシート * 上記コードのGithubリンク * SpidevのGithub 追記 -- ![回路図](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/7223971ee69dddc10827b0e6796563a4.jpeg) ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/7ee17cd3d4dd89371180e6cb6ff90bfa.jpeg)
回答: まずは、きちんとした回路図を書きましょう。 そういうICを使う場合はいろんな留意事項がありますし、 見よう見まねで動かせるようなものではないです #ぱっとみーでも、電源、GNDラインがちゃんとつながっていないように見えます 少なくとも、テスターにオシロを用意して、そのICの各ピンの電圧、波形を測っていき、データシートに記載されているピン機能に見合った電圧、信号になっているかをチェックしましょう オシロが用意できないと言うなら、そもそも無理な話なので諦めよう、としかいいようがないですが。