RP2040 pico 实验6,光敏电阻传感器模块(LM393 比较器版)

💡 这是光敏电阻传感器模块(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)

✨ 测试与调节

  1. 模拟量测试:用手遮住光敏电阻 → ADC 值变小;移开手 → ADC 值变大。
  2. 数字量阈值调节
    • 用小螺丝刀旋转蓝色电位器
    • 顺时针转:阈值变高(更暗才会触发 DO 低电平)
    • 逆时针转:阈值变低(更亮就会触发 DO 低电平)

💡 原理小科普

  • 光敏电阻:光照越强,电阻越小 → 分压后 AO 电压越高
  • LM393 比较器:将 AO 电压与电位器设定的参考电压比较,输出 DO 高低电平
  • 适合做:自动夜灯、光照监测、智能窗帘触发等场景

要不要我帮你写一个**「光敏控制 LED 亮灭」的完整示例代码**,实现"天黑自动开灯,天亮自动关灯"的小项目?

相关推荐
这波不该贪内存的4 小时前
裸机开发VS单片机:架构与实战对比
单片机
神一样的老师5 小时前
【兆易创新GD32VW553开发板试用】红外遥控接入天气时钟实战
驱动开发·单片机·嵌入式硬件
多看多敲多思考7 小时前
华润微CS32ME10 MCU使用教程(2)---CS32ME10之UART串口模块使用
stm32·单片机·嵌入式硬件·mcu
神一样的老师7 小时前
【兆易创新GD32VW553开发板试用】天气时钟设计与调试实战
单片机·嵌入式硬件·物联网
国科安芯8 小时前
核电站仪控与监测系统中抗辐射 MCU 芯片应用研究
单片机·嵌入式硬件·macos·无人机·cocos2d·核电站
黑白园8 小时前
STM32系统时钟由72M修改为36M验证示例
stm32·单片机·嵌入式硬件
LCG元9 小时前
基于ARM7的LCD设计与实现:S3C4510B通用IO口控制液晶模块
stm32·单片机·嵌入式硬件
The_superstar69 小时前
衡山派学习之串口
单片机·嵌入式硬件·串口·衡山派
Ww.xh10 小时前
STM32按键去抖动软件实现详解
stm32·单片机·嵌入式硬件
ghie909010 小时前
基于STM32的CAN通信完整例程(HAL库实现)
stm32·单片机·嵌入式硬件