关键词:51 stm32 arduino stduino 单片机 stduino UNO&Nano 热敏电阻模块
说明:
热敏电阻按照温度系数不同,可以分为正温度热敏电阻器(PTC)和负温度热敏电阻器(NTC)。
热敏电阻典型特点是对温度敏感,不同的温度下表现出不同的电阻值,因此其两端电压随温度变化。正温度系数热敏电阻器(PTC)在温度越高时电阻值越大,负温度系数热敏电阻器(NTC)在温度越高时电阻值越低。
NTC的电阻随温度的变化,可以利用Steinhart-Hart方程来表示:
注意:T 为热力学温度,单位为开尔文(k);R 为电阻,单位是欧姆(Ω)。 热力学温度与摄氏温度(t,单位为摄氏度,℃)存在这样的关系: t=T +273.15 则可知,当前温度(Tsteinhart)的计算公式在C语言中的表达为: Tsteinhart = 1/(A+B*log(Rth)+C*pow(log(Rth),3))-273.15 这里: T 为绝对温度K(开尔文温度),R 单位是欧姆。 其中系数A\B\C由热敏电阻本身性质决定,本模块采用103电阻(10KΩ),其A\B\C分别为:0.001129148;0.000234125;0.00000008760741。 至于热敏电阻的当前阻值,需要利用欧姆定律来计算。A0测得的是其分压,则有 A0的范围为0~4095,而V总为5V,定值电阻R0为10KΩ,若A0测得数值为RawADC,则R0两端电压为: 则利用欧姆定律可以求得热敏电阻大小为:
实验目的:
利用热敏电阻器,监测环境温度变化。
实验器材:
Stduino Uno/Nano;热敏电阻模块
电路连接:
代码展示: - #include <math.h>
- double Thermister(int RawADC)
- {
- double Temp;
- Temp = log((10240000/RawADC)-10000);
- Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp))* Temp);
- Temp = Temp - 273.15;
- return Temp;
- }
- void setup()
- {
- pinMode(A0,INPUT_ANALOG);
- Serial.begin(9600);
- }
- void loop()
- {
- Serial.print("当前温度:");
- Serial.print(Thermister(analogRead(A0)));
- Serial.println("c");
- delay(500);
- }
复制代码
实验效果:
Stduino IDE是一款面向32位处理器快速入门学习的集成开发平台,目前已经支持Arduino_Core_STM32框架,集聚快捷、高效、免费、开源、易得于一身,软件还集成了GDB调试功能。IDE当前支持的功能有:
GDB调试
封装库下载安装
代码自动补全提示
中英文模式
UTF-8\GBK编码格式
代码快速格式化
SWD\串口程序下载&调试(已验证)
DFU程序下载方式(待验证)
USB HID程序下载方式(待验证)
maple DFU程序下载方式(待验证)
maple DFU2程序下载方式(待验证)
MassStorage程序下载方式(待验证)
更多功能细节请点击图片上水印显示的网址进行了解
已经支持的芯片&板型列表:
Stduino UNO&Nano
Nucleo 144 boards
Nucleo 64 boards
Nucleo 32 boards
Discovery boards
Eval boards
STM32MP1 series coprocessor boards
Generic STM32F0 boards
Generic STM32F1 boards
Generic STM32F3 boards
Generic STM32F4 boards
Generic STM32H7 boards
Generic STM32L0 boards
3D printer boards
LoRa boards
Electronic Speed Controller boards
Generic flight controllers
Garatronics boards
Midatronics boards
更多功能集成正在进行中~
|