光敏电阻传感器
扫描二维码
随时随地手机看文章
一、简介
光敏电阻模块对环境光线最敏感,一般用来检测周围环境的光线的亮度
二、连线
引脚D0是开关信号输出,检测光线是否达到阈值(0和1),本处接到PD5引脚
模块在环境光线亮度达不到设定阈值时,DO 端输出高电平,当外界环境光线亮度超过设定阈值时,DO 端输出低电平; 光线越强,电压越小;
三、代码
在light.h 文件中,我们先进行宏定义,方便移植
#define light_STATE() GPIO_ReadInputDataBit(light_PORT,light_PIN)//读光敏电阻传感器的状态
#define light_PORT GPIOD
#define light_PIN GPIO_Pin_5
#define light_RCC RCC_APB2Periph_GPIOD
定义完了之后,再对light.c文件中的PD5接收引脚进行初始化
//对光敏电阻的端口进行初始化
void light_INIT(void)
{
GPIO_InitTypeDef GPIO_InitStructure;//定义结构体变量
RCC_APB2PeriphClockCmd(light_RCC,ENABLE);
GPIO_InitStructure.GPIO_Pin=light_PIN; //选择你要设置的IO口
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //设置浮空输入
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //设置传输速率
GPIO_Init(light_PORT,&GPIO_InitStructure); /* 初始化GPIO */
}
最后,在main.c函数里面进行情况选择,只是了解传感器的使用,没有运用实际项目,所以写的很简单。
int main()
{
SysTick_Init(72);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中断优先级分组 分2组
light_INIT();
LED_Init();
USART1_Init(115200);
ADCx_Init();
while(1)
{
//LED1=0;
if(light_STATE()==0) //返回低电平,说明灯亮
{
LED1=0;
LED2=1;
}
else
{
LED2=0;
LED1=1;
}
delay_ms(10);
}
}
————————————————
版权声明:本文为CSDN博主「yekh_sys」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_46573394/article/details/112617767