STM32——光敏传感器实验-M4
一、光敏传感器原理
1、光敏传感器简介
光敏传感器是最常见的传感器之一,它的种类繁多,主要有:光电管、光电倍增管、光敏电阻、光敏三极管、太阳能电池、红外线传感器、紫外线传感器、光纤式光电传感器、色彩传感器、CCD和CMOS图像传感器等。光电传感器是目前产量最多、应用最广的传感器之一,它在自动控制和非电量电测计数中占有非常重要的地位。光敏传感器是利用光敏元件将光信号转换为电信号的传感器,它的敏感波长在可见光波长附近,包括红外线波长和紫外线波长。光传感器不知局限于对光的探测,它还可以作为探测元件组成其它传感器,对许多非电量进行检测,只要将这些非电量转换为光信号的变化即可。
光敏二极管也叫光电二极管。光敏二极管与半导体二极管在结构上是类似的,其管芯是一个具有光敏特征的PN结,具有单向导电性,因此工作时需加上反向电压。无光照时,有很小的饱和反向漏电流,即暗电流,此时光敏二极管截止。当受到光照时,饱和反向漏电流大大增加,形成光电流,它随入射光强度的变化而变化。当光线照射PN结时,可以使PN结中产生电子一空穴对,使少数载流电子的密度增加。这些载流子在反向电压下漂移,使反向电流增加。因此可以利用光照强弱来改变电路中的电流。
简而言之:照射光敏二极管的光强不同,通过光敏二级管的电流大小就不同,所以可以通过检测电流大小,达到检测光强的目的。
利用这个电流变化,我们串联一个电阻,就可以转换成电压的变化,从而通过ADC读取电压值,判断外部光线的强弱。
探索者STM32F407板载了一个光敏二极管(光敏电阻),作为光敏传感器,它对光的变化十分敏感。
2、硬件连接
LS1即为光敏二极管。光敏二极管一端接地,另一端接电阻再接到高电平。当无光照射时,光敏二极管与电阻的接点处电压与高电平VCC3.3相同;当有光照射时,二极管产生电流,会分一部分电压,二极管与电阻的接点处电压降低。可以检测该接点的电压变化来检测光照强弱。图中将接点处引出并接一个电阻,再连接PF7对应ADC3(通道5)。因此可以通过ADC测量通道5的电压得到光照的强弱。
二、实验(通过ADC3_CH5来检测光敏二极管一端的电压变化来达到检测光强的目的)
为巩固基础代码,这里将再写一遍ADC的配置代码:
void Adc3_Init(void)
{GPIO_InitTypeDef GPIO_InitABC;ADC_CommonlnitTypeDef ADC_CommonlnitInitABC;ADC_InitTypeDef ADC_InitABC;RCC_AHB1PeriphColckCmd(RCC_AHB1Periph_GPIOF,ENABLE);//使能GPIOF时钟RCC_APB2PeriphhClockCmd(RCC_APB2Periph_ADC3,ENABLE);//使能ADC3时钟RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC3,ENABLE);//ADC3复位RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC3,DISABLE);//复位结束GPIO_InitABC.GPIO_Pin=GPIO_Pin_7;//PF7,通道5GPIO_InitABC.GPIO_Mode=GPIO_Mode_AN;//模拟输入GPIO_InitABC.GPIO_PuPd=GPIO_PuPd-NOPULL;//不带上下拉GPIO_Init(GPIOF,&GPIO_InitABC);ADC_CommonlnitABC.ADC_Mode=ADC_Mode_Independent;//独立模式ADC_CommonlnitABC.ADC_TwoSamplingDelay=ADC_DMA_TwoSamplingDelay_5Cycles;//两个采样阶段之间的延迟5个周期ADC_CommonlnitABC.ADC_DMAAccessMode=ADC_DAMAccessMode_Disable;//DMA失能ADC_COmmonlnitABC.ADC_Prescaler=ADC_Prescaler_Div4;//预分频4,注意分频后不能超过36MADC_Commonlnit(&ADC_CommonlnitABC);ADC_InitABC.ADC_Resolution=ADC_Resolution_12b;//12位分辨率模式ADC_InitABC.ADC_ScanConvMode=DISABLE;//非扫描模式ADC_InitABC.ADC_ContinousConvMode=DISABLE;//关闭连续转换ADC_InitABC.ADC_ExternalTrigCovEdge=ADC_ExternalTrigConvEdge_None;//禁止触发检测,使用软件触发ADC_InitABC.ADC_DataAlign=ADC_DataAlign_Right;//右对齐ADC_InitABC.ADC_NbrOfConversion=1;//1个转换在规则序列中ADC_Init(ADC3,&ADC_InitABC);ADC_Cmd(ADC3,ENABLE);//开启ADC转换器
}
读取ADC3的值:
u16 Get_Adc3(u8 ch)
{ADC_RegualrChannelConfig(ADC3,ch,1,ADC_SampleTime_480Cycles);//ADC3,ADC通道,480个周期,提高采样时间提高精确度ADC_SofewareStartConv(ADC3);//使能指定的ADC3的软件转换启动器while(!ADC_GetFlagStatus(ADC3,ADC_FLAG_EOC));//等待转换结束return ADC_GetConversionValue(ADC3);//返回最近一次ADC3规则组的转换结果
}
读取ADC值,转换成相应的光强:
u8 Lsense_Get_Val(void)//0~100:0最暗,100最亮
{u32 temp_val=0;u8 t;for(t=0;t<LSENS_READ_TIMES;t++){temp_val+=Get_Adc3(ADC_Channel_5);//读取ADC值,通道5delay_ms(5);}temp_val/=LSENS_READ_TIMES;//得到平均值if(temp_val>4000) temp_val=4000;return (u8)(100-(temp_val/40));
}
//LSENS_READ_TIMES 10
最暗的时候接点处电压最高,最亮的时候接点处电压最低。
主函数调用Lsens_Init()即可。然后将获得的值显示在液晶屏上就可以了。
光敏传感器的用处:可以用光敏传感器控制液晶的背光。类似于手机自动调节屏幕亮度。
STM32——光敏传感器实验-M4相关推荐
- (27)STM32——光敏传感器实验笔记
目录 学习目标 运行结果 内容 介绍 配置 代码 总结 学习目标 我们这篇文章介绍的是有关光敏传感器的知识点,本节内容比较简单,主要的知识还是我们的ADC,而且我们在51单片机也介绍过相应的知识,感兴 ...
- STM32光敏传感器实验
本章所要实现的功能是:通过 ADC3 通道 6 采集光敏传感器的 AD 值,并将该 值转换为光照强度值 0-100,0 对应最暗,100 对应最亮,并通过串口 1 输出光 照强度值,DS0 指示灯闪烁 ...
- stm32 adc输入电压范围_正点原子【STM32-F407探索者】第二十五章 光敏传感器实验...
1)资料下载:点击资料即可下载 2)对正点原子Linux感兴趣的同学可以加群讨论:935446741 3)关注正点原子公众号,获取最新资料更新 本章我们将向大家介绍探索者 STM32F4 开发板自带的 ...
- 光敏传感器实验报告_光敏传感器实验论文-大物实验
光敏传感器实验及探究 摘要: 光敏传感器是以光电器件作为转换元件的传感器.它可用于检测光量变化或直 接引起光量变化的非电量, 也可用于检测能转换成光量变化的其他非电量. 它首先把被测量 的变化转换成光 ...
- 内部温度传感器和光敏传感器实验
内部温度传感器 STM32F407 有一个内部的温度传感器,可以用来测量 CPU 及周围的温度(TA).该温度传感器在内部和 ADC1_IN16输入通道相连接,此通道把传感器输出的电压转换成数字值. ...
- STM32学习笔记(六 定时器及应用 4 光敏传感器实验 )
一.光敏传感器简介 光敏传感器是最常见的传感器之一,它的种类繁多,主要有:光电管.光电倍增管.光敏电阻.光敏三极管.太阳能电池.红外线传感器.紫外线传感器.光纤式光电传感器.色彩传感器.CCD 和 C ...
- 光敏传感器实验报告_光敏传感器光电特性测量实验分析报告.ppt
思考题 1.光电效应有哪些分类? 光电效应可以分为外光电效应和内光电效应. 2.光敏电阻的物理基础是什么? 内光电效应. * * 光敏传感器的光电特性测量实验 实验简介 光敏传感器是将光信号转换为电信 ...
- STM32光敏传感器原理
发现很多人都使用光敏电阻,但只是用了AD读取了电压值,或者算出了电阻值,就发送给上位机或者服务器,美其名曰获取了光照度,但其原理并...... 图中的 LS1 就是光敏传感器,其实就是一个光敏二极管, ...
- Arduin光敏传感器实验
相关资料链接 链接:https://pan.baidu.com/s/1eE0rkaSJsKJMU_RUorS5OA 提取码:3ujh 1.1 项目介绍: 光敏传感器它对环境光线最敏感,S输出一个模拟信 ...
最新文章
- 程序员成长的本质,就是一步步靠近商业
- 185页深度报告 扒一扒AI金融的老底【附下载】
- 什么是formal method的invarient
- html 对话框 flatballoon,CSS纯样式实现箭头、对话框等形状
- HBase(2) Java 操作 HBase 教程
- 结组开发项目(TD学生助手)
- SharePoint 2010 中有个新的列表模板“导入电子表格”可以直接导入Excel数据并创建为列表 ....
- python opencv 学习笔记
- python 函数定义位置_PYTHON--函数定义
- WindowsXP、Windows2003本地密码清除方法
- flash声音播放-Sound
- 数模电路基础知识 —— 3. 常见电路符号说明(电容、电阻、电感)
- Windows 2008 Server线程池前瞻(原创)
- android 局域网 发现,局域网内android设备发现及通讯
- VSCode lua插件LuaHelper
- Win10 下使用Telnet命令,打开telnet功能
- 一次当晋级评委的经历
- “外卖”----隐形非物质文化遗产
- i58400升级可以换什么cpu_为什么明星经常换发型发质还那么好?只要学会这一点,你也可以...
- python 移动一个文件或目录