使用 MCP3008 的 Raspberry Pi 上的模拟传感器
输入这意味着使用许多可用的传感器有点痛苦。我想更新我的车库安全系统,使其能够使用更多传感器,因此我决定研究一种简单且廉价的方法来做到这一点。 MCP3008 就是答案。
MCP3008 是一款 10 位 8 通道模数转换器 (ADC)。它便宜、易于连接并且不需要任何额外的组件。它使用由 Pi 的 GPIO 头支持的 SPI 总线协议。
本文介绍了如何使用 MCP3008 器件提供 8 个模拟输入,您可以将这些输入用于一系列传感器。在下面的示例电路中,我使用 MCP3008 读取温度和光传感器。
这是我使用的位:
- 树莓派
- MCP3008 8 通道 ADC
- 光敏电阻 (LDR)
- TMP36 温度传感器
- 10 欧姆电阻
第一步是启用 Pi 上的 SPI 接口,通常默认情况下禁用该接口。
请按照我在 Raspberry Pi 上启用 SPI 接口的文章来设置 SPI 并安装 SPI Python 包装器。
电路
以下列表显示了如何连接 MCP3008。它需要 Pi P1 接头上的 4 个 GPIO 引脚。
VDD 3.3VVREF 3.3VAGND GROUNDCLK GPIO11 (P1-23)DOUT GPIO9 (P1-21)DIN GPIO10 (P1-19CS GPIO8 (P1-24)DGND GROUND
CH0-CH7引脚为8路模拟输入。
这是我的面包板电路:
它使用 CH0 作为光传感器,CH1 作为 TMP36 温度传感器。其他6路输入备用。
光敏电阻
我选择了一个不错的厚实 LDR(NORPS-12,数据表)。正常光照下其电阻约为10Kohm,而在黑暗中增加到2Mohm以上。
当光线充足时,LDR 电阻低,导致输出电压下降到 0V。
天黑时LDR电阻增加导致输出电压增加到3.3V。
TMP36 温度传感器
TMP36 温度传感器是 3 引脚器件(数据表)。你可以用3.3V给它供电,中间的Vout引脚会提供一个与温度成正比的电压。
25 摄氏度的温度将导致 0.750V 的输出。每度产生10mV的输出电压。
所以0度会产生0.5V,100度会产生1.5V。
使用 Python 脚本读取数据
ADC 是 10 位,因此它可以报告从 0 到 1023(2 的 10 次方)的数字范围。读数为 0 表示输入为 0V,读数为 1023 表示输入为 3.3V。我们的 0-3.3V 范围相当于使用 TMP36 的 -50 到 280 摄氏度的温度范围。
有关更多详细信息:使用 MCP3008 的 Raspberry Pi 上的模拟传感器
制造工艺