光敏传感器

2024-03-22 00:44
文章标签 传感器 光敏

本文主要是介绍光敏传感器,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、lsens.c

#include "lsens.h"
#include "delay.h"void  Adc3_Init(void)
{    ADC_CommonInitTypeDef ADC_CommonInitStructure;ADC_InitTypeDef       ADC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC3, ENABLE); //使能ADC3时钟RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC3,ENABLE);	  //ADC3复位RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC3,DISABLE);	//复位结束	 ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;//独立模式ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;//两个采样阶段之间的延迟5个时钟ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled; //DMA失能ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div4;//预分频4分频。ADCCLK=PCLK2/4=84/4=21Mhz,ADC时钟最好不要超过36Mhz ADC_CommonInit(&ADC_CommonInitStructure);//初始化ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;//12位模式ADC_InitStructure.ADC_ScanConvMode = DISABLE;//非扫描模式	ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;//关闭连续转换ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;//禁止触发检测,使用软件触发ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;//右对齐	ADC_InitStructure.ADC_NbrOfConversion = 1;//1个转换在规则序列中 也就是只转换规则序列1 ADC_Init(ADC3, &ADC_InitStructure);//ADC初始化ADC_Cmd(ADC3, ENABLE);//开启AD转换器	 
}				  u16 Get_Adc3(u8 ch)   
{//设置指定ADC的规则组通道,一个序列,采样时间ADC_RegularChannelConfig(ADC3, ch, 1, ADC_SampleTime_480Cycles );	//ADC3,ADC通道,480个周期,提高采样时间可以提高精确度			    ADC_SoftwareStartConv(ADC3);		//使能指定的ADC3的软件转换启动功能	while(!ADC_GetFlagStatus(ADC3, ADC_FLAG_EOC ));//等待转换结束return ADC_GetConversionValue(ADC3);	//返回最近一次ADC3规则组的转换结果
}//初始化光敏传感器
void Lsens_Init(void)
{GPIO_InitTypeDef  GPIO_InitStructure;RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能GPIOF时钟//先初始化ADC3通道7IO口GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//PA7 通道7GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;//模拟输入GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//不带上下拉GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化  Adc3_Init();//初始化ADC3
}int Lsens_Get_Val(void)
{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;//得到平均值 return (int)(temp_val);
}

2、lsens.h

#ifndef __LSENS_H
#define __LSENS_H	
#include "sys.h" 
#include "adc3.h" #define LSENS_READ_TIMES	10		//定义光敏传感器读取次数,读这么多次,然后取平均值void Adc3_Init(void); 				//ADC通道初始化
u16  Get_Adc3(u8 ch); 				//获得某个通道值 void Lsens_Init(void); 				//初始化光敏传感器
int Lsens_Get_Val(void);				//读取光敏传感器的值
#endif 

3、main.c

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "lsens.h"int main(void)
{ int adcx;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2delay_init(168);    //初始化延时函数uart_init(115200);	//初始化串口波特率为115200Lsens_Init(); 			//初始化光敏传感器while(1){adcx=Lsens_Get_Val();printf("%d\r\n",adcx);delay_ms(1000);	}
}

这篇关于光敏传感器的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/834191

相关文章

人体红外传感器简介

人体红外传感器的工作原理是利用热释电效应,将人体发出的特定波长的红外线转化为电信号,从而实现对人体的检测和感知。               具体来说,人体红外传感器主要由滤光片、热释电探测元和前置放大器组成。滤光片的作用是使特定波长的红外辐射选择性地通过,到达热释电探测元,而在其截止范围外的红外辐射则不能通过。热释电探测元是传感器的核心元件,当它受到非恒定强度的红外光照射时,会产生

胎压监测方案传感器技术分析

DSH700B 是一款常用于胎压监测方案的传感器,它具有以下一些特点和优势:一、高精度测量 DSH700B 传感器能够实现高精度的胎压和温度测量。它采用先进的传感技术,能够准确地感知轮胎内部的压力变化和温度变化,并将这些数据以准确的数值形式输出。这对于确保胎压监测的准确性至关重要,能够及时发现轮胎气压异常,避免因胎压过高或过低而导致的安全隐患。二、稳定性和可靠性 该传感器在设计上注重稳定性和可靠性

KEYSIGHT U2020 X系列 USB峰值和均值功率传感器

​ _是德(KEYSIGHT) _ U2020 X系列  USB峰值和均值功率传感器 苏州新利通仪器仪表 U2020 X 系列功率传感器得到 Keysight BenchVue 软件的支持。使用 BenchVue 软件,您无需编程便可轻松控制功率计记录数据,并以各种形式显示测量结果。 只需将传感器连接至安装了 BenchVue BV0007B 功率计/传感器控制与分析软件的计算

土壤湿度传感器工作原理

土壤湿度传感器工作原理是通过测量土壤的介电常数、电阻、电容等物理参数来确定土壤的湿度。                                                                常见的土壤湿度传感器工作原理有以下几种: 频域反射原理(FDR):通过测量电磁波在土壤中传播的频率来确定土壤的介电常数,从而计算出土壤的湿度。 时域反射原理(TDR):

触摸传感器的工作原理

触摸传感器的工作原理因类型而异,常见的触摸传感器类型包括电容式、电阻式、红外式和超声波式等。以下是一些常见触摸传感器的工作原理: 电容式触摸传感器:通过检测触摸点与传感器电极之间的电容变化来确定触摸位置。当手指触摸屏幕时,会改变电极之间的电容,从而被传感器检测到。  电阻式触摸传感器:由两层导电材料组成,中间有微小的间隔。当手指触摸屏幕时,两层导电材料会接触,从而改变电阻值,被传

光电红外传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.原理图  2.引脚描述 三、程序设计 main.c文件 HW.h文件 HW.c文件 四、实验效果  五、资料获取 项目分享 一、介绍         光电传感器对环境光线适应能力强,其具有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,指

传感器模块查询表

包含内容:原理图 驱动代码 关注不迷路,需求快查询 时间传感器模块2024.09.01HX711称重模块

SPR系列单点激光雷达测距传感器|模组之CAN-OPEN软件调试说明

SPR系列单点激光雷达测距传感器|模组利用激光束的时间飞行原理来测量距离。它们发射出一个脉冲激光,并测量激光从传感器发射到击中物体并返回的时间来计算距离。 SPR系列单点激光雷达测距传感器|模组在测量精度要求较高的应用中常被使用,应用范围广泛,可以用于距离测量、障碍物检测、定位导航、环境感知等诸多方面,为自动化、机器人技术和智能系统提供重要的数据支持。 SPR系列单点激光雷达测距传感器|模组,

SPR系列单点激光雷达测距传感器|模组的安装与联机接线方法

SPR系列单点激光雷达测距传感器|模组,支持0-10米测距,产品涵盖SPR0510100、​SPR0510100、SPR05201、SPR0510100、​ SPR0530100、SPR0550100、SPR0560100、 SPR1010100、SPR1020100、SPR1030100、SPR1050100、SPR1060100 等型号。 SPR系列单点激光雷达测距传感器|模组利用激光束的时

《ZigBee开发笔记》第五部分 外设篇 - 基础实验 第3章 A - CC2530 MQ-2气体传感器

1理论分析 MQ- 2 气体传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。MQ-2 气体传感器对液化气、丙烷、氢气的灵敏度高,对天然气和其它可燃蒸汽的检测也很理想。这种传感器可检测多种可燃性气体,是一款适合多种应用的低成本传