传感器模块(光敏电阻/热敏电阻/红外接收管等)介绍及使用

图1 各式传感器模块

其实一些简单的传感器模块使用的都是同一个电路,就比如光敏模块、热敏模块以及红外接收管等,用的都是图2的电路,改变的也就是电路中N1的属性,如果将热敏电阻放到N1位置上,那么就可以组成一个热敏模块。

图2 内部电路图

引脚和器件说明

VCC:电源正极 3.3V—5V

GND:电源负极

DO(Digital Output):数字量输出接口

AO(Analog Output):模拟量输出接口

LED1:电源指示灯

LED2:数字量输出指示灯

LM393:在此用作电压比较器

R2:电位器(用于调节模块的灵敏度)

电路原理(以NTC热敏模块为例)

1,模拟量输出原理

由图可知,模拟输出口通过网路标签接到了R1与热敏电阻中间,此时AO口的电压为

U=(VCC-GND)R_n1/(R_n1+R1),当NTC热敏电阻( NTC是英文Negative Temperature Coefficient的缩写。 其含义为负温度系数 。它的电阻值随温度的升高而降低。)的温度上升后,其阻值将会下降,因此热敏电阻分的电压会降低,AO口的电压也随之降低,同理可得,当热敏电阻的温度降低后,AO口的电压将会上升,其赋值将在VCC至GND之间变化。

下面给大家在STM32下接受AO口模拟量的代码

void AD_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);              //开启时钟
	
	RCC_ADCCLKConfig(RCC_PCLK2_Div6);                       //ADC分频器(CLOCK信号),72MHz/6=12MHz
		
	GPIO_InitTypeDef GPIO_InitStruture;
	GPIO_InitStruture.GPIO_Mode = GPIO_Mode_AIN;
	GPIO_InitStruture.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStruture.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStruture);                    //配置模拟数据输入通道
	
	ADC_RegularChannelConfig(ADC1, ADC_Channel_0, 1, ADC_SampleTime_55Cycles5);    //配置多路开关
	
	ADC_InitTypeDef ADC_InitStruture;
	ADC_InitStruture.ADC_Mode = ADC_Mode_Independent;                    //模数转换方式,ADC_Mode_Independent(独立模式):ADC1与ADC2互不干扰
	ADC_InitStruture.ADC_DataAlign = ADC_DataAlign_Right;                //数据对齐方式
	ADC_InitStruture.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;   //触发源选择,ADC_ExternalTrigConv_None(内部软件触发)
	ADC_InitStruture.ADC_ContinuousConvMode = DISABLE;                   //连续转换模式选择,DISABLE(单次转换)
	ADC_InitStruture.ADC_ScanConvMode = DISABLE;                         //扫描模式选择,DISABLE(非扫描模式)
	ADC_InitStruture.ADC_NbrOfChannel = 1;                               //需要几个通道,非扫描模式只有1位有效,此时此参数无效
	ADC_Init(ADC1,&ADC_InitStruture);
	
	ADC_Cmd(ADC1,ENABLE);                                  //开关控制
	
	ADC_ResetCalibration(ADC1);
	while((ADC_GetResetCalibrationStatus(ADC1)) == SET);    //复位校准
	ADC_StartCalibration(ADC1);
	while(ADC_GetCalibrationStatus(ADC1) == SET);           //开始校准
}

uint16_t AD_GetValue(void)
{
	ADC_SoftwareStartConvCmd(ADC1, ENABLE);                //软件触发
	while(ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); //检测标志位
	return ADC_GetConversionValue(ADC1);                   //AD转换后得到的数值:0-4096
}

 只要不断调用uint16_t AD_GetValue(void)函数,就可以接受到AO口的模拟量的值,但是这个函数返回的数值是一个整数,其数值变化范围为0—4096,如果返回为0,则代表AO的电压为0,如果为4096,则代表AO的电压为VCC,所以想要精确得到AO的电压,还需加上。

ADValue = AD_GetValue();
Voltage = (float)ADValue / 4095 * VCC;      //VCC需自己定义

此时Voltage就为AO口的模拟电压值。

 2、数字量输出原理

先给大家介绍一下,电压比较器工作过程,当用LM393电压比较器时,如果阳极电压大于阴极电压,那么输出将会使高电平,如果阴极电压大于阳极电压,将会输出低电平。

