Contact-less Infrared Thermopile Sensor Breakout - TMP006
The TMP006 have the capacity to measure the temperature of an object without touching it. Simply point the sensor towards what you want to measure and it will detect the temperature by absorbing IR waves emitted. The embedded thermopile sensor generates a very very small voltage depending on how much IR there is, and using some math, that micro voltage can be used to calculate the temperature. This sensor comes as an ultra-small 0.5mm pitch BGA. The sensor works with 5V.
As a design guideline, the
TMP006 should only be used to calculate the surface temperature of target objects
with emissivity values greater than 0.7, and preferably greater than 0.9. The
emissivity values of common objects are listed in next table.
Materials:
1. Arduino
2. Protoboard
3. TMP006 sensor(from adafruit)
4. Four connecting wires
Wiring:
1. Place the TMP006 sensor in the protoboard.
2. Connect the sensor VCC to 5V.
3. Connect the sensor GND to GND.
4. Connect the sensor SDA to "A5" analogpin.
5. Connect the sensor SCL to "A4" analogpin.
6. Download the file. Libraries
Code:
/***************************************************
This is an example for the TMP006 Barometric
Pressure & Temp Sensor
Designed specifically to work with the
Adafruit TMP006 Breakout
---->
https://www.adafruit.com/products/1296
These displays use I2C to communicate, 2 pins
are required to
interface
Adafruit invests time and resources providing
this open source code,
please support Adafruit and open-source
hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit
Industries.
BSD license, all text above must be included
in any redistribution
****************************************************/
#include
<Wire.h>
#include
"Adafruit_TMP006.h"
// Connect VCC to +3V
(its a quieter supply than the 5V supply on an Arduino
// Gnd -> Gnd
// SCL connects to the
I2C clock pin. On newer boards this is labeled with SCL
// otherwise, on the
Uno, this is A5 on the Mega it is 21 and on the Leonardo/Micro digital 3
// SDA connects to the
I2C data pin. On newer boards this is labeled with SDA
// otherwise, on the
Uno, this is A4 on the Mega it is 20 and on the Leonardo/Micro digital 2
Adafruit_TMP006
tmp006;
//Adafruit_TMP006
tmp006(0x41); // start with a diferent
i2c address!
void setup() {
Serial.begin(9600);
Serial.println("Adafruit TMP006
example");
// you can also use
tmp006.begin(TMP006_CFG_1SAMPLE) or 2SAMPLE/4SAMPLE/8SAMPLE to have
// lower precision, higher rate sampling.
default is TMP006_CFG_16SAMPLE which takes
// 4 seconds per reading (16 samples)
if (! tmp006.begin()) {
Serial.println("No sensor
found");
while (1);
}
Serial.println("Send s to enter sleep
mode, or w to wake up. Measurements are
not updated while asleep!");
}
void loop() {
// Check for sleep/wake command.
while (Serial.available() > 0) {
char c = Serial.read();
if (c == 'w') {
Serial.println("Waking up!");
tmp006.wake();
}
else if (c == 's') {
Serial.println("Going to
sleep!");
tmp006.sleep();
}
}
// Grab temperature measurements and print
them.
float objt = tmp006.readObjTempC();
Serial.print("Object Temperature:
"); Serial.print(objt); Serial.println("*C");
float diet = tmp006.readDieTempC();
Serial.print("Die Temperature: ");
Serial.print(diet); Serial.println("*C");
delay(4000); // 4 seconds per reading for 16
samples per reading
}
Serial print and example from library:
More information:
More information about the sensor can be found on the TMP006datashit
Sensor de temperatura infrarrojo sin contacto TMP006
El TMP006 tiene la capacidad para medir la temperatura de un objeto sin tener contacto con él. Simplemente dirija el sensor hacia la dirección del objeto que se desee medir y este lo detectará por medio de absorción de las ondas IR emitidas. El sensor de termopila incrustado genera una pequeña diferencia de voltaje, dependiendo de cuánto IR existe, y el uso de algunos cálculos, que los micro voltajes se pueden utilizar para calcular la temperatura. Este sensor viene como ultra-pequeño de 5mm pitch BGA,el mismo se trabaja en un tablero (protoboard). El sensor trabaja con 5V.
Como directriz de diseño, el TMP006 sólo debe utilizarse para calcular la temperatura de la superficie de objetos de destino con valores de emisividad mayor que 0.7, y preferiblemente mayor que 0.9. Los valores de emisividad de los objetos comunes se enumeran en la siguiente tabla.
Materiales:
1. Arduino
2. Tablero (protoboard)
3. Sensor TMP006 (de adafruit)
4. Cuatro cables de conexión
Cableado:
1. Coloque el sensor TMP006 en el tablero.
2. Conecte el VCC del sensor a 5V.
3. Conecte el GND del sensor a GND.
4. Conecte el SDA del sensor al puerto análogo "A5".
5. Conecte el SCL del sensor al puerto análogo "A4''.
6. Descargue el documento. - Librerías
Código:
/***************************************************
This is an example for the TMP006 Barometric Pressure & Temp Sensor
Designed specifically to work with the Adafruit TMP006 Breakout
----> https://www.adafruit.com/products/1296
These displays use I2C to communicate, 2 pins are required to
interface
Adafruit invests time and resources providing this open source code,
please support Adafruit and open-source hardware by purchasing
products from Adafruit!
Written by Limor Fried/Ladyada for Adafruit Industries.
BSD license, all text above must be included in any redistribution
****************************************************/
#include <Wire.h>
#include "Adafruit_TMP006.h"
// Connect VCC to +3V (its a quieter supply than the 5V supply on an Arduino
// Gnd -> Gnd
// SCL connects to the I2C clock pin. On newer boards this is labeled with SCL
// otherwise, on the Uno, this is A5 on the Mega it is 21 and on the Leonardo/Micro digital 3
// SDA connects to the I2C data pin. On newer boards this is labeled with SDA
// otherwise, on the Uno, this is A4 on the Mega it is 20 and on the Leonardo/Micro digital 2
Adafruit_TMP006 tmp006;
//Adafruit_TMP006 tmp006(0x41); // start with a diferent i2c address!
void setup() {
Serial.begin(9600);
Serial.println("Adafruit TMP006 example");
// you can also use tmp006.begin(TMP006_CFG_1SAMPLE) or 2SAMPLE/4SAMPLE/8SAMPLE to have
// lower precision, higher rate sampling. default is TMP006_CFG_16SAMPLE which takes
// 4 seconds per reading (16 samples)
if (! tmp006.begin()) {
Serial.println("No sensor found");
while (1);
}
Serial.println("Send s to enter sleep mode, or w to wake up. Measurements are not updated while asleep!");
}
void loop() {
// Check for sleep/wake command.
while (Serial.available() > 0) {
char c = Serial.read();
if (c == 'w') {
Serial.println("Waking up!");
tmp006.wake();
}
else if (c == 's') {
Serial.println("Going to sleep!");
tmp006.sleep();
}
}
// Grab temperature measurements and print them.
float objt = tmp006.readObjTempC();
Serial.print("Object Temperature: "); Serial.print(objt); Serial.println("*C");
float diet = tmp006.readDieTempC();
Serial.print("Die Temperature: "); Serial.print(diet); Serial.println("*C");
delay(4000); // 4 seconds per reading for 16 samples per reading
}
Impresión de serie y ejemplo de la libreria:
Más información:
Para más información acerca del sensor la puede encontrar TMP006datashit
No hay comentarios:
Publicar un comentario