Миниатюрный цифровой датчик температуры от 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.
ADD1 | ADD0 | I2C ADDRESS |
0 | 0 | 1001000 |
0 | Float | 1001001 |
0 | 1 | 1001010 |
1 | 0 | 1001100 |
1 | Float | 1001101 |
1 | 1 | 1001110 |
Float | 0 | 1001011 |
Float | 1 | 1001111 |
Код:
/* 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/