资讯详情

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

图1 各种传感器模块

事实上,一些简单的传感器模块使用相同的电路,如光敏模块、热敏模块和红外接收管,使用图2中的电路,即电路中的变化N如果将热敏电阻放置在1的属性中N在位置上,可以形成热敏模块。

图2 内部电路图

引脚及器件说明

VCC:电源正极 3.3V—5V

GND:电源负极

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

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

LED1.电源指示灯

LED2:数字输出指示灯

LM393:作为电压比较器

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

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

一、模拟量输出原理

从图中可以看出,模拟输出口通过网络标签接收R1与热敏电阻中间,此时AO口的电压为

,当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;                               //需要几个通道,非扫描模式只有一个有效,此时此参数无效  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如果是4096,电压为0AO的电压为VCC,所以要准确得到AO还需要增加电压。

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

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

2、数字量输出原理

先介绍一下电压比较器的工作的工作过程LM当393电压比较器时,如果阳极电压大于阴极电压,则输出将使高电平,如果阴极电压大于阳极电压,则输出低电平。

由图2可知,DO是LM其阳极连接到393电压比较器的输出端R1电阻与N在电阻之间,进行比较电压,阴极接到电位器,进行校准电压,因此当阳极电压大于校准电压时,LM393电压比较器DO端口输出高电位,反之亦然DO口本通过电阻连接VCC,所以DO口默认输出高电位,只有当比较电压低于校准电压时,DO此时口才输出低压,LED2灯发光。

灵敏度调节:通过灵敏度调节R当电位器端的电压调整较小时,即电压比较器的阴极电压调整较小时,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上拉输入模式是拉输入模式。

如果你认为这篇文章对你有帮助,给你一点赞美。

标签: 负温度系数热敏电阻式水传感器热敏感应传感器管光敏传感器电源传感器模块8pin电阻传感器mk72

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台