赞
踩
目录
热敏电阻传感器是一种依赖于温度变化来改变电阻值的传感器。当温度升高时,热敏电阻的电阻值会下降;当温度降低时,电阻值则会上升。这种特性使得热敏电阻广泛应用于温度测量和控制领域。
热敏电阻通常由氧化铁、镍、铜、锰等材料制成,其电阻特性可以分为两类:PTC(正温度系数)和NTC(负温度系数)。NTC热敏电阻在温度升高时电阻值下降,而PTC热敏电阻则在温度升高时电阻值上升。
热敏电阻传感器可以用于测量环境温度、物体表面温度,也可以被应用于温度控制系统中。它们通常与微控制器或模拟电路结合使用,通过测量电阻值的变化来获取温度信息。热敏电阻传感器具有灵敏度高、响应速度快、结构简单等优点,因此在各种应用中得到了广泛的应用。
VCC(+):电源正极接口,外接电源3 ~ 5V电源正极,接单片机的5v或者3v引脚
GND(-):电源负极接口,外接电源负极或地线GND,接单片机的GND
AO :模拟信号输出口,接单片机的PA1采集引脚
编译环境:keil5
测试单片机: STM32F103C8T6
功能:功能1:设定阈值,超过阈值触发蜂鸣器报警
功能2:发送数据串到口调试助手上进行显示
RMDZ.c文件编写热敏电阻传感器驱动代码如下:
- #include "RMDZ.h"
- #include "OLED.h"
- #include "FMQ.h"
- #include <stdio.h>
- #include "Serial.h"
- u8 times;
- void Adc_Init()
- {
- GPIO_InitTypeDef GPIO_Initstructre;
- ADC_InitTypeDef ADC_InitStruct;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1,ENABLE);
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//ʹÄÜio¿Ú
- GPIO_Initstructre.GPIO_Mode=GPIO_Mode_AIN;
- GPIO_Initstructre.GPIO_Pin=GPIO_Pin_1;
- GPIO_Initstructre.GPIO_Speed=GPIO_Speed_50MHz;
- GPIO_Init(GPIOA,&GPIO_Initstructre);
- GPIO_SetBits(GPIOA,GPIO_Pin_1);//½ÓÏß¿ÚA1
-
- RCC_ADCCLKConfig(RCC_PCLK2_Div6);
- ADC_DeInit(ADC1);
- ADC_InitStruct.ADC_ContinuousConvMode = DISABLE;
- ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right;
- ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;
- ADC_InitStruct.ADC_Mode=ADC_Mode_Independent;
- ADC_InitStruct.ADC_NbrOfChannel = 1;
- ADC_InitStruct.ADC_ScanConvMode = DISABLE;
- ADC_Init(ADC1,&ADC_InitStruct);
- ADC_Cmd(ADC1,ENABLE);
- ADC_ResetCalibration(ADC1);
-
- while(ADC_GetResetCalibrationStatus(ADC1));
-
- ADC_StartCalibration(ADC1);
-
- while(ADC_GetCalibrationStatus(ADC1));
- }
-
- u16 Get_Adc(u8 ch)
- {
- ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);
-
- ADC_SoftwareStartConvCmd(ADC1,ENABLE);
-
- while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
-
- return ADC_GetConversionValue(ADC1);
-
- }
-
-
- u16 Get_Adc_Average(u8 ch,u8 times)
- {
- u32 temp_val=0;
- u8 t;
- for(t=0;t<times;t++)
- {
- temp_val+=Get_Adc(ch);
- Delay_ms(5);
- }
- return temp_val/times;
-
- }
-
RMDZ.h文件,对驱动函数经行了声明:
- #ifndef __RMDZ_H
- #define __RMDZ_H
- #include "stm32f10x.h" // Device header
- #include "Delay.h"
- void Adc_Init(void);
- u16 Get_Adc(u8 ch);
- u16 Get_Adc_Average(u8 ch,u8 times);
-
-
- #endif
-
printf("热敏电阻= %d ",RMDZ_Value);
STM32单片机+热敏电阻传感器+OLED屏幕+蜂鸣器报警+热敏电阻数据发送到串口调试助手+源代码资源-CSDN文库
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。