由图2可知,DO是LM393电压比较器的输出端,其阳极连接到了R1电阻与N1电阻之间,作被比较电压,而阴极接到了一个电位器上,作校准电压,所以当阳极的电压大于校准电压时,LM393电压比较器DO端口输出高电位,反之亦然,但是DO口本就通过电阻连接VCC,所以DO口默认输出高电位,只有当被比较电压低于校准电压时,DO口才输出低电压,此时LED2灯发光。

灵敏度调节:灵敏度调节是通过R2电位器进行调节的,当电位器端的电压调的较小时,也就是电压比较器的阴极电压比较小时,NTC热敏电阻将需要承受更高的温度,才能使阳极电压小于阴极电压,从而输出低电位。

下面给大家在STM32下接受DO口数字量的代码

void LightSensor_Init(void)
{
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);          //开启时钟
	
	GPIO_InitTypeDef GPIO_InitStruture;
	GPIO_InitStruture.GPIO_Mode = GPIO_Mode_IPU;                  //上拉输入模式
	GPIO_InitStruture.GPIO_Pin = GPIO_Pin_13;
	GPIO_InitStruture.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStruture); 
}

uint8_t LightSensor_Get(void)
{
	return GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_13);             //读取端口电平
}

 调用uint8_t LightSensor_Get(void)函数,将返回端口的值,高电位时返回1,低电位返回0.

在这里提醒一下,因为DO口默认为高电位,因此读取时,设置IO端口为上拉输入模式是最好的。

要是觉得文章对你有帮助,那就给一个小小的赞吧。

 

  • 7
    点赞
  • 77
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CCD(Charge Coupled Device)全称为电荷耦合器件,是70年代发展起来的新型半导体器件。它是在MOS集成电路技术基础上发展起来的,为半导体技术应用开拓了新的领域。它具有光电转换、信息存贮和传输等功能,具有集成度高、功耗小、结构简单、寿命长、性能稳定等优点,故在固体图像传感器、信息存贮和处理等方面得到了广泛的应用。CCD图像传感器能实现信息的获取、转换和视觉功能的扩展,能给出直观、真实、多层次的内容丰富的可视图像信息,被广泛应用于军事、天文、医疗、广播、电视、传真通信以及工业检测和自动控制系统。实验室用的数码相机、光学多道分析器等仪器,都用了CCD作图象探测元件。   一个完整的CCD器件由光敏单元、转移栅、移位寄存器及一些辅助输入、输出电路组成。CCD工作时,在设定的积分时间内由光敏单元对光信号进行取样,将光的强弱转换为各光敏单元的电荷多少。取样结束后各光敏元电荷由转移栅转移到移位寄存器的相应单元中。移位寄存器在驱动时钟的作用下,将信号电荷顺次转移到输出端。将输出信号接到示波器、图象显示器或其它信号存储、处理设备中,就可对信号再现或进行存储处理。由于CCD光敏元可做得很小(约10um),所以它的图象分辨率很高。     一.CCD的MOS结构及存贮电荷原理   CCD的基本单元是MOS电容器,这种电容器能存贮电荷,其结构如图1所示。以P型硅为例,在P型硅衬底上通过氧化在表面形成Si02层,然后在Si02上淀积一层金属为栅极,P型硅里的多数载流子是带正电荷的空穴,少数载流子是带负电荷的电子,当金属极上施加正电压时,其电场能够透过Si0.绝缘层对这些载流子进行排斥或吸引。于是带正电的空穴被排斥到远离电极处,剩下的带负电的少数载流子在紧靠Si0.层形成负电荷层(耗尽层),电子一旦进入由于电场作用就不能复出,故又称为电子势阱。   当器件受到光照时(光可从各电极的缝隙间经过Si0.层射入,或经衬底的薄P型硅射入),光子的能量被半导体吸收,产生电子-空穴对,这时出现的电子被吸引存贮在势阱中,这些电子是可以传导的。光越强,势阱中收集的电子越多,光弱则反之,这样就把光的强弱变成电荷的数量,实现了光与电的转换,而势阱中收集的电子处于存贮状态,即使停止光照一定时间内也不会损失,这就实现了对光照的记忆。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值