工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

MCP3008 ADCでRaspberry Piにアナログセンサーを接続 - 配線、SPI設定、サンプルPythonコード

Raspberry Piでアナログ信号を読み取りたい?このガイドではMCP3008 ADCの配線、SPI有効化、必要ライブラリのインストール、基本的なPythonスクリプトでのセンサーデータ取得までを解説します。

ステップ1:MCP3008の配線

チップの半円形ノッチが図と同じ向きになるよう注意。MCP3004の場合もピン配置は同一ですが、アナログ入力が4チャネルのみです。

ステップ2:Raspberry PiでSPIを有効化

  1. ターミナルを開き実行:
    sudo raspi-config
  2. Advanced Options → SPIに進み有効化
  3. 再起動:
    sudo reboot
  4. 再起動後、SPIデバイスの存在確認:
    ls /dev/
    spidev0.0とspidev0.1が見えるはず
  5. 見えない場合はシステム更新:
    sudo apt-get update && sudo apt-get upgrade
    最新ファームウェアインストール:
    sudo wget https://goo.gl/1BOfJ -O /usr/bin/rpi-update
    sudo chmod +x /usr/bin/rpi-update
    sudo rpi-update
    sudo reboot

I²Cのブラックリスト解除(必要な場合)

I²Cがブラックリスト入りしていてSPIが動かないことがあります。ブラックリストファイルを開く:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

blacklist i2c-bcm2708を含む行を削除またはコメントアウトし、再起動。

ステップ3:Python SPIライブラリのインストール

  1. 前提パッケージインストール:
    sudo apt-get install python-dev git
  2. py-spidevリポジトリをクローン:
    git clone https://github.com/doceme/py-spidev
  3. ライブラリインストール:
    cd py-spidev
    sudo python setup.py install

ステップ4:サンプルPythonコード

ホームディレクトリにmcp3008.pyを作成:

nano ~/mcp3008.py

以下のスクリプトを貼り付け:

# mcp3008.py
import spidev
import time
# SPIバス0、デバイス0を開く
spi = spidev.SpiDev()
spi.open(0, 0)
spi.max_speed_hz = 1350000
def read_channel(channel):
    if channel < 0 or channel > 7:
        return -1
    adc = spi.xfer2([1, (8 + channel) << 4, 0])
    data = ((adc[1] & 3) << 8) + adc[2]
    return data
try:
    while True:
        value = read_channel(0)  # チャネル0から読み取り
        print(f"Channel 0: {value}")
        time.sleep(1)
except KeyboardInterrupt:
    spi.close()
    print("Program terminated")

実行:

python3 ~/mcp3008.py

生ADC値(0〜1023)が継続的にストリーミングされます。MCP3008データシートに従って電圧やセンサー単位に変換してください。

参考資料

製造プロセス

  1. Raspberry Pi & HDC2010:I2C温湿度センサー完全セットアップガイド
  2. 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
  3. Python、SQLite、LabVIEWによるRaspberry Pi高精度温度プロファイリング
  4. Raspberry PiでTMP006赤外線温度センサーを使う – Pythonライブラリとセットアップガイド
  5. Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
  6. Raspberry Piで気象観測ステーションを構築し、日次天気データをメール送信
  7. Raspberry Pi 3とPubNubでリモート気象監視
  8. HC-SR04超音波距離センサーをRaspberry Pi 3に接続 – 完全ガイド
  9. TI SensorTagをNode-RED経由でBlynkと統合 – Raspberry Pi Zero編
  10. Raspberry PiでPIRモーションセンサーとLEDを制御
  11. C# 入出力の基礎:ユーザー入力と出力の基本をマスター