本實驗配合2.2寸TFT液晶屏顯示,當光弱的時候顯示“昏暗”,光強時顯示“明亮”。
實驗使用的是下圖所示的3線光敏電阻傳感器模塊,用途:光線亮度檢測,光線亮度傳感器,智能小車尋光模塊。模塊特色:比較器輸出,信號干凈,波形好,驅動能力強,超過15mA;配可調電位器可調節檢測光線亮度;輸出形式:數字開關量輸出(0和1);使用寬電壓LM393比較器。
模塊使用說明
1、光敏電阻模塊對環境光線最敏感,一般用來檢測周圍環境的光線的亮度,觸發單片機或繼電器模塊等;
2、模塊在環境光線亮度達不到設定閾值時,DO端輸出高電平,當外界環境光線亮度超過設定閾值時,DO端輸出低電平;
3、DO輸出端可以與單片機直接相連,通過單片機來檢測高低電平,由此來檢測環境的光線亮度改變;
4、DO輸出端可以直接驅動本店繼電器模塊,由此可以組成一個光控開關。
各引腳作用如圖所示:
本實驗中將DO引腳連接到PA0腳,電源連接3.3V電源。
while(1){
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0){
Gui_DrawFont_GBK24(70,80,RED,GRAY0,"明亮");
}else{
Gui_DrawFont_GBK24(70,80,RED,GRAY0,"陰暗");
}
delay_ms(100);//延時函數0.1S
}
其中的:Gui_DrawFont_GBK24(70,80,RED,GRAY0,"明亮");和Gui_DrawFont_GBK24(70,80,RED,GRAY0,"陰暗");為液晶屏的顯示函數,這里不是重點。我么在這里要關注的是if()判斷語句,我們通過
if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0)
語句來判斷是否數據引腳為0(低電平),若是低電平則輸出下面的語句,
GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0)==0
為STM32的讀取引腳函數,引腳配置如下:
GPIO_InitTypeDefGPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;//PA0用于光敏電阻GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GPIO_InitStructure);
實驗效果如下:(明亮)
用紙遮擋住陽光后(昏暗)
(審核編輯: 智匯胡妮)
分享