欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機+MAX6675讀K型熱電偶相差溫度2到3度,采集頻率影響到的嗎? [打印本頁]

作者: whwteng    時間: 2020-11-3 10:04
標題: 單片機+MAX6675讀K型熱電偶相差溫度2到3度,采集頻率影響到的嗎?
MAX6675讀K型熱電偶相差溫度2到3度,從常溫到高溫差不多都是相差2到3度,因為我都是用熱電偶測的,各位可以幫忙看一下是什么問題嗎?
//---------------------讀溫度----------------------
u16 ReadMAX6675(void)           
{
        u8 count;  //計數
        u16 Value;
        count=0;
        Value=0;
        MAX6675_CS=0;
        MAX6675_SCK=0;
        for(count=0;count<16;count++)
        {
                MAX6675_SCK=1;   //時鐘置低
                Value=Value<<1;  //左移
               
                if(MAX6675_SO==1)  //取當前的值
                        Value=Value|0x01;
                MAX6675_SCK=0;
        }
        MAX6675_CS=1;
        return Value;
}

void MAX6675_dis()         //這個函數每210ms運行一次
{
        u16 t=0;
        t=ReadMAX6675();
        Flag_connect=t&0x04;
        
        Flag_connect=Flag_connect>>2;
        
        t=t<<1;      //去掉頭一位
        t=t>>4;      //去掉后面3位
        hot_data=t/4;      //hot_data是全局變量,賦值完直接發送到上位機(每300ms發一次)
}


作者: whwteng    時間: 2020-11-3 10:04
是我采集頻率影響到的嗎?
作者: robinsonlin    時間: 2020-11-3 18:26
你的參照物是什么?  換句話說,你的參照物準確么?   對于熱電偶來說,因為雜質的原因,不同品牌的熱電偶會有少許差別。 你這個高溫有多高?  K型測溫一般可以到1000多度,2、3度的誤差算不了啥了。如果你只測到了幾十度,那就在底層改一下代碼,線性補償上去就好了。  反正跟頻率是沒有啥直接關系的。
作者: 123456czst    時間: 2020-11-3 20:09
主要看樓主的測量范圍是那個,大不大,

作者: whwteng    時間: 2020-11-3 23:07
robinsonlin 發表于 2020-11-3 18:26
你的參照物是什么?  換句話說,你的參照物準確么?   對于熱電偶來說,因為雜質的原因,不同品牌的熱電偶 ...

參照溫度是在網上買的測溫度也是用K型熱電偶的,我需要測的溫度到最大170度左右,怎么修改線性補償,可以請教一下嗎?
作者: whwteng    時間: 2020-11-3 23:07
123456czst 發表于 2020-11-3 20:09
主要看樓主的測量范圍是那個,大不大,

測的范圍大概0~170度左右
作者: whwteng    時間: 2020-11-3 23:09
robinsonlin 發表于 2020-11-3 18:26
你的參照物是什么?  換句話說,你的參照物準確么?   對于熱電偶來說,因為雜質的原因,不同品牌的熱電偶 ...

主要是低于100度相差2到3度,達到100度以上也是相差100度,所以想在這里請教一下怎么修改線性補償,修改線性補償后溫度跑到100度以上會不會偏差變大
作者: whwteng    時間: 2020-11-3 23:11
robinsonlin 發表于 2020-11-3 18:26
你的參照物是什么?  換句話說,你的參照物準確么?   對于熱電偶來說,因為雜質的原因,不同品牌的熱電偶 ...

那個參照溫度應是準的,因為是在網上剛買的,我朋友那邊測也是先相差2到3度
作者: robinsonlin    時間: 2020-11-4 09:43
whwteng 發表于 2020-11-3 23:11
那個參照溫度應是準的,因為是在網上剛買的,我朋友那邊測也是先相差2到3度

你要做小數顯示么?  如果不做小數顯示。t= t - t/50 ;就搞定了。  (一般單片機沒有浮點運算)
作者: whwteng    時間: 2020-11-6 10:04
robinsonlin 發表于 2020-11-4 09:43
你要做小數顯示么?  如果不做小數顯示。t= t - t/50 ;就搞定了。  (一般單片機沒有浮點運算)

剛剛試啦,這樣讀出來的數直接飆到一百多度啦、
作者: robinsonlin    時間: 2020-11-6 11:19
unsigned int TypeFlag = 0;


void MAX6675_Init(void)
{
        MAX6675_CS = 0;
        MAX6675_SCK = 0;
        MAX6675_SO = 1;

        MAX6675_CS = 1;
        MAX6675_SCK = 0;
}

unsigned int MAX6675_Read(void)
{
        unsigned char i=0;
        unsigned int dat;
        dat=0;
        i = 0;
       
        TypeFlag = 0;
       
        MAX6675_CS = 0 ;
  MAX6675_SCK = 0;

        for(i=0;i<16;i++)
        {
       
               
                MAX6675_SCK = 1 ;
               
                dat <<= 1;
               
                if(MAX6675_SO == 1)
                {
                        dat |= 0x01 ;
                       
                }

                MAX6675_SCK = 0 ;
        }
        MAX6675_CS = 1;
       
        TypeFlag = dat & 0x04;            //斷線判斷標志,全局變量
       
        return dat;
}
unsigned int Get_Temp(unsigned int TempDat)
{
        TempDat=MAX6675_Read();
       
        TempDat <<= 1 ;
        TempDat >>= 4 ;
       
        TempDat =  5*TempDat/2 - 30 ;                        
       
        return TempDat;
}
上面是我處理的方法。
因為51不能浮點運算,而我又想顯示精度到0.1,所以,我把返回值擴大了10倍,  -30就是做的線性糾正。   t= t - t/50 只是想給你一個思路,照搬可不行的。   
作者: whwteng    時間: 2020-11-17 18:58
robinsonlin 發表于 2020-11-6 11:19
unsigned int TypeFlag = 0;

可以啦,解決,我修改啦線性




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1