Infrared non-contact thermometer module driver for Arduino
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


IRTemp Arduino Library v1.0

Infrared non-contact thermometer library for the Arduino.

This library supports the IRTEMP IR Temperature Sensor Module from Freetronics, based on the TN9 sensor. For more information see:

The TN9 measures:

  • Infrared temperature in conical zone in front of the sensor
  • Ambient temperature

The library needs to be initialized with the Arduino pin configurations.

  #include "IRTemp.h"
  static const byte PIN_DATA    = 2;
  static const byte PIN_CLOCK   = 3;
  static const byte PIN_ACQUIRE = 4;

Any 3 unused pins can be chosen.

Once the library has been initialized, the two different temperature values can be obtained as follows:

  float irTemperature = irTemp.getIRTemperature();
  float amTemperature = irTemp.getAmbientTemperature();

By default, these functions return the temperature value as a floating-point number using the Celcius scale.

Optionally, the temperature may be returned using the Farenheit scale as follows:

  float irTemperature = irTemp.getIRTemperature(FAHRENHEIT);
  float amTemperature = irTemp.getAmbientTemperature(FAHRENHEIT);

Choose File -> Examples -> IRTemp -> readTemperature in the Arduino IDE to see an example, including error handling.

This library also works with Arduino IDE versions prior to 1.0. However, the examples will need to be renamed from *.ino to *.pde.

Using Multiple Sensors

It is possible to connect multiple IRTemp sensors to a single Arduino. However you cannot share clock and data pins between sensors, as data is sent continously (see below.)

Two Wire Operation

It is possible to use the IRTemp without the "Acquire" pin. When used in two wire mode, the Acquire pin on the IRTemp sensor should be connected directly to ground. Readings for IR & Ambient temp will be continuously output by the sensor.

If the acquire pin is left floating or pulled up to HIGH, readings for Ambient temp but not IR temp will be continuously output by the sensor.

Note that the time to take a reading is increased in two-wire mode (approximately one sample every 500ms, alternating IR & Ambient.)