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

MCP3008 ADCでRaspberry Piにアナログセンサーを読み取る

Raspberry PiのGPIOピンはデジタルのみのため、アナログセンサーの接続は課題です。安価な解決策がMCP3008で、8チャネル10ビットのアナログ・デジタルコンバータとしてPiのSPIバスに直結し、追加部品不要で動作します。

このガイドでは、MCP3008をRaspberry Piに配線し、光依存抵抗(LDR)とTMP36温度センサーを接続、シンプルなPythonスクリプトでデータを読み取る手順を解説します。

必要なもの

PiでSPIを有効化

SPIインターフェースはデフォルト無効。Raspberry PiでSPIインターフェースを有効化するの手順に従い、SPIをアクティブ化しspidev Pythonライブラリをインストール。

回路接続

MCP3008にはPiの40ピンヘッダー上で4つのGPIOピンが必要。以下を接続(ピン番号はヘッダーのP1番号):

VDD 3.3V
VREF 3.3V
AGND GROUND
CLK GPIO11 (P1-23)
DOUT GPIO9 (P1-21)
DIN GPIO10 (P1-19)
CS GPIO8 (P1-24)
DGND GROUND

MCP3008のCH0〜CH7ピンがそれぞれアナログ入力になります。以下の例ではCH0をLDR、CH1をTMP36に使用、残り6チャネルは将来のセンサー用に確保。

光依存抵抗(LDR)

LDRの抵抗は強光下で約10kΩ、暗闇で数MΩまで上昇。10kΩ抵抗と分圧回路を形成することで、MCP3008は明るいときに0V近く、暗いときに3.3V近くの電圧を読み取ります。

TMP36温度センサー

TMP36は3ピンのアナログ温度センサー。3.3Vで駆動しVOUTピンを読み取ります。25°Cで0.750V出力、傾きは10mV/°C。したがって0°Cで0.500V、100°Cで1.500V。

Pythonでデータ読み取り

MCP3008は0〜1023の10ビット値を出力、0V〜3.3Vに線形マッピング。TMP36の場合、約-50°C〜+280°Cの温度範囲に対応。

spidevライブラリでチャネル0と1を読み取る最小例:

import spidev
import time
spi = spidev.SpiDev()
spi.open(0, 0)  # bus 0, device 0
spi.max_speed_hz = 1350000
def read_channel(channel):
    # MCP3008プロトコル: スタートビット、シングル/ディフ、チャネル(3ビット)、ダミービット5
    adc = spi.xfer2([1, (8 + channel) & 0x0F << 4, 0])
    data = ((adc[1] & 3) << 8) + adc[2]
    return data
while True:
    ldr_val = read_channel(0)
    temp_val = read_channel(1)
    temp_c = (temp_val * 3.3 / 1023) * 100 - 50  # °Cに変換
    print(f'LDR: {ldr_val}, Temp: {temp_c:.2f}°C')
    time.sleep(1)

センサーレイアウトに合わせてチャネル番号を置き換えてください。スクリプトはLDRの生ADC値と計算された摂氏温度を継続的に出力します。

このセットアップで、フォトダイオード、圧力トランスデューサー、湿度プローブなどの追加アナログセンサーをCH2〜CH7に配線し、Pythonコードを拡張するだけで対応可能です。

Happy hacking!

製造プロセス

  1. 5ドルI2C温度センサーで作るRaspberry Pi温度ロガー
  2. Python、SQLite、LabVIEWによるRaspberry Pi高精度温度プロファイリング
  3. 複数DS18B20 1-WireセンサーをRaspberry Pi接続で精密温度監視
  4. Raspberry Pi 2でDS18B20温度センサー読み取りガイド
  5. Raspberry PiとDS18B20によるプロフェッショナルな温度監視
  6. Raspberry PiでMaxim 1-WireセンサーとDS2482 I2Cブリッジを用いた温度測定
  7. Raspberry PiでTMP006赤外線温度センサーを使う – Pythonライブラリとセットアップガイド
  8. Raspberry PiとPythonでリモート温度センサーを構築 – ステップバイステップガイド
  9. Raspberry Piでサーバークローゼットの温度を正確に監視
  10. Raspberry Pi 3とPubNubでリモート気象監視
  11. TI SensorTagをNode-RED経由でBlynkと統合 – Raspberry Pi Zero編