Close
0%
0%

Temperature Test Stand

A test stand to read and log 48 K-type thermocouples

Similar projects worth following

The goal of this project is to be able to read and log up to 48 thermocouples automatically by outputting a serial string of all TC data, and using LabVIEW to both read and log the data.

In a perfect world all the display would be done locally and the logging onto a flash card or similar so there would be no need for a computer or LabVIEW, but I don't see having the time or money for these improvements.

  • 1 × Enclosure & panel McMaster 7561K41 & 7561K861
  • 1 × 48 Thermocouple jack panel Omega SJP4-48-K
  • 1 × Arduino Mega
  • 48 × Thermcouple breakout board Adafruit MAX31855
  • 4 × Breadboard power supply 5V/3.3V from Sparkfun RT-00114

View all 10 components

  • Revisiting a Project

    AndyMac07/24/2015 at 03:52 0 comments

    I began this build process about two years ago and got stalled when I didn't have the free time to troubleshoot. Originally afraid it was destined for a Hackaday FAIL article, I've run across a few ideas that have given me hope. My apologies if these updates seem to be in reverse order.

    Originally built to be completed quickly (sigh), the plan was to use an Arduino mega, as it had the required 48 digital pins, one for each chip select pin. The MAX31855 communicates via SPI so the only other pins needed are a clock, digital in, and digital out, and power. This is the first proof of concept to read 3 TCs into Labview over serial.

    /*---------------------------------------------------------------------------------------
     This sketch is intended as a proof of concept for running multiple TC breakouts through a mega
     board and read them into labview.  It will read 3 TC breakout boards (MAX31855).
     * ----------------------------------------------------------------------------------------
     //
     //                           +--####----------------------||||||--+
     //                           |  ####                      ||||||  |
     //                           |  ####                      ||||||  |
     //                           |                                    |
     //                           |                                +---|
     //                           |                            AERF| o |
     //                           |                             GND| o | 
     //                           |                              13| o | 
     //                           |---+                          12| o | 
     //                           | o |Reset              PWM    11| o | 
     //                           | o |3V                 PWM    10| o | 
     //                           | o |5V                 PWM     9| o | 
     //                           | o |Gnd                        8| o | etc... 
     //                           | o |Gnd                         |---|
     //                           | o |Vin                        7| o | CS4
     //                           |---|                           6| o | CS3
     //                           | o |1 A                        5| o | CS2
     //                           | o |2 N                        4| o | CS1
     //                           | o |3 A                        3| o | CLK
     //                           | o |4 L                        2| o | DO
     //                           | o |5 O                    TX  1| o | 
     //                           | o |6 G                    RX  0| o | 
     //                           +------------------------------------+
     //-------------------------------------------------------------------------------------
     */
    
    #include "Adafruit_MAX31855.h"
    
    //Declarations
    
    //TC breakout pins
    int thermoDO = 2;
    int thermoCLK = 3;
    int thermo1CS = 4;
    int thermo2CS = 5;
    int thermo3CS = 6;
    
    //set name & pins for TC breakouts
    Adafruit_MAX31855 Thermocouple1(thermoCLK, thermo1CS, thermoDO);  
    Adafruit_MAX31855 Thermocouple2(thermoCLK, thermo2CS, thermoDO);
    Adafruit_MAX31855 Thermocouple3(thermoCLK, thermo3CS, thermoDO);
    
    //------------------------------------------------------------------------------------------
    void setup(){
      Serial.begin(9600);
    }
    
    
    //--------------------------------------------------------------------------------------------
    void loop(){
      
      //Read TC1
      double T1 = Thermocouple1.readFarenheit();
      if (isnan(T1))  {
        Serial.println("Something wrong with thermocouple 1!");
      }  else  {
        Serial.print("Temperature 1 is ");
        Serial.print(T1);
        Serial.println(" F");
      }
    
      //Read TC2
      double T2 = Thermocouple2.readFarenheit();
      if (isnan(T2))  {
        Serial.println("Something wrong with thermocouple 2!");
      }  else  {
        Serial.print("Temperature 2 is ");
        Serial.print(T2);
        Serial.println(" F");
      }
    
      //Read TC3
      double T3 = Thermocouple3.readFarenheit();
      if (isnan(T3))  {
        Serial.println("Something wrong with thermocouple 3!");
      }  else  {
        Serial.print("Temperature 3 is ");
        Serial.print(T3);
        Serial.println(" F");
      }
    
    //could insert a stop signal here to let labview know we've collected
    //all the data from one run through of the sensors
    
      delay(500);
    }
    
    The code is fairly straightforward, and everything worked, so I ordered a full set of components.

    The first pass at the LabVIEW program is below. This does not have inputs yet to select which thermocouples are connected. Eventually the goal would be to auto-detect the presence of a thermocouple.

View project log

Enjoy this project?

Share

Discussions

euchcat wrote 07/24/2015 at 13:42 point
Thanks AndyMac,
Great Work !

  Are you sure? yes | no

euchcat wrote 07/19/2015 at 14:52 point

Hello AndyMac,

have you wrote some source code for the arduino part ?

  Are you sure? yes | no

AndyMac wrote 07/24/2015 at 03:54 point

Right now the only Arduino code I have is the short proof-of-concept that I included in the build log above.  The final code should actually be fairly straightforward, but with some loop statement to call thermocouples instead of calling them all one by one.

  Are you sure? yes | no

zakqwy wrote 12/12/2014 at 03:16 point
I'm a fan of the clean wiring. Are you using Adafruit's TC boards? What issues are you having?

  Are you sure? yes | no

AndyMac wrote 01/14/2015 at 02:47 point

Thanks for the skull! Yes, those are Adafruit's MAX31855 boards. I've had great success with one or two, but with more than 3 they all stop reading correctly. I haven't picked this project up in a while, but I found

http://www.dorkbotpdx.org/blog/paul/better_spi_bus_design_in_3_steps. I'm betting pullup resistors will do the trick

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates