亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

树莓派用 MCP3008 ADC 读取模拟传感器:LDR 与 TMP36 实例

树莓派 GPIO 仅支持数字信号,连接模拟传感器颇具挑战。廉价解决方案是 MCP3008,一款 8 通道 10 位模数转换器,直插树莓派 SPI 总线,无需额外元件。

本指南演示将 MCP3008 接线树莓派,连接光敏电阻 (LDR) 和 TMP36 温度传感器,并用简单 Python 脚本读取数据。

所需材料

在树莓派上启用 SPI

SPI 接口默认禁用。按 在树莓派上启用 SPI 接口 激活 SPI 并安装 spidev Python 库。

电路连接

MCP3008 需占用树莓派 40Pin 排针的四个 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 在强光下电阻约 10 kΩ,黑暗中升至数兆欧姆。与 10 kΩ 电阻组成分压电路,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 输出 10 位值 0–1023,线性映射 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 代码即可。

祝你玩得开心!

制造工艺

  1. 树莓派+$5 I²C传感器打造温度记录仪
  2. 树莓派温度画像:Python+SQLite+LabVIEW实战
  3. 树莓派多路DS18B20 1-Wire温度监测:接线与编程全指南
  4. 树莓派2上使用DS18B20读取温度完整指南
  5. 树莓派专业温度监测:基于 DS18B20 传感器的完整指南
  6. 树莓派结合 Maxim 1-Wire 传感器与 DS2482 I2C 桥接器的多点温度测量
  7. 树莓派配合 TMP006 红外温度传感器:Python 库与安装指南
  8. 树莓派与 Python 构建远程温度传感器:分步实战指南
  9. 树莓派精准监测机柜温度:DS18B20 多点部署实战
  10. 树莓派 3 配合 PubNub 实现远程气象监测
  11. 树莓派 Zero 配合 Node‑RED 融合 TI SensorTag 与 Blynk 物联网平台
  12. 树莓派无原生 ADC 读取模拟传感器:阶跃响应法实战