Датчик температуры TMP100

Миниатюрный цифровой датчик температуры от Texas Instruments, для связи использует шину I2C.

Характеристики датчика:

  • Диапазон температур:  –55 … 125°C
  • Точность: ±2°C в диапазоне -25°C — 85°C, ±3°C в диапазоне -55°C — 125°C  
  • Разрешение: от 9 до 12 Бит, до 0.0625 °C
  • Напряжение питания: от 2,7 В до 5,5 В
  • Потребляемый ток: 45 мкА (0.1 мкА standby)
  • Корпус: SOT23-6 Package
  • Связь по I2C, Поддерживает до восьми датчиков на шине I2C.

Распиновка датчика:

Датчик температуры представляет собой микросхему в миниатюрном корпусе SOT23-6 и вряд ли удастся найти его в виде модуля для ардуино, можно использовать переходник SOT23toDIP.



Установка адреса модуля на шине I2C:

Адрес датчика на шине I2C определяется контактами ADD0 и ADD1.

ADD1ADD0I2C ADDRESS
001001000
0Float1001001
011001010
101001100
1Float1001101
111001110
Float01001011
Float11001111

Код:

/* Sample code for the TMP100 Temperature sensor website:www.DFRobot.com Connection: VCC-5V GND-GND SDA-Analog pin 4 SCL-Analog pin 5*/

#include <Wire.h>
int tmpAddress = B1001011; //Slave Addresses set
int ResolutionBits = 10;   //Resolution set
void setup()
{
  Wire.begin();        // join i2c bus (address optional for master)
  Serial.begin(9600);  // start serial for output
  SetResolution();
}

void loop()
{
  getTemperature();
  delay(200);
}

float getTemperature()
{
  Wire.requestFrom(tmpAddress,2);
  byte MSB = Wire.read();
  byte LSB = Wire.read();
  int TemperatureSum = ((MSB << 8) | LSB) >> 4;
  float celsius = TemperatureSum*0.0625;
  Serial.print("Celsius: ");
  Serial.println(celsius);
}

void SetResolution(){
  if (ResolutionBits < 9 || ResolutionBits > 12) exit;
  Wire.beginTransmission(tmpAddress);
  Wire.write(B00000001); //addresses the configuration register
  Wire.write((ResolutionBits-9) << 5); //writes the resolution bits
  Wire.endTransmission();
  Wire.beginTransmission(tmpAddress); //resets to reading the temperature
  Wire.write((byte)0x00);
  Wire.endTransmission();
}


Купить:

на али, тут.

Документация:

http://www.forkrobotics.com/2012/05/arduino-and-tmp100/



Видео: