
【单片机笔记】详解如何用廉价NTC电阻准确高效的测量温度(附源码)
NTC????????NTC???ADC???ADC???????????? NTC????????NTC???ADC???ADC????????????
发布日期:2021-05-07 20:18:01
浏览次数:31
分类:精选文章
本文共 5560 字,大约阅读时间需要 18 分钟。
??????????????????????????????????????????????????????????????NTC-MF52AT 10K 5%???????????????????????????
??????????
????NTC-MF52AT??????????????
- ???5%
- ???10K?
- B??3950
- ?????
NTC??????????????????????????????????????NTC????????????????????????????????????
??????ADC???
???????NTC???????ADC????????????NTC?????????????????
???ADC???????????????????????????????????????????????????ADC??
??????
??NTC?????????ADC?????????????????
- ?NTC?????? [ \text{??} = \frac{\text{ADC?} - \text{???}}{\text{?????}} + \text{????} ]
- ?NTC?????? [ \text{??} = \frac{\text{???} - \text{ADC?}}{\text{?????}} + \text{????} ]
C????
????????????C?????
#ifndef __FY_NTC_H#define __FY_NTC_H#include "fy_includes.h"#define NTC_UP // NTC????s16 NtcGetTemp(u16 adc);#endif
#include "fy_ntc.h"#define NTC_R 10 // ???????K#define ADC_MAX 4095.0 // 12?ADC???#if NTC_UP#define NTC_ADC(ntc) ((u16)((NTC_R * ADC_MAX) / (ntc + NTC_R))) // NTC??????ADC???#else#define NTC_ADC(ntc) ((u16)((ntc * ADC_MAX) / (ntc + NTC_R))) // NTC??????ADC???#endif// ??-ADC????const unsigned int ntcData[] = { NTC_ADC(190.5562), // -40? NTC_ADC(183.4132), // -30? NTC_ADC(175.6740), // -20? NTC_ADC(167.6467), // -10? NTC_ADC(159.5647), // 0? NTC_ADC(151.5975), // 10? NTC_ADC(143.8624), // 20? NTC_ADC(136.4361), // 30? NTC_ADC(129.3641), // 40? NTC_ADC(122.6678), // 50? NTC_ADC(116.3519), // 60? NTC_ADC(110.4098), // 70? NTC_ADC(104.8272), // 80? NTC_ADC(99.5847), // 90? NTC_ADC(94.6608), // 100? NTC_ADC(90.0326), // 110? NTC_ADC(85.6778), // 120? NTC_ADC(81.5747), // 130? NTC_ADC(77.7031), // 140? NTC_ADC(74.0442), // 150? NTC_ADC(70.5811), // 160? NTC_ADC(67.2987), // 170? NTC_ADC(64.1834), // 180? NTC_ADC(61.2233), // 190? NTC_ADC(58.4080), // 200? NTC_ADC(55.7284), // 210? NTC_ADC(53.1766), // 220? NTC_ADC(50.7456), // 230? NTC_ADC(48.4294), // 240? NTC_ADC(46.2224), // 250? NTC_ADC(44.1201), // 260? NTC_ADC(42.1180), // 270? NTC_ADC(40.2121), // 280? NTC_ADC(38.3988), // 290? NTC_ADC(36.6746), // 300? NTC_ADC(35.0362), // 310? NTC_ADC(33.4802), // 320? NTC_ADC(32.0035), // 330? NTC_ADC(30.6028), // 340? NTC_ADC(29.2750), // 350? NTC_ADC(28.0170), // 360? NTC_ADC(26.8255), // 370? NTC_ADC(25.6972), // 380? NTC_ADC(24.6290), // 390? NTC_ADC(23.6176), // 400? NTC_ADC(22.6597), // 410? NTC_ADC(21.7522), // 420? NTC_ADC(20.8916), // 430? NTC_ADC(20.0749), // 440? NTC_ADC(19.2988), // 450? NTC_ADC(18.5600), // 460? NTC_ADC(18.4818), // 470? NTC_ADC(18.1489), // 480? NTC_ADC(17.6316), // 490? NTC_ADC(16.9917), // 500? NTC_ADC(16.2797), // 510? NTC_ADC(15.5350), // 520? NTC_ADC(14.7867), // 530? NTC_ADC(14.0551), // 540? NTC_ADC(13.3536), // 550? NTC_ADC(12.6900), // 560? NTC_ADC(12.0684), // 570? NTC_ADC(11.4900), // 580? NTC_ADC(10.9539), // 590? NTC_ADC(10.4582), // 600? NTC_ADC(10.0000), // 610? NTC_ADC(9.5762), // 620? NTC_ADC(9.1835), // 630? NTC_ADC(8.8186), // 640? NTC_ADC(8.4784), // 650? NTC_ADC(8.1600), // 660? NTC_ADC(7.8608), // 670? NTC_ADC(7.5785), // 680? NTC_ADC(7.3109), // 690? NTC_ADC(7.0564), // 700? NTC_ADC(6.8133), // 710? NTC_ADC(6.5806), // 720? NTC_ADC(6.3570), // 730? NTC_ADC(6.1418), // 740? NTC_ADC(5.9343), // 750? NTC_ADC(5.7340), // 760? NTC_ADC(5.5405), // 770? NTC_ADC(5.3534), // 780? NTC_ADC(5.1725), // 790? NTC_ADC(4.9976), // 800? NTC_ADC(4.8286), // 810? NTC_ADC(4.6652), // 820? NTC_ADC(4.5073), // 830? NTC_ADC(4.3548), // 840? NTC_ADC(4.2075), // 850? NTC_ADC(4.0650), // 860? NTC_ADC(3.9271), // 870? NTC_ADC(3.7936), // 880? NTC_ADC(3.6639), // 890? NTC_ADC(3.5377), // 900? NTC_ADC(3.4146), // 910? NTC_ADC(3.2939), // 920? NTC_ADC(3.1752), // 930? NTC_ADC(3.0579), // 940? NTC_ADC(2.9414), // 950? NTC_ADC(2.8250), // 960? NTC_ADC(2.7762), // 970? NTC_ADC(2.7179), // 980? NTC_ADC(2.6523), // 990? NTC_ADC(2.5817), // 1000?};// ??????s16 NtcGetTemp(u16 adc){ u16 i; s16 tp; if (NTC_UP) { // NTC???? for (i = 0; i < 151; i++) { if (adc < ntcData[i]) { break; } } if (i == 0) { tp = -4000; // ???? } else if (i == 151) { tp = 1100; // ???? } else { tp = (adc - ntcData[i - 1]) * 10 / (ntcData[i] - ntcData[i - 1]) + (i - 40 - 1) * 10; } } else { // NTC???? for (i = 0; i < 151; i++) { if (adc > ntcData[i]) { break; } } if (i == 0) { tp = -4000; // ???? } else if (i == 151) { tp = 1100; // ???? } else { tp = (ntcData[i - 1] - adc) * 10 / (ntcData[i] - ntcData[i - 1]) + (i - 40 - 1) * 10; } } return tp;}#endif
????
// Adc_Value ?ADC?????// temp???????xxx.x?float temp = 0.1f * NtcGetTemp(Adc_Value);
??
?????????????NTC-MF52AT????????????????????????????????
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年05月01日 08时45分38秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Mac搭建appium环境
2025-04-11
Mac搭建Cocos2d-x 3.x android打包环境
2025-04-11
mac更新后 homestead 无法使用
2025-04-11
Mac环境下安装Redis
2025-04-11
mac环境安装docker
2025-04-11
Mac环境安装ElasticSearch
2025-04-11
Mac环境安装ElasticSearch-head
2025-04-11
Mac环境安装Kibana
2025-04-11
MAC生成公钥私钥、PKCS1 转 PKCS8
2025-04-11
Mac电脑 如何合并相同名称的文件夹(不用替换)
2025-04-11
Mac电脑怎么读写不了移动硬盘?解决苹果电脑不能读写移动硬盘问题
2025-04-11
Mac电脑生成git的公私钥(拉取代码更便捷)
2025-04-11
mac电脑遇到choose startup disk
2025-04-11
mac的safari浏览器调试h5
2025-04-11
mac破解软件安装后无法打开解决方案(MacOS10.15之后亲测有效)
2025-04-11
MAC解决端口号被占用
2025-04-11
Mac设置crontab
2025-04-11
Mac进入home目录、根目录的方法
2025-04-11
mac配置自定义域名
2025-04-11