stm32项目实战(1)光敏电阻的介绍和使用

举报
yd_274589494 发表于 2023/07/22 09:50:18 2023/07/22
【摘要】 @TOC 前言本篇文章我们讲带大家了解光敏电阻的使用 一、光敏电阻介绍下面是4线光敏电阻实物图产品接线说明:1、VCC 接电源正极 3.3-5V2、GND 接电源负极3、DO TTL 开关信号输出 (配置为输出模式)4、AO 模拟信号输出(ADC采样通道)光敏电阻主要用于检测周围的光照强度,光照强度发生变化那么ADC采样的值也会发送变化。 二、cubeMX配置简单的配置我们就不多说了主要是A...

@TOC

前言

本篇文章我们讲带大家了解光敏电阻的使用

一、光敏电阻介绍

下面是4线光敏电阻实物图
在这里插入图片描述
产品接线说明:
1、VCC 接电源正极 3.3-5V
2、GND 接电源负极
3、DO TTL 开关信号输出 (配置为输出模式)
4、AO 模拟信号输出(ADC采样通道)

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

二、cubeMX配置

简单的配置我们就不多说了主要是ADC采样的配置
这里我采用的是ADC1通道4所以光敏电阻的A0就应该接在对应的ADC通道上。
在这里插入图片描述
顺便配置一下D0为输出模式用于简单检测光照强度。
在这里插入图片描述

三、代码说明

//IO口定义
#define D0_SET() HAL_GPIO_WritePin(D0_GPIO_Port, D0_Pin, GPIO_PIN_SET)
#define D0_RESET() HAL_GPIO_WritePin(D0_GPIO_Port, D0_Pin,GPIO_PIN_RESET)


//ADC采样数值
typedef struct
{
  u32 adc_vol;//ADC测量的值
  float vol;//实际电压值
  
}RESIST;

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

//测试函数当电压大于2.5时D0输出低电平光敏电阻上的LED指示灯被点亮
void Resist_Test(void)
{
  if(resist_data.vol>2.5)
  {
    D0_RESET();
  }
  else
  {
    D0_SET();
  }
}

while(1)
{
	Resist_Test();
}

总结

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。