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 亮灭」的完整示例代码**,实现"天黑自动开灯,天亮自动关灯"的小项目?

相关推荐
Dev_XH7 小时前
【成品设计】基于CH32H417的CH32H417AIOT家庭微电网
单片机·嵌入式硬件·物联网·ai
en.en..12 小时前
STM32入门最佳学习顺序(寄存器→标准库→HAL库)
单片机·嵌入式硬件
二本咕咕-机械转码14 小时前
FreeRTOS深入解析(八)IPC机制之FromISR详解
数据结构·单片机·链表
小李不想当小白14 小时前
HAL库之UART(STM32 HAL库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
Dev_XH14 小时前
【成品设计】基于物联网的旅游生态农业互动系统
stm32·单片机·嵌入式硬件·物联网·旅游
Zwawa1 天前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式
无敌贵点大王1 天前
从寄存器层面重学STM32(7)——定时器
stm32·单片机·嵌入式硬件
wuyk5552 天前
Keil工具链-第05讲-启动文件与__main到底做了什么
c语言·stm32·单片机·嵌入式硬件·物联网
不脱发的程序猿2 天前
GD32串口数据收进内存之后DMA如何处理?
单片机·嵌入式硬件·dma·嵌入式·串口通信·gd32
国科安芯3 天前
83 倍:ASC0108S 在推挽和开漏之间,差的不是速度,是回程
单片机·嵌入式硬件·架构·电平转换·抗辐射