
在智能硬件项目中,光照检测是非常常见的基础能力。自动调节屏幕亮度、夜间模式判断、智能补光灯、环境监测设备、户外强光提醒,本质上都需要程序能够感知外部环境的明暗变化。光敏电阻实验的价值不只是读取一个数字,而是让 Python 程序通过传感器把真实世界的光线变化转成可处理的数据。本实验使用 CanMV K210 开发板通过软件 I2C 连接 PCF8591 模数转换模块,再由 PCF8591 的 AIN0 通道读取光敏电阻的模拟量。程序会把 0~255 的 ADC 原始值转换成 0%~100% 的光照百分比,并通过多次采样平均降低数据抖动。运行后,串口终端会持续输出 ADC 原始值、光照强度百分比和环境状态,当光照等级发生变化时,程序才输出状态变化提醒,避免终端信息过于杂乱。学习目标说明理解模拟量采集认识光敏电阻输出电压、PCF8591 ADC 转换和数字采样值之间的关系掌握 I2C 读取方式使用 CanMV K210 的软件 I2C 与 PCF8591 通信完成光照数据读取通过 PCF8591 的 AIN0 通道读取光敏电阻模拟量理解数据处理流程将 ADC 原始值转换成光照百分比,并使用多次采样平均减少抖动建立状态判断思路根据光照百分比判断黑暗、偏暗、正常、明亮和强光状态文章目录理论基础硬件设施软件代码扩展应用总结理论基础光敏电阻是一种会随光照强度变化而改变电阻值的传感器元件。光线变化会影响分压电路输出电压,但这个电压是连续变化的模拟量,不能直接被普通 GPIO 当作明确的 0 或 1 读取。CanMV K210 如果要获得这种连续变化的数据,就需要借助 ADC 模数转换模块。PCF8591 在本实验中承担“模拟量转数字量”的角色。光敏电阻的输出电压接入 PCF8591 的 AIN0 通道,PCF8591 将该模拟电压转换成 0~255 范围内的数字值,再通过 I2C 总线传给 CanMV K210。程序读取到数字值后,可以继续换算成百分比,并根据阈值判断环境亮度等级。这个实验的控制链路可以理解为:环境光线改变光敏电阻输出,PCF8591 完成 ADC 转换,CanMV K210 通过 I2C 读取数据,Python 程序对数据进行平均滤波、百分比换算和等级判断,最后通过串口输出当前光照状态。