Main Content

Acquire Temperature Data from an RTD

This example shows how to acquire temperature data from a Resistive temperature device (RTD) and display the readings. The device is attached inside a PC case to monitor the internal temperature changes.

Discover Devices That Support RTDs

To discover a device that supports bridge sensor measurements, access the device in the table returned by the daqlist command. This example uses an NI 9219 module in National Instruments® CompactDAQ Chassis NI cDAQ-9178. This is a 24-Bit Universal Analog Input module and is module 7 in the chassis.

d = daqlist("ni")
d =

  12×4 table

     DeviceID                 Description                    Model             DeviceInfo     
    ___________    __________________________________    _____________    ____________________

    "cDAQ1Mod1"    "National Instruments NI 9205"        "NI 9205"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod2"    "National Instruments NI 9263"        "NI 9263"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod3"    "National Instruments NI 9234"        "NI 9234"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod4"    "National Instruments NI 9201"        "NI 9201"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod5"    "National Instruments NI 9402"        "NI 9402"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod6"    "National Instruments NI 9213"        "NI 9213"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod7"    "National Instruments NI 9219"        "NI 9219"        [1×1 daq.DeviceInfo]
    "cDAQ1Mod8"    "National Instruments NI 9265"        "NI 9265"        [1×1 daq.DeviceInfo]
    "Dev1"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]
    "Dev2"         "National Instruments NI ELVIS II"    "NI ELVIS II"    [1×1 daq.DeviceInfo]
    "Dev3"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]
    "Dev4"         "National Instruments PCIe-6363"      "PCIe-6363"      [1×1 daq.DeviceInfo]

deviceInfo = d{7, "DeviceInfo"}
deviceInfo = 

ni: National Instruments NI 9219 (Device ID: 'cDAQ1Mod7')
   Analog input supports:
      9 ranges supported
      Rates from 0.1 to 100.0 scans/sec
      4 channels ('ai0','ai1','ai2','ai3')
      'Voltage','Current','Thermocouple','RTD','Bridge' measurement types
   
This module is in slot 7 of the 'cDAQ-9178' chassis with the name 'cDAQ1'.


Add an RTD Channel

Create a DataAcquisition, and add an analog input channel with RTD measurement type.

dq = daq("ni");
dq.Rate = 30;
ch = addinput(dq, "cDAQ1Mod7", "ai3", "RTD");

Set Sensor Properties

Refer to the sensor data sheet and match the values accordingly. In this example, an SA1-RTD series sensor from Omega® is used. Set units to "Fahrenheit", RTD type to "Pt3851", configure the RTD circuit as "FourWire", and set the resistance to 100 ohms.

ch.Units = "Fahrenheit";
ch.RTDType = "Pt3851";
ch.RTDConfiguration = "FourWire";
ch.R0 = 100;

Set ADCTimingMode

By default, the ADC timing mode ADCTimingMode of the channel is set to "HighResolution". Set the ADCTimingMode to "HighSpeed".

ch.ADCTimingMode = "HighSpeed";

Acquire and Plot Data

Use the read command to acquire data.

data = read(dq, seconds(1));
plot(data.Time, data.cDAQ1Mod7_ai3);
degreeSign = 176;
ylabel(sprintf("Temperature (%cF)", degreeSign));