找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5881|回复: 9
打印 上一主题 下一主题
收起左侧

热电阻PT10 PT100 Cu50 Cu100电阻转温度程序

  [复制链接]
跳转到指定楼层
楼主
ID:54731 发表于 2015-1-27 12:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
热电阻PT10 PT100 Cu50 Cu100电阻转温度程序
/*******************************************************************************
*函数描述:PT10&PT100 Cu50&Cu100 热阻转温度
*输入变量:R 热阻阻值
          type热电阻类型 0 PT10
                                 1 PT100
                                 2 Cu50
                                 3 Cu100
*返回变量:float T 温度
*******************************************************************************/
float RtoT(float R, uchar type)
{
        uchar R0;  // 热电阻0度时阻值
        float T, tmp, min, mid, max;
        float x, y, z;
        float d = 3.9083/1e3, b = -5.775/1e7, c = -4.183/1e12;

        if(type <= 1)
        {
                if(type == 0)
                {
                        R0 = 10; min = 1.852; mid = 10; max = 39.049;  // Pt10
                }
                else
        {
                        R0 = 100; min = 18.52; mid = 100; max = 390.49; // Pt100
            }
                if(R>=mid && R<=max)
                {
                        y = sqrt(d*d - 4*b*(1-R/R0));
                        T = (y-d) / (2*b);  // 得出温度
                }
                else if(R<mid && R>=min)
                {
                        x = 0; y = -100; z = -201;
                        tmp = R0*(1 + d*y + b*y*y + c*(y-100)*y*y*y);
                        while(fabs(tmp-R)>=0.007)
                        {
                                if(R > tmp)
                                {
                                        x = x; z = y;
                                        y = (x+y)/2;
                                }
                                else
                                {
                                        x = y; z = z;
                                        y = (y+z)/2;
                                }
                                tmp = R0*(1 + d*y + b*y*y + c*(y-100)*y*y*y);
                        }
                        T = y;  // 得出温度
                }
        }
        else
        {
                if(type == 2)  // Cu50
                        R0 = 50;
                else           // Cu100
                        R0 = 100;

                x = 150; y = 50; z = -50;
                tmp = R0*(1 + 4.289/1e3*y - 2.133/1e7*y*y + 1.233/1e9*y*y*y);
                while(fabs(tmp-R)>=0.007)
                {
                        if(R > tmp)
                        {
                                x = x; z = y;
                                y = (x+y)/2;
                        }
                        else
                        {
                                x = y; z = z;
                                y = (y+z)/2;
                        }
                        tmp = R0*(1 + 4.28899/1e3*y - 2.133/1e7*y*y + 1.233/1e9*y*y*y);
                }
                T = y;
        }

        return T;
}

评分

参与人数 2黑币 +55 收起 理由
loong1 + 5 共享资料的黑币奖励!
admin + 50 共享资料的积分奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏12 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2015-1-28 14:11 | 只看该作者
资料很 好  谢谢分享
回复

使用道具 举报

板凳
ID:67678 发表于 2015-1-28 22:28 | 只看该作者
谢谢分享
回复

使用道具 举报

地板
ID:43600 发表于 2015-1-29 16:13 | 只看该作者
very good, nice job !!!
回复

使用道具 举报

5#
ID:72973 发表于 2015-1-29 22:59 | 只看该作者
资料很 好  谢谢分享
回复

使用道具 举报

6#
ID:124770 发表于 2016-6-2 20:48 | 只看该作者
谢谢分享
回复

使用道具 举报

7#
ID:135386 发表于 2017-8-28 18:43 | 只看该作者
谢谢分享
回复

使用道具 举报

8#
ID:334781 发表于 2018-5-21 16:55 | 只看该作者
谢谢楼主的分享,不错的资料!
回复

使用道具 举报

9#
ID:156945 发表于 2018-6-7 21:10 | 只看该作者
看不完?
回复

使用道具 举报

10#
ID:412814 发表于 2019-3-21 19:11 | 只看该作者
谢谢楼主分享,虽然还是看不懂。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表