一、原理
光敏电阻传感器原理图:
AO:对于模拟电压输出接口,光敏电阻会根据外部光强产生不同的电阻值。光越强,电阻值越小。根据串联分压原理,随着光敏电阻的下降,AO电位变高,ADC读取光敏电阻一端的电压值,量化光强度值。
光敏电阻有两种输出,一种是模拟量AO,一个开关量DO。开关量通过比较器,同相输入端为采集的模拟量,反向端为PR比较滑动电阻设置的可变值。在无光环境和环境光下线亮度低于设定阈值时,DO端输出高电平,当外界环境光线亮度超过设定阈值时,DO端输出低电平。
注:需要将PA3、PA4和TRDO、TRAO连接。
将PA4引脚配置ADC2通道17,测量读取即可获得AO模拟输出量,电压=3.3*getADC2()/4096.
// ao uint16_t getADC2() { uint16_t adc=0; HAL_ADC_Start(&hadc2); adc = HAL_ADC_GetValue(&hadc2); return adc; } if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_3)== 0) { sprintf((char *)display," do:low "); } else { sprintf((char *)display," do:high "); } LCD_DisplayStringLine(Line5,display);
将PA3引脚配置为输入引脚,读取IO口的电平。电压比较后,运输输出端的比较结果,当光强度达不到高电平时PR7设置的阈值,即代表同向输入电压大于反向输入电压。
光照强时,光敏电阻小,分压小,同相端小于反向端,输出低电平,反之亦然。