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

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

前言

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

一、光敏电阻介绍

下面是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采样

相关文章
|
5月前
|
芯片
【STM32】STM32简述中断的基础知识
【STM32】STM32简述中断的基础知识
|
6月前
|
芯片 内存技术
STM32速成笔记(十)—IWDG
本文详细介绍了什么是IWDG,STM32的IWDG特性,框图和配置步骤。此外,给出了STM32的IWDG配置程序。通过一个简单的应用实例,展示了IWDG的配置和使用方法。
132 0
STM32速成笔记(十)—IWDG
|
C++ 芯片 内存技术
STM32速成笔记(一)—概述
本文为STM32速成系列专栏的第一篇文章,主要介绍了一下本专栏的内容特点,前期准备内容以及一些简单的编程规范和代码架构设计内容。
181 0
STM32速成笔记(一)—概述
|
芯片
STM32速成笔记(五)—串口通信
本文介绍了串口通信的概念,用途以及一些相关概念。介绍了如何进行printf重定向,如何根据接收到的特定信息,执行特定操作。此外,本文以通过上位机发送特殊指令控制LED亮灭的小项目,给出了详细的配置方法和程序设计。
209 0
STM32速成笔记(五)—串口通信
STM32F103移值FreeRtos笔记
STM32F103移值FreeRtos笔记
101 0
|
存储 API C语言
从0学习stm32
从0学习stm32
132 0
|
调度
STM32 FreeRTOS任务基础知识
STM32 FreeRTOS任务基础知识
178 0
|
物联网 芯片 开发者
Stm32f103c8T6 介绍 | 学习笔记
快速学习 Stm32f103c8T6 介绍
Stm32f103c8T6 介绍 | 学习笔记