当前位置:   article > 正文

STM32单片机+热敏电阻传感器+OLED屏幕+蜂鸣器报警+热敏电阻数据发送到串口调试助手+源代码_stm32热敏电阻传感器

stm32热敏电阻传感器

目录

一、热敏电阻传感器介绍

二、热敏电阻传感器接线说明

三、测试说明、热敏电阻传感器驱动代码

四、串口调试助手把采集的热敏电阻数据发送出来 

五、串口调试助手软件下载 

六、源代码

七、热敏电阻传感器原理图资料


一、热敏电阻传感器介绍

        热敏电阻传感器是一种依赖于温度变化来改变电阻值的传感器。当温度升高时,热敏电阻的电阻值会下降;当温度降低时,电阻值则会上升。这种特性使得热敏电阻广泛应用于温度测量和控制领域。

        热敏电阻通常由氧化铁、镍、铜、锰等材料制成,其电阻特性可以分为两类:PTC(正温度系数)和NTC(负温度系数)。NTC热敏电阻在温度升高时电阻值下降,而PTC热敏电阻则在温度升高时电阻值上升。

        热敏电阻传感器可以用于测量环境温度、物体表面温度,也可以被应用于温度控制系统中。它们通常与微控制器或模拟电路结合使用,通过测量电阻值的变化来获取温度信息。热敏电阻传感器具有灵敏度高、响应速度快、结构简单等优点,因此在各种应用中得到了广泛的应用。

二、热敏电阻传感器接线说明

VCC(+):电源正极接口,外接电源3 ~ 5V电源正极,接单片机的5v或者3v引脚

GND(-):电源负极接口,外接电源负极或地线GND,接单片机的GND

   AO         :模拟信号输出口,接单片机的PA1采集引脚

三、测试说明、热敏电阻传感器驱动代码

编译环境:keil5

测试单片机: STM32F103C8T6

功能:功能1:设定阈值,超过阈值触发蜂鸣器报警

           功能2:发送数据串到口调试助手上进行显示

RMDZ.c文件编写热敏电阻传感器驱动代码如下:

  1. #include "RMDZ.h"
  2. #include "OLED.h"
  3. #include "FMQ.h"
  4. #include <stdio.h>
  5. #include "Serial.h"
  6. u8 times;
  7. void Adc_Init()
  8. {
  9. GPIO_InitTypeDef GPIO_Initstructre;
  10. ADC_InitTypeDef ADC_InitStruct;
  11. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_ADC1,ENABLE);
  12. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//ʹÄÜio¿Ú
  13. GPIO_Initstructre.GPIO_Mode=GPIO_Mode_AIN;
  14. GPIO_Initstructre.GPIO_Pin=GPIO_Pin_1;
  15. GPIO_Initstructre.GPIO_Speed=GPIO_Speed_50MHz;
  16. GPIO_Init(GPIOA,&GPIO_Initstructre);
  17. GPIO_SetBits(GPIOA,GPIO_Pin_1);//½ÓÏß¿ÚA1
  18. RCC_ADCCLKConfig(RCC_PCLK2_Div6);
  19. ADC_DeInit(ADC1);
  20. ADC_InitStruct.ADC_ContinuousConvMode = DISABLE;
  21. ADC_InitStruct.ADC_DataAlign=ADC_DataAlign_Right;
  22. ADC_InitStruct.ADC_ExternalTrigConv=ADC_ExternalTrigConv_None;
  23. ADC_InitStruct.ADC_Mode=ADC_Mode_Independent;
  24. ADC_InitStruct.ADC_NbrOfChannel = 1;
  25. ADC_InitStruct.ADC_ScanConvMode = DISABLE;
  26. ADC_Init(ADC1,&ADC_InitStruct);
  27. ADC_Cmd(ADC1,ENABLE);
  28. ADC_ResetCalibration(ADC1);
  29. while(ADC_GetResetCalibrationStatus(ADC1));
  30. ADC_StartCalibration(ADC1);
  31. while(ADC_GetCalibrationStatus(ADC1));
  32. }
  33. u16 Get_Adc(u8 ch)
  34. {
  35. ADC_RegularChannelConfig(ADC1,ch,1,ADC_SampleTime_239Cycles5);
  36. ADC_SoftwareStartConvCmd(ADC1,ENABLE);
  37. while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
  38. return ADC_GetConversionValue(ADC1);
  39. }
  40. u16 Get_Adc_Average(u8 ch,u8 times)
  41. {
  42. u32 temp_val=0;
  43. u8 t;
  44. for(t=0;t<times;t++)
  45. {
  46. temp_val+=Get_Adc(ch);
  47. Delay_ms(5);
  48. }
  49. return temp_val/times;
  50. }

RMDZ.h文件,对驱动函数经行了声明:  

  1. #ifndef __RMDZ_H
  2. #define __RMDZ_H
  3. #include "stm32f10x.h" // Device header
  4. #include "Delay.h"
  5. void Adc_Init(void);
  6. u16 Get_Adc(u8 ch);
  7. u16 Get_Adc_Average(u8 ch,u8 times);
  8. #endif

四、串口调试助手把采集的热敏电阻数据发送出来 

printf("热敏电阻= %d ",RMDZ_Value);

 

五、串口调试助手软件下载 

串口调试助手-keil5调试工具资源-CSDN文库

六、源代码

STM32单片机+热敏电阻传感器+OLED屏幕+蜂鸣器报警+热敏电阻数据发送到串口调试助手+源代码资源-CSDN文库

七、热敏电阻传感器原理图资料

热敏电阻传感器原理图、模块资料资源-CSDN文库

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号