
💡 这是光敏电阻传感器模块(LM393 比较器版)
它的核心作用是检测环境光照强度,并输出两种信号:
- AO(模拟量):直接输出与光照强度成正比的电压(0~3.3V/5V)
- DO(数字量):通过蓝色电位器调节阈值,光照高于/低于阈值时输出高/低电平(开关量)
🔌 接线方法(RP2040 ↔ 光敏模块)
模块引脚共 4 个,对应 RP2040 接线如下:
| 模块引脚 | RP2040 引脚 | 功能说明 |
|---|---|---|
| VCC | 3.3V 或 5V | 供电(推荐 3.3V,避免损坏 ADC) |
| GND | GND | 接地 |
| AO | GP26 (ADC0) | 模拟量输出,用于读取精确光照值 |
| DO | 任意 GPIO(如 GP17) | 数字量输出,用于光照开关检测(可选) |
注意:RP2040 的 ADC 引脚只能接受 0~3.3V 电压,所以如果模块接 5V 供电,AO 输出可能超过 3.3V,务必用 3.3V 给模块供电。
🧑💻 MicroPython 代码示例(读取光照数值)
1. 读取模拟量(精确光照强度)
python
from machine import ADC, Pin
import time
# 初始化 ADC 引脚(GP26 对应 ADC0)
adc = ADC(Pin(26))
while True:
# 读取 ADC 值(范围 0~65535,数值越大光照越强)
light_value = adc.read_u16()
# 转换为电压(3.3V 参考)
voltage = light_value * 3.3 / 65535
print(f"光照 ADC 值: {light_value}, 电压: {voltage:.2f}V")
time.sleep(0.5)
c
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot
光照 ADC 值: 2048, 电压: 0.10V
光照 ADC 值: 16019, 电压: 0.81V
光照 ADC 值: 14611, 电压: 0.74V
光照 ADC 值: 14307, 电压: 0.72V
光照 ADC 值: 14243, 电压: 0.72V
光照 ADC 值: 13059, 电压: 0.66V
光照 ADC 值: 10930, 电压: 0.55V
光照 ADC 值: 9554, 电压: 0.48V
光照 ADC 值: 9570, 电压: 0.48V
光照 ADC 值: 9170, 电压: 0.46V
光照 ADC 值: 8338, 电压: 0.42V
2. 读取数字量(开关量检测,可选)
python
from machine import Pin
import time
# 初始化 DO 引脚(GP17)
do_pin = Pin(17, Pin.IN)
while True:
# 读取 DO 电平:0=光照低于阈值,1=光照高于阈值
do_status = do_pin.value()
print(f"数字量状态: {'亮' if do_status else '暗'}")
time.sleep(0.5)
✨ 测试与调节
- 模拟量测试:用手遮住光敏电阻 → ADC 值变小;移开手 → ADC 值变大。
- 数字量阈值调节 :
- 用小螺丝刀旋转蓝色电位器
- 顺时针转:阈值变高(更暗才会触发 DO 低电平)
- 逆时针转:阈值变低(更亮就会触发 DO 低电平)
💡 原理小科普
- 光敏电阻:光照越强,电阻越小 → 分压后 AO 电压越高
- LM393 比较器:将 AO 电压与电位器设定的参考电压比较,输出 DO 高低电平
- 适合做:自动夜灯、光照监测、智能窗帘触发等场景
要不要我帮你写一个**「光敏控制 LED 亮灭」的完整示例代码**,实现"天黑自动开灯,天亮自动关灯"的小项目?