【 NUCLEO-F446RE 试用体验】读取光敏电阻的ADC数值

  • donatello
  • LV6工程师
  • |      2017-11-10 21:57:34
  • 浏览量 1571
  • 回复:1
光敏电阻可用于探测开发板周围的光照强度,并且光敏电阻的成本也非常便宜,智能在花卉系统-中这必的英文备的元件。庆科扩展板上刚刚好有连接光敏电阻的ADC引脚,标识为A2,连接到细胞核- F446开发板上的PA4引脚,这次的试用帖就以这个光敏电阻出发,进行AD采集实验。 由于只采集一个ADC引脚,因此只需要开启单通道转换模式即可,禁止扫描模式,连续转换模式,转间断换速模式:
          __HAL_RCC_GPIOA_CLK_ENABLE();   

GPIO_InitStruct.Pin = GPIO_PIN_4;

GPIO_InitStruct.Mode = GPIO_MODE_ANALOG; HAL_GPIO_Init(GPIOA,&GPIO_InitStruct);

__HAL_RCC_ADC1_CLK_ENABLE();

hadc1.Instance = ADC1; hadc1.Init .ClockPrescaler = ADC_CLOCK_SYNC_PCLK_DIV4;

hadc1.Init.Resolution = ADC_RESOLUTION_12B; 字体> hadc1.Init.ScanConvMode = DISABLE;

hadc1.Init.DiscontinuousConvMode = DISABLE; hadc1.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;

hadc1.Init.ExternalTrigConv = ADC_SOFTWARE_START; hadc1.Init.DataAlign = ADC_DATAALIGN_RIGHT; hadc1.Init.NbrOfConversion = 1;

hadc1.Init.DMAConuousuousRequests = DISABLE;

hadc1.Init。 EOCSelection = ADC_EOC_SINGLE_CONV; HAL_ADC_Init(&hadc1); “微软雅黑”大小= “2”>

<字型=” 软雅黑“sConfig.Channel = ADC_CHANNEL_4; sConfig.Rank = 1; HAL_ADC_ConfigChannel(&hadc1,&sConfig);

}

由于光敏电阻的特性是光照强度越高,阻值越小,探测到的电压值越小,因此采集在完毕之后需要取互补数值才是真正的光照强度:
(1)  

< / font> OLED_ShowASCII(72,4,(4095-ADC1_GetValue(4))/ 1000%10 +'0'); OLED_ShowASCII(80,4,(4095-ADC1_GetValue(4))/ 100%10 +'0'); / font> OLED_ShowASCII(88,4,(4095-ADC1_GetValue(4))/ 10%10 +'0'); OLED_ShowASCII(96,4,(4095-ADC1_GetValue(4))%10 +'0');

}

上传效果图,打开摄像头的手电筒的时候,光照强度明显上升
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:1
追梦少年 2017-11-27
这个数值的单位是啥
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子

上海固越电子科技有限公司 版权所有©       投诉、举报邮箱:contact@icxbk.com       客服、投诉、举报电话:021-31029100-9104

经营增值电信业务试点批复:沪通信管自贸[2019]24号 出版物经营许可证:新出发沪批字第Y8445号

沪ICP备18038102号  沪公网安备 31011702004806号 |营业执照