LDR 模块
模块介绍
光敏电阻(LDR)传感器驱动类,通过 ADC 读取环境光强度。适用于光线检测、自动调光、光控开关等应用场景。
硬件引脚说明
| 引脚名称 | 全称/含义 | 接线颜色 | 功能描述 |
|---|---|---|---|
| S | Signal/信号 | 黄色 | 数据传输引脚,用于读取光敏电阻模拟信号(需支持 ADC 功能) |
| V | Voltage/电源 | 红色 | 电源电压输入,为设备提供工作电压 |
| G | Ground/地线 | 黑色 | 接地引脚,完成电路回路 |
初始化参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| pin | Pin | 无 | 支持 ADC 功能的 machine.Pin实例(如 ESP32 的 GPIO32-39) |
| attenuation | int | ADC.ATTN_11DB | ADC 衰减等级(ESP32 推荐用 ATTN_11DB,支持 0~3.6V) |
导入和实例创建
python
from machine import Pin, ADC # 导入Pin和ADC模块
from ldr import LDR # 导入LDR驱动模块
# 初始化光敏传感器
ldr = LDR(pin=Pin(34), attenuation=ADC.ATTN_11DB) # 创建LDR实例核心属性方法
| 属性或方法 | 参数 | 返回类型 | 说明 |
|---|---|---|---|
| read() | 无 | int | 读取原始 ADC 值(0~4095,12 位) |
| value | 无 | int | 只读属性:等同于 read(),返回当前原始 ADC 值 |
使用示例
python
from machine import Pin, ADC
from ldr import LDR
from time import sleep_ms
# 初始化光敏传感器
ldr = LDR(pin=Pin(34), attenuation=ADC.ATTN_11DB)
while True:
print("当前值:", ldr.value) # 推荐方式
print("当前值:", ldr.read()) # 等效方式
sleep_ms(500) # 配合延时使用,防止程序过载注意事项
硬件与引脚要求
- 确保所使用的引脚支持 ADC 输入(如 ESP32 上的 GPIO32、GPIO34、GPIO35、GPIO36、GPIO39 等)
- 需使用光敏电阻(LDR)+ 分压电阻(如 10kΩ)组成分压电路,输出端接主控 ADC 引脚
使用技巧
- 数值与光线强弱的关系取决于硬件接线方式:
- LDR 接 GND 侧 → 光线越强,value 越大
- LDR 接 VCC 侧 → 光线越强,value 越小
- 在 while True 循环中请配合延时函数使用,防止程序过载
技术细节
- ESP32 推荐使用 ATTN_11DB(支持 0~3.6V 输入),其他平台可能需要调整