你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【经验分享】stm32项目实战 光敏电阻的介绍和使用

[复制链接]
STMCU小助手 发布时间:2022-5-22 22:00
前言
本篇文章我们讲带大家了解光敏电阻的使用

一、光敏电阻介绍
下面是4线光敏电阻实物图
9QP]VKT$K1GD{1_CWM[(B.png

产品接线说明:
1、VCC 接电源正极 3.3-5V
2、GND 接电源负极
3、DO TTL 开关信号输出 (配置为输出模式)
4、AO 模拟信号输出(ADC采样通道)

光敏电阻主要用于检测周围的光照强度,光照强度发生变化那么ADC采样的值也会发送变化。

二、cubeMX配置

简单的配置我们就不多说了主要是ADC采样的配置
这里我采用的是ADC1通道4所以光敏电阻的A0就应该接在对应的ADC通道上。

54)N1]0CDTWN}`~Y4}J5M~M.png

顺便配置一下D0为输出模式用于简单检测光照强度。

{MM9AAB%2]N5F50T5S{BU~3.png

三、代码说明
  1. //IO口定义
  2. #define D0_SET() HAL_GPIO_WritePin(D0_GPIO_Port, D0_Pin, GPIO_PIN_SET)
  3. #define D0_RESET() HAL_GPIO_WritePin(D0_GPIO_Port, D0_Pin,GPIO_PIN_RESET)


  4. //ADC采样数值
  5. typedef struct
  6. {
  7.   u32 adc_vol;//ADC测量的值
  8.   float vol;//实际电压值

  9. }RESIST;

  10. HAL_ADC_Start_IT(&hadc1);//中断方式开启ADC
  11. //ADC回调函数
  12. void  HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc)
  13. {
  14.             resist_data.adc_vol=HAL_ADC_GetValue(hadc);//获取ADC转换结果
  15.      resist_data.vol=resist_data.adc_vol*5/4095;//转换为电压值
  16. }

  17. //测试函数当电压大于2.5时D0输出低电平光敏电阻上的LED指示灯被点亮
  18. void Resist_Test(void)
  19. {
  20.   if(resist_data.vol>2.5)
  21.   {
  22.     D0_RESET();
  23.   }
  24.   else
  25.   {
  26.     D0_SET();
  27.   }
  28. }

  29. while(1)
  30. {
  31.         Resist_Test();
  32. }
复制代码

总结

光敏电阻的使用其实就是ADC采样的使用,大家如果不熟悉ADC采样的话可以看我前面的文章:ADC采样



收藏 评论0 发布时间:2022-5-22 22:00

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版