光敏电阻可用于探测开发板周围的光照强度,并且光敏电阻的成本也非常便宜,智能在花卉系统-中这必的英文备的元件。庆科扩展板上刚刚好有连接光敏电阻的ADC引脚,标识为A2,连接到细胞核- F446开发板上的PA4引脚,这次的试用帖就以这个光敏电阻出发,进行AD采集实验。
由于只采集一个ADC引脚,因此只需要开启单通道转换模式即可,禁止扫描模式,连续转换模式,转间断换速模式:
font> font> font> font> font> font> font> __HAL_RCC_GPIOA_CLK_ENABLE(); font> p> GPIO_InitStruct.Pin = GPIO_PIN_4; font> p> GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; font> p GPIO_InitStruct.Pull = GPIO_NOPULL; font> p> HAL_GPIO_Init(GPIOA,&GPIO_InitStruct); font> p> font> span> p> __HAL_RCC_ADC1_CLK_ENABLE(); font> p> hadc1.Instance = ADC1; font> p> hadc1.Init .ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; font> p> hadc1.Init.Resolution = ADC_RESOLUTION_12B; 字体> hadc1.Init.ScanConvMode = DISABLE; font> p> p> hadc1.Init.DiscontinuousConvMode = DISABLE; font> font> hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; font> p> hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; font> p> hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; font> font> hadc1.Init.NbrOfConversion = 1; font> p> hadc1.Init.DMAConuousuousRequests = DISABLE; font> p> hadc1.Init。 EOCSelection = ADC_EOC_SINGLE_CONV; HAL_ADC_Init(&hadc1); font> font> font> “微软雅黑”大小= “2”>
FONT> p> <字型=”
软雅黑“sConfig.Channel = ADC_CHANNEL_4; font> font> font> sConfig.Rank = 1; HAL_ADC_ConfigChannel(&hadc1,&sConfig); font> font>
font> p> } font> p>
由于光敏电阻的特性是光照强度越高,阻值越小,探测到的电压值越小,因此采集在完毕之后需要取互补数值才是真正的光照强度:
(1) font> p>
< / font> span> span> OLED_ShowASCII(72,4,(4095-ADC1_GetValue(4))/ 1000%10 +'0'); font> p> OLED_ShowASCII(80,4,(4095-ADC1_GetValue(4))/ 100%10 +'0'); span> / font> span> span> OLED_ShowASCII(88,4,(4095-ADC1_GetValue(4))/ 10%10 +'0'); font> p> span> OLED_ShowASCII(96,4,(4095-ADC1_GetValue(4))%10 +'0'); font > p> } font> p>
上传效果图,打开摄像头的手电筒的时候,光照强度明显上升:
光敏电阻可用于探测开发板周围的光照强度,并且光敏电阻的成本也非常便宜,智能在花卉系统-中这必的英文备的元件。庆科扩展板上刚刚好有连接光敏电阻的ADC引脚,标识为A2,连接到细胞核- F446开发板上的PA4引脚,这次的试用帖就以这个光敏电阻出发,进行AD采集实验。
由于只采集一个ADC引脚,因此只需要开启单通道转换模式即可,禁止扫描模式,连续转换模式,转间断换速模式:
font> font> font> font> font> font> font> __HAL_RCC_GPIOA_CLK_ENABLE(); font> p> GPIO_InitStruct.Pin = GPIO_PIN_4; font> p> GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; font> p GPIO_InitStruct.Pull = GPIO_NOPULL; font> p> HAL_GPIO_Init(GPIOA,&GPIO_InitStruct); font> p> font> span> p> __HAL_RCC_ADC1_CLK_ENABLE(); font> p> hadc1.Instance = ADC1; font> p> hadc1.Init .ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4; font> p> hadc1.Init.Resolution = ADC_RESOLUTION_12B; 字体> hadc1.Init.ScanConvMode = DISABLE; font> p> p> hadc1.Init.DiscontinuousConvMode = DISABLE; font> font> hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; font> p> hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; font> p> hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; font> font> hadc1.Init.NbrOfConversion = 1; font> p> hadc1.Init.DMAConuousuousRequests = DISABLE; font> p> hadc1.Init。 EOCSelection = ADC_EOC_SINGLE_CONV; HAL_ADC_Init(&hadc1); font> font> font> “微软雅黑”大小= “2”>
FONT> p> <字型=”
软雅黑“sConfig.Channel = ADC_CHANNEL_4; font> font> font> sConfig.Rank = 1; HAL_ADC_ConfigChannel(&hadc1,&sConfig); font> font>
font> p> } font> p>
由于光敏电阻的特性是光照强度越高,阻值越小,探测到的电压值越小,因此采集在完毕之后需要取互补数值才是真正的光照强度:
(1) font> p>
< / font> span> span> OLED_ShowASCII(72,4,(4095-ADC1_GetValue(4))/ 1000%10 +'0'); font> p> OLED_ShowASCII(80,4,(4095-ADC1_GetValue(4))/ 100%10 +'0'); span> / font> span> span> OLED_ShowASCII(88,4,(4095-ADC1_GetValue(4))/ 10%10 +'0'); font> p> span> OLED_ShowASCII(96,4,(4095-ADC1_GetValue(4))%10 +'0'); font > p> } font> p>
上传效果图,打开摄像头的手电筒的时候,光照强度明显上升: