STM32 外设驱动模块四:光敏电阻(LDR) 模块

1. 模块简介

光敏电阻(LDR, Light Dependent Resistor) 是一种会随着光线强弱改变电阻值的元件。在 STM32 项目中,它常被用来感知环境光强,实现自动灯光控制、屏幕亮度调节、节能管理等功能。

常见用途:

  • 晚上自动开灯,白天自动关灯
  • 根据环境光自动调节屏幕亮度
  • 光照触发的安防报警
  • 教学和实验中的光线感知演示

2. 使用原理

2.1 工作原理

光敏电阻的阻值会随光照强度变化:

  • 光线强 → 阻值变小
  • 光线弱 → 阻值变大

在数字型光敏模块中,内部会用光敏电阻与电阻组成分压电路,再通过比较器芯片(如 LM393)判断光强是否高于设定阈值,并直接输出高/低电平给单片机读取。

这样,单片机只需要读取一个"0"或"1"就能知道当前是亮还是暗,不用做复杂的模拟信号计算。

2.2 硬件连接示意

原理图:

plaintext 复制代码
STM32 PB13 <----> 光敏模块 DO 输出
VCC (3.3V/5V) <--> 光敏模块 VCC
GND <-----------> 光敏模块 GND

实物图:

说明:

  • DO 接口输出数字信号(0 或 1),阈值可通过模块上的电位器调节
  • 高电平/低电平代表"亮"或"暗",取决于模块电路设计
  • 建议使用上拉输入模式,防止信号悬空

3. STM32 配置思路

3.1 需要用到的外设

外设名称 用途
GPIOB 读取数字输入值

3.2 配置步骤

  1. 打开 GPIOB 时钟
  2. 将 PB13 设置为上拉输入模式
  3. 使用 GPIO_ReadInputDataBit 读取当前电平

4. 标准库驱动代码

4.1 头文件

c 复制代码
#include "stm32f10x.h"

4.2 初始化函数

c 复制代码
void LightSensor_Init(void)
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;  // 上拉输入
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    GPIO_Init(GPIOB, &GPIO_InitStructure);
}

4.3 读取光敏状态

c 复制代码
uint8_t LightSensor_Get(void)
{
    return GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13);
}

4.4 使用示例

c 复制代码
int main(void)
{
    LightSensor_Init();

    while(1)
    {
        if(LightSensor_Get() == 0) {
            // 暗,执行开灯动作
        } else {
            // 亮,执行关灯动作
        }
    }
}

5. 应用扩展

功能 实现方式
自动灯光控制 光暗变化触发继电器控制灯泡
节能模式 在光线强时自动关闭屏幕背光
安防触发 夜间光照异常触发报警
数据记录 使用 ADC 接口采集模拟量绘制光照变化曲线

6. 调试建议

问题现象 解决方法
读值不稳 检查接线并适当增加 RC 滤波
判断反向 软件取反或调节模块电位器方向
始终高/低 检查供电与接线是否正确

相关推荐
LCG元3 小时前
STM32实战:基于STM32F103的家用新风系统智能控制器(空气质量监测+PID调速)
stm32·单片机·嵌入式硬件
LCG元4 小时前
STM32实战:基于STM32F103的多通道工业数据采集与监控系统(Modbus RTU+上位机)
stm32·单片机·嵌入式硬件
资深流水灯工程师4 小时前
STM32 单片机 USB 通讯原理与 HAL 库实战详解
stm32·单片机·嵌入式硬件
资深流水灯工程师4 小时前
STM32 I2C 通讯原理与三种实现模式详解
stm32·单片机·嵌入式硬件
zlinear数据采集卡5 小时前
电源纹波杀手:LDO线性稳压电路的“降噪哲学”——基于ZLinear数据采集卡的深度解析
单片机·嵌入式硬件·fpga开发·硬件架构
资深流水灯工程师5 小时前
STM32 USART 通讯原理与三种模式详解
stm32·单片机·嵌入式硬件
资深流水灯工程师5 小时前
STM32 单片机 SPI 通讯原理详解
stm32·单片机·嵌入式硬件
EMTime5 小时前
玲珑GUI-工程设置
单片机·mcu·ui·用户界面
不做无法实现的梦~5 小时前
MAVLink 协议教程
linux·stm32·嵌入式硬件·算法
QiLinkOS6 小时前
【用呼吸重构创造价值关系——QiLink生态】
c语言·数据结构·c++·人工智能·单片机·嵌入式硬件·算法