STM32 实现光敏传感器
原理
光敏电阻将光强转换成电压信号;
有强时 DO 输出低电平,光弱时 DO 输出高电平;
电源接 5V 时,DO 输出的是 2.6V
不同强度的光强,可以通过调节滑块来改变
光敏电阻实物图
引脚说明
名称 | Value |
---|---|
VCC | 电源(5V) |
GND | 地线 |
OD | 输出信号 |
实现功能
有光时,开发版的LED灯亮,没有光时,灯灭;
原理图
LED灯原理图
将光敏电阻的OD引脚接到开发版的PC13上
配置方法
- 设置LED的时钟
- 配置LED的GPIO
选择GPIO类,GPIO时钟,GPIO具体引脚
//STM32上的LED1 GPIO为PB5#define LED1_GPIO_PORT GPIOB
#define LED1_GPIO_CLK RCC_APB2Periph_GPIOB
#define LED1_GPIO_PIN GPIO_Pin_5#define ON 0
#define OFF 1/* 宏定义实现LED灯的设置*/
#define LED1(a) if (a) \GPIO_SetBits(LED1_GPIO_PORT,LED1_GPIO_PIN);\else \GPIO_ResetBits(LED1_GPIO_PORT,LED1_GPIO_PIN)void LED_GPIO_Config(void)
{ GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd( LED1_GPIO_CLK, ENABLE);GPIO_InitStructure.GPIO_Pin = LED1_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(LED1_GPIO_PORT, &GPIO_InitStructure);
}
- 配置LDR的时钟
- 配置LDR的GPIO
#define LDR_GPIO_CLK RCC_APB2Periph_GPIOC
#define LDR_GPIO_PORT GPIOC
#define LDR_GPIO_PIN GPIO_Pin_13void LDR_GPIO_Config(void)
{GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(LDR_GPIO_CLK,ENABLE);GPIO_InitStructure.GPIO_Pin = LDR_GPIO_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD; GPIO_Init(LDR_GPIO_PORT, &GPIO_InitStructure);
}//检测功能
uint8_t LDR_Test(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)
{ if(GPIO_ReadInputDataBit(GPIOx,GPIO_Pin) == 1 ) //读取DO数据,如果高,则LDR设置OFF,否则设置ONreturn LDR_OFF; elsereturn LDR_ON;
}
主函数
int main(void)
{ LED_GPIO_Config();//LED配置LED2_OFF;//LED灯初始化熄灭LDR_GPIO_Config();//光敏配置while(1){ if (LDR_Test(LDR_GPIO_PORT,LDR_GPIO_PIN) == LDR_ON)LED2_ON; elseLED2_OFF; }
}
参考
野火-YH-LDR光敏传感器模块.pdf
STM32 实现光敏传感器相关推荐
- 基于STM32的光敏传感器数据采集系统-嵌入式系统与设计课程设计
目录 1 项目概述 1.1 项目介绍 1.2 项目开发环境 1.3 小组人员及分工 2 需求分析 2.1 系统需求分析 2.2 可行性分析 2.3 项目实施安排 3 系统硬件设计 3.1 系统整体硬件 ...
- STM32的光敏传感器
STM32的光敏传感器 简介 硬件连接 计算公式 程序 简介 1.照射光敏二极管的光强不同,通过光敏二极管的电流大小就不同,所以可以通过检测电流大小,达到检测光强的目的.利用这个电流变化,我们串接一个 ...
- 【STM32】光敏传感器示例
00. 目录 文章目录 00. 目录 01. 光敏传感器简介 02. 硬件模块 03. 程序设计 04. 结果验证 05. 预留 06. 附录 07. 声明 01. 光敏传感器简介 光敏传感器是最常见 ...
- STM32+BH1750光敏传感器获取光照强度
一.环境介绍 MCU: STM32F103ZET6 光敏传感器: BH1750数字传感器(IIC接口) 开发软件: Keil5 代码说明:使用IIC模拟时序驱动,方便移植到其他平台,采集的光照度比较 ...
- STM32使用光敏传感器计算光照度Lux,而不是仅仅打印个电压值或者电阻值
最近项目中用到了光敏电阻.搜索资料,发现很多人都使用光敏电阻,只是用了AD读取了电压值,或者算出了电阻值,就发送给上位机或者服务器,美其名曰获取了光照度. 搜索一番,也没找到用光敏电阻计算Lux的方法 ...
- STM32学习笔记(六 定时器及应用 4 光敏传感器实验 )
一.光敏传感器简介 光敏传感器是最常见的传感器之一,它的种类繁多,主要有:光电管.光电倍增管.光敏电阻.光敏三极管.太阳能电池.红外线传感器.紫外线传感器.光纤式光电传感器.色彩传感器.CCD 和 C ...
- STM32开源代码——光敏传感器
正点原子精英开发板 模块化封装,入口函数简明,易上手操作 展示main.c代码,完整代码请下载 点击下载代码 #include "led.h" #include "del ...
- STM32光敏传感器原理
发现很多人都使用光敏电阻,但只是用了AD读取了电压值,或者算出了电阻值,就发送给上位机或者服务器,美其名曰获取了光照度,但其原理并...... 图中的 LS1 就是光敏传感器,其实就是一个光敏二极管, ...
- STM32学习笔记——EXTI外部中断,光敏传感器控制LED灯
中断系统 中断:在主程序运行过程中,当出现了特定的中断触发条件,CPU就可以暂停当前正在运行的程序去处理中断程序,并把当前程序的地址压入堆栈,中断程序处理完成后把地址弹出堆栈,回到刚刚暂停的位置继续执 ...
- STM32——ADC读取光敏传感器控制LED灯,看门狗中断
本文介绍两种使用方法 一.编写读取AD值的函数,之后判断AD值,进行相应操作,比如点灯. 二.用ADC读取光敏传感器AO口输出,并配置ADC通道看门狗监控这条通道,当光线太暗时打开LED灯. 之后会再 ...
最新文章
- 图论-最短路Dijkstra算法详解超详 有图解
- android 记一次富文本加载之路
- Dapr项目应用探索
- 读取Mc1000的 唯一 ID 机器号
- 药学专业报计算机一级有用吗,全网友泣泪劝阻!高考结束之后,什么专业千万不能报?...
- 深入分析八种前景看好的物联网业务形态
- 知乎:为什么魂斗罗只有128KB却可以实现那么长的剧情?
- linux睡眠进程,linux一个进程如何睡眠
- JavaScript的三大基本操作案例讲解
- Vue-Less的自动和手动引入
- [蓝桥杯]基础练习 回文数
- 使用Angular Router导航基础
- 大数据工程师简历怎么写,更受到HR青睐?
- 小样本学习(FSL):Few-shot Learning 综述【模型微调(Fine-tunning)、数据增强、迁移学习(Transfer Learning)】
- 微信查询四六级成绩代码
- 初中计算机教学进度表,信息技术教学计划范文
- H3CNE-生成树协议(STP)
- 2016.7.31整机升级计划
- 两部苹果手机同步照片_如何将旧苹果手机音乐里面的歌曲同步到新苹果手机上...
- BCAST是什么意思啊