MAX6675使用问题,T-接地测量值不对???

2020-02-08 09:08发布

大家好:
    最近做多路温度测量装置,用K型热电偶,我想用MAX6675做测量信号转换,可以省很多事!
    MAX接线电路就是这样:下面是链接
http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=MAX6675&in=27083&cl=2&lm=-1&pn=8&rn=1&di=39066360255&ln=258&fr=&fmq=&ic=0&s=&se=&sme=0&tab=&width=&height=&face=0#
    问题:???
        1.我T-引脚不接地,也就是不能判断热电偶是否短线时,测量值正确,漂在十度左右,漂是不是有点大,
          我就在电源上加了个电容,漂还是那样???
        2.我把T-引脚接地,也就是加上了判断热电偶是否短线,判断功能是有了,可以判断出是不是接了热电偶,
          但是,温度测量值不对了,变小了(好像是小了冷端补尝了),怎么会事,怎么会这样???

谢各位高手...指点!!!我是不是哪里做的不对了,在线等候......在线等候......
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
kvdong
1楼-- · 2020-02-09 04:32
回复【8楼】bj-stm8 珍惜生命 远离天_朝
-----------------------------------------------------------------------

好的,谢谢。。。
bj-stm8
2楼-- · 2020-02-09 09:53
#include <c8051f340.h>
#include <c8051f340_2.h>

extern void Delay(void);

unsigned char MAX6675_H;
unsigned char MAX6675_L;
/*F*****************************************************************************
* PARAMS:   void
*
* return:   void
*-------------------------------------------------------------------------------
* PURPOSE:  函数
*-------------------------------------------------------------------------------
* NOTE:     
*******************************************************************************/
void MAX6675CS_ID(unsigned char CS_CH)
{
   switch(CS_CH)
   {
                   case 1:
                        CS1 = 1;
                        break;
                case 2:
                        CS2 = 1;
                        break;
                case 3:
                        CS3 = 1;
                        break;
                case 4:
                        CS4 = 1;
                case 5:
                        CS5 = 1;
                case 6:
                        CS6 = 1;
                default:
                    NSSMD0 = 1;                       // Activate Slave Select
                        break;
   }
}
/*F*****************************************************************************
* PARAMS:   void
*
* return:   void
*-------------------------------------------------------------------------------
* PURPOSE:  函数
*-------------------------------------------------------------------------------
* NOTE:     
*******************************************************************************/

void MAX6675_Read (unsigned char CS_CH_ID)
{

//        unsigned int SPI_data;
   // Step1: READ MSB
   MAX6675CS_ID(0,CS_CH_ID);

   Delay();

   SPI0DAT  = 0x03;
   while (!SPIF);
   SPIF = 0;
   MAX6675_H = SPI0DAT;
   Delay();

   // Step2:  READ LSB
   SPI0DAT  = 0xC2;
   while (!SPIF);
   SPIF = 0;
   MAX6675_L = SPI0DAT;

   // Step3:   
   Delay();

   MAX6675CS_ID(1,CS_CH_ID);
}
bj-stm8
3楼-- · 2020-02-09 13:44
 精彩回答 2  元偷偷看……
kvdong
4楼-- · 2020-02-09 14:31
读值的问题基本搞定了,应该是跟我的电源有关系......换了一块波纹比较小的模块电源,读数比较正常了。谢谢楼上各位。

另外又有了新的问题了,我在热电偶和MAX6675之间加了个CD4052,结果测得的值几乎是正确值的2倍,CD4052的影响有这么大吗?
那我用一片MAX6675测多路热电偶输入又该用什么方法呢?
bj-stm8
5楼-- · 2020-02-09 20:06
我用了6片MAX6675,对成本无要求。
不知道CD4052各通道之间阻抗偏差有多大
kvdong
6楼-- · 2020-02-10 01:43
我的设计对成本要求敏感啊.....
选用多片MAX6675的可能性为零。

做多路的热电偶,测温电路,还有什么方法...
现在又郁闷了,多路的没法办了。。。

还有什么好的方法实现多路热电偶测量呢?

要是自己做运放电路呢,有什么成熟的热电偶,运放电路...

一周热门 更多>