一、簡介
光敏電阻模塊對環(huán)境光線最敏感,一般用來檢測周圍環(huán)境的光線的亮度
二、連線
引腳D0是開關(guān)信號輸出,檢測光線是否達到閾值(0和1),本處接到PD5引腳
模塊在環(huán)境光線亮度達不到設(shè)定閾值時,DO 端輸出高電平,當(dāng)外界環(huán)境光線亮度超過設(shè)定閾值時,DO 端輸出低電平; 光線越強,電壓越小;
三、代碼
在light.h 文件中,我們先進行宏定義,方便移植
#define light_STATE() GPIO_ReadInputDataBit(light_PORT,light_PIN)//讀光敏電阻傳感器的狀態(tài)
#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;//定義結(jié)構(gòu)體變量
RCC_APB2PeriphClockCmd(light_RCC,ENABLE);
GPIO_InitStructure.GPIO_Pin=light_PIN; //選擇你要設(shè)置的IO口
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //設(shè)置浮空輸入
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //設(shè)置傳輸速率
GPIO_Init(light_PORT,&GPIO_InitStructure); /* 初始化GPIO */
}
最后,在main.c函數(shù)里面進行情況選擇,只是了解傳感器的使用,沒有運用實際項目,所以寫的很簡單。
int main()
{
SysTick_Init(72);
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //中斷優(yōu)先級分組 分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);
}
}
————————————————
版權(quán)聲明:本文為CSDN博主「yekh_sys」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/m0_46573394/article/details/112617767