Phantom YoYo 高灵敏度水位传感器接入 MCP3008 ADC 树莓派实战 (Windows 10 IoT Core + C#)
为何选择 MCP3008?
MCP3008 是紧凑低成本的 8 通道 10 位 SPI 接口 ADC。10 位分辨率提供 1024 离散电平,可精细区分电压。以 3.3V 为基准,读数转电压公式:
voltage = (reading / 1023.0) * Vref
示例:读数 523 对应电压 ≈ 1.687V。建议实测树莓派实际供电电压(如 3.301V)作为 Vref 以提升精度。
硬件概览
- 传感器: Phantom YoYo 水位传感器 – 3 脚 (–, +, s)。– 接树莓派 GND,+ 接 3.3V (或 5V),s 接 MCP3008 CH1
- MCP3008: 8 输入通道,SPI 引脚、Vref、Vdd、AGND。Vref→3.3V,AGND→GND,Vdd→3.3V,GND→GND
- 电位器: 可选 – 演示 CH0 ADC 转换
接线要点
- MCP3008 Vref (Pin 15) → 树莓派 3.3V
- MCP3008 AGND (Pin 14) → 树莓派 GND
- MCP3008 Vdd (Pin 16) → 树莓派 3.3V
- MCP3008 CH0 (Pin 1) → 电位器输出
- MCP3008 CH1 (Pin 2) → 水位传感器 s 脚
- SPI 线 (CS, CLK, DO, DI) → 树莓派 SPI 引脚
软件实现 (UWP C#)
项目类型:通用 Windows 平台。双仪表盘显示:
- 电位器原始电压 (CH0)
- 水位归一化 0~100 (CH1)
初始化 MCP3008
private Mcp3008 _mcp3008;
protected override async void OnNavigatedTo(NavigationEventArgs e) {
_mcp3008 = new Mcp3008(0); // SPI 总线 0
await _mcp3008.InitializeAsync();
}
读取通道
float voltage = _mcp3008.Read(Mcp3008.Channels.Single0).AsScaledValue(3.3f);
差分测量用 Differential0 替换 Single0。页面离开时释放:
_mcp3008.Dispose();
_mcp3008 = null;
校准与测量
万用表实测电位器电压对比 MCP3008 读数验证精度。设为直流电压档,对比两值。
部署运行
- ARM 配置编译,选择 Remote Machine
- 项目属性设置树莓派 IP,关闭认证
- F5 部署启动
应用显示 360° 水位仪表。注意:传感器输出非严格线性,数值越大水位越高但关系为经验值,仪表仅作演示。
源码与完整文档见项目页面。
制造工艺
- 草坪喷灌器:设计、历史与现代制造
- 擀面杖:从伊特鲁里亚起源到现代工艺的演变
- 洗碗机技术:历史、设计与未来创新
- 泵动水枪演进史:从发明到全球市场霸主
- 树莓派接入 DS18B20 单总线数字温度计:分步实战指南
- 树莓派用 MCP3008 读取模拟传感器:接线、SPI 配置与 Python 示例
- Phantom YoYo 高灵敏度水位传感器接入 MCP3008 ADC 树莓派实战 (Windows 10 IoT Core + C#)
- 工业级高压泵:灌溉系统可靠动力核心
- 全自动水泵控制原理与电路设计详解
- 安森美推出低功耗、高帧率 ARX3A0 图像传感器,赋能智能视觉
- Insight:软触觉传感器提升机器人触觉灵敏度
- ToughMet® 3TS TS105 管材 (C72900) —— 耐极限载荷的高强度、抗咬合合金