RC充放电实现温度测量.doc

RC充放电实现温度测量.doc

ID:58885679

大小:375.00 KB

页数:8页

时间:2020-09-19

RC充放电实现温度测量.doc_第1页
RC充放电实现温度测量.doc_第2页
RC充放电实现温度测量.doc_第3页
RC充放电实现温度测量.doc_第4页
RC充放电实现温度测量.doc_第5页
资源描述:

《RC充放电实现温度测量.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.RC充放电实现温度测量作者:宋海平中国海洋大学2013年3月一提到温度测量,我们通常往往都会想到AD采样,但是在一些对测量精度要求不是很高的场合,我们是不是可以换一种思路,抛弃AD,用其他的方式来实现呢,呵呵,正好接触到一个项目,所以打算挑战一下,没错,就是RC充放电来实现温度测量。先看一下基本的电路连接:0(原文件名:RC0.PNG)图O:cpu拿出三个GPIO管脚,分别连接热敏电阻、100K高精电阻R1、泄流电阻R2,然后通过一只电容器连接到GND。在这里电容器可以理解成一只小电池,而且还是一只

2、可充电电池。....1(原文件名:RC1.PNG)图1:将RT设置成高阻太(输入),这样热敏电阻相当于断开(虚线),R1设置成输出,泄流电阻R2设置成输出,如果cpu部有上拉的话,最好打开,或者配置成强推挽,具体情况根据所选则的cpu而定。这样R2给电容器充电,程序中一直检测R1管脚,直到R1管脚为高while(R1==1);其实电容器被不一定被充满电,只要满足R1管脚处的电平对于cpu来说是个高电平就足以。....2(原文件名:RC2.PNG)图2:保持RT继续高阻(断开),将R1设置成输出,输出0

3、(低电平),R2设置成输入,此时电容通过100K高精度电阻进行放电,程序中一直检测R2管脚,直到R2管脚为低电平while(R2==0);记录时间T1,T1就是电容器通过100k电阻放电所需要的时间。图3:过程跟图一是一模一样的,给电容器充电(不一定充满),原因你懂的;....3(原文件名:RC3.PNG)4(原文件名:RC4.PNG)....图4:将R1设置成高阻(断开),RT设置成输出,并且输出低电平,将R2设置成输出;此时电容器通过RT进行放电,程序中一直检测R2管脚,直到R2管脚为低电平whi

4、le(R2==0);记录时间T2,T2就是电容器通过100k电阻放电所需要的时间。到此,我们就可以算出热敏电阻RT的阻值了:6(原文件名:RC6.PNG)001    /**002      *中国海洋大学003      *宋海平004      *温度采集005      *参考电阻为100K006      *param007      *          unsignedcharchannel:采集哪个通道的温度  008      *          NTP_OUTSIDE:温控器外部温

5、度探头009      *          NTP_INSIDE:温控器部探头010      *return011      *          ERROR_NTP_PARA_ERROR:参数错误012      *       ....   ERROR_NTP_LOST_ERROR:温度探头丢失013      *          非负:采集到的温度值014      *015      *brief016      *          中国海洋大学宋海平     017      */0

6、18      019      020    #defineNTP_CHECK(1)021    shortntp_100k_get_temperature(unsignedcharchannel){022        doublex,y,z;023        unsignedlongtemperature_cnt_a,temperature_cnt_b;024        unsignedchartmp;025      026        if(channel==NTP_INSIDE)

7、{027          SET_P2(7,IO_PORT_TRI_IN);//参考电阻输入028          SET_P2(6,IO_PORT_PULL_OUT);//泄流电阻输出029          SET_P4(4,IO_PORT_TRI_IN);//热敏电阻输入030      031          RFL0=0;//泄流电阻输出0032          while(RE0);  //一直等到电容空033          034          RFL0=1;//泄流电阻

8、输出1035          while(!RE0);    //一直等到电容满036      037          SET_P2(7,IO_PORT_NO_PULL_IO);//参考电阻输出038          SET_P2(6,IO_PORT_TRI_IN);//泄流电阻输入039          SET_P4(4,IO_PORT_TRI_IN);//热敏电阻输入040        041          RE0=0;//参考电阻输

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。