TMP 006 sensors issue

Hey guys!!! I just got TMP 006 sensors and hooked them up the way Sparkfun shows. Then downloaded TMP006 libarary and ran example from there. Nothing has been modified or changed. The sensors always give me the same temperature of 2.61 C. I know that it should change at least a little bit. Can anyone help me out? What do you guys think the issue is?

We don't work like that. Post a schematic and your code. Take a photo of the schematic with your cell phone or post the schematic .(preferably a PDF , if not then at least a link)
Post your code using the code tags "#" button.

hey. the tmp006 was hooked up exactly like this TMP006 Hookup Guide - SparkFun Learn
the code is attached

#include <Wire.h>
#include <TMP006.h>

void setup()
{
  TMP006.begin();                // join i2c bus (address optional for master)
  Serial.begin(9600);          // start serial communication at 9600bps
}

double reading = 0;
void loop()
{
   TMP006.begin();
   TMP006.setmode(mode1);
   reading=TMP006.gettmp();
   Serial.print("Object temperature is"); Serial.print(reading); Serial.println(" C");
   delay(250);
}
lemme know if you want me to also attach .h and .cpp

Per Sparkfun https://learn.sparkfun.com/tutorials/tmp006-hookup-guide/talking-to-the-sensor

In the beginning, we have two global variables. One stores the I2C address of the sensor, and the other stores how many times we’d like the sensor to sample per temperature reading/calculation. Feel free to try the defaults right away with the hardware setup described in the last section, no changes necessary. Here they are:

uint8_t sensor1 = 0x40; // I2C address of TMP006, can be 0x40-0x47

uint16_t samples = TMP006_CFG_8SAMPLE; // # of samples per reading, can be 1/2/4/8/16




If you’d like to use multiple sensors, you’ll need to declare another sensor variable and give it the appropriate address. Feel free to change the sample rate regardless. Just keep in mind, the more samples it takes, the longer you have to wait for a reading. It’s about a 1 second wait per 4 samples.

Did you see this on the Sparkfun website ? (here)

My TEMP006 sensor is reading low. Since its coming out Celsius, I’m seeing 2.39°C. My room is 75°F, and as it turns out, 23.9°C is exactly that, so it looks like its off by a factor of 10. What code do I dive into to calibrate it?

Member #475033 | about 3 months ago 1
If its truly off by a factor of 10 you can take the variable and multiply it by a factor of 10. For example lets say you have a floating point variable named temp:

float temp; //floats provide more accuracy

temp=“some math to get to temp goes here * 10;

and then print it out. This should correct the temperature output.

mrburnette:
Per Sparkfun TMP006 Hookup Guide - SparkFun Learn

In the beginning, we have two global variables. One stores the I2C address of the sensor, and the other stores how many times we’d like the sensor to sample per temperature reading/calculation. Feel free to try the defaults right away with the hardware setup described in the last section, no changes necessary. Here they are:

uint8_t sensor1 = 0x40; // I2C address of TMP006, can be 0x40-0x47

uint16_t samples = TMP006_CFG_8SAMPLE; // # of samples per reading, can be 1/2/4/8/16




If you’d like to use multiple sensors, you’ll need to declare another sensor variable and give it the appropriate address. Feel free to change the sample rate regardless. Just keep in mind, the more samples it takes, the longer you have to wait for a reading. It’s about a 1 second wait per 4 samples.

I have done it already. This code is mostly used for defining the address of the sensor. The part in my code that says "mode 1" is actually reflect the sampling rate.

raschemmel:
Did you see this on the Sparkfun website ? (here)
https://www.sparkfun.com/products/11859

My TEMP006 sensor is reading low. Since its coming out Celsius, I’m seeing 2.39°C. My room is 75°F, and as it turns out, 23.9°C is exactly that, so it looks like its off by a factor of 10. What code do I dive into to calibrate it?

Member #475033 | about 3 months ago 1
If its truly off by a factor of 10 you can take the variable and multiply it by a factor of 10. For example lets say you have a floating point variable named temp:

float temp; //floats provide more accuracy

temp=“some math to get to temp goes here * 10;

and then print it out. This should correct the temperature output.

Thnx for the reply. I will try it out and post later what happened. I actually plan to hook the sensor up to oscilloscope and see the output. Will try it out and post the results

UPDATE!!!! I tried all of the above. It seems that sensor doesnt respond to any temperature changes. No hands or any any hot objects could change the temperature. I tested with oscilloscope and it looks like it supplies enough V to pins. Any ideas what can it be? Can it be just simply defective?

I have a news flash for you. The TMP006 is not a temp sensor. PERIOD.

This user's guide describes the function and operation of the TMP006, a non-contact infrared (IR) sensor
with a digital interface

It only respond to IR like radiated heat, possibly from a match. A Heat lamp might work.
Physical contact with a warm body is not IR.

raschemmel:
I have a news flash for you. The TMP006 is not a temp sensor. PERIOD.

This user's guide describes the function and operation of the TMP006, a non-contact infrared (IR) sensor
with a digital interface

It only respond to IR like radiated heat, possibly from a match. A Heat lamp might work.
Physical contact with a warm body is not IR.

i used the heat gun. it still doesnt respond. the same temp of 2.61 C. considering the body thing. check out this video. TMP006 IR Temperature Sensor | Mbed

Send Sparkfun an email . Tell them your problem and ask them for advice. That's all I can suggest . It seems to be defective.

Did you manage to solve the problem in end? I am having a similar issue.

We are also having the same problem with our sparkfun tmp006.
Temperature: 2.39C
Sensor Temperature: -0.03
C
With no change when held up to a light or put against something hot.
We followed the wiring on sparkfun website and uploaded the github code TMP006-Temp_Sensor_Breakout-master

I hope someone solved this issue, it seems nobody bother to post their findings if solved the issue.

When using Sparkfun code and get: Temperature: 2.39C and Sensor Temperature: -0.03C, assuming you have only one thermopile sensor TMP006 on the SMbus, it means you are not reading the TMP006. Basically, either you have set a different I2C address than hardwired (see table 3, page15, on TMP006 datasheet, http://www.ti.com/lit/ds/symlink/tmp006.pdf) or your TMP006 is not connected on the bus, not supplied, not all balls properly soldered, the two pull-up resistors on SDA and SCL are missing or have wrong value-try 3k...3.6K if TMP006 is powered at 3V3) etc.
You will see the same values running the Sparkfun software if your TMP006 stands on your table without any wire between it and Arduino.

If you have more than one TMP006 sensors on the same I2C/SM bus, then you will have a nasty surprise if you don't program the right address or if your bus is too long.
The Sparkfun (TMP006 Hookup Guide - SparkFun Learn), is just an adaption of the Adafruit software (GitHub - adafruit/Adafruit_TMP006: This is a library for the Adafruit TMP006 Infrared Thermopile Sensor).

Fortunately my 8 thermopile sensors on the same bus are working now ok after some struggle.