35 lines
1.3 KiB
C
35 lines
1.3 KiB
C
#ifndef __LIGHTSENSOR_H
|
|
#define __LIGHTSENSOR_H
|
|
|
|
#include "stm32f10x.h"
|
|
|
|
// 光敏电阻引脚定义
|
|
#define LIGHT_SENSOR_PIN GPIO_Pin_0
|
|
#define LIGHT_SENSOR_PORT GPIOB
|
|
#define LIGHT_SENSOR_ADC_CH ADC_Channel_8 // PB0 对应 ADC1 通道8
|
|
|
|
// 补光灯引脚定义
|
|
#define FILL_LIGHT_PIN GPIO_Pin_1
|
|
#define FILL_LIGHT_PORT GPIOB
|
|
|
|
// 补光灯控制宏(根据实际电路调整,假设高电平点亮)
|
|
#define FILL_LIGHT_ON() GPIO_SetBits(FILL_LIGHT_PORT, FILL_LIGHT_PIN)
|
|
#define FILL_LIGHT_OFF() GPIO_ResetBits(FILL_LIGHT_PORT, FILL_LIGHT_PIN)
|
|
|
|
// 光线阈值配置(可根据实际环境调整)
|
|
#define LIGHT_THRESHOLD_LOW 1500 // 低于此值开灯(光线暗)
|
|
#define LIGHT_THRESHOLD_HIGH 2000 // 高于此值关灯(光线亮)
|
|
// 使用迟滞区间避免频繁开关
|
|
|
|
// 函数声明
|
|
// 函数作用:初始化光敏电阻 ADC 输入和补光灯 GPIO 输出。
|
|
void LightSensor_Init(void);
|
|
// 函数作用:读取光敏电阻 ADC 当前采样值。
|
|
uint16_t LightSensor_GetValue(void);
|
|
// 函数作用:根据当前光照强度和迟滞阈值更新补光灯开关状态。
|
|
void LightSensor_Update(void);
|
|
// 函数作用:返回补光灯当前是否处于点亮状态。
|
|
uint8_t LightSensor_IsLightOn(void);
|
|
|
|
#endif
|