TMP102 — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
м
м
 
(не показано 12 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
== Описание ==
 
== Описание ==
  
The TMP102 is a two-wire, serial output temperature sensor available in a tiny SOT563 package. Requiring no external components, the TMP102 is capable of reading temperatures to a resolution of 0.0625°C.
+
'''TMP102''' это цифровой термометр с интерфейсом I2C(TWI) в миниатюрном корпусе SOT563. TMP102 не нуждается в обвязке, и считывает температуру с шагом 0.0625°C.
  
The TMP102 features SMBus and two-wire interface compatibility, and allows up to four devices on one bus. It also features an SMB alert function.
+
'''TMP102''' поддерживает SMBus и I2C(TWI), что позволяет использовать до 4х таких датчиков на одной шине. Так же поддерживает такую функцию как "SMB alert".
  
The TMP102 is ideal for extended temperature measurement in a variety of communication, computer, consumer, environmental, industrial, and instrumentation applications. The device is specified for operation over a temperature range of –40°C to +125°C.
+
'''TMP102''' это идеальный датчик для измерения изменений температуры, шаг измерения 0.0625°C, качество 0.5°C, диапазон  от  –40°C до +125°C.
  
 
[[Image:TMP102PinConf.png|300px]]
 
[[Image:TMP102PinConf.png|300px]]
 
[[Image:TMP102Diagram.png|300px]]
 
[[Image:TMP102Diagram.png|300px]]
  
Note that the TMP102 is a 3.3V device and will require a [http://www.sparkfun.com/commerce/product_info.php?products_id=8745 Logic Level Converter] to connect it to a 5V Arduino.
+
Соответственно
 +
# '''SCL''' - I2C Clock
 +
# '''GND''' - Земля
 +
# '''ALERT''' - Тревога, при использовании в режиме термостат
 +
# '''SDA''' - I2C Data
 +
# '''V+''' - Питание '''3.3V MAX!'''
 +
# '''ADD0''' - Конфигурация I2C адресса
 +
 
 +
'''Внимание:'''  TMP102 это устройство с рабочим напряжением 3.3V, для подключения к 5V Arduino непроходимо преобразование уровней например при помощи [http://www.sparkfun.com/commerce/product_info.php?products_id=8745 Logic Level Converter]
  
 
== Подключение ==
 
== Подключение ==
  
The TMP102 is a 3.3V device and therefore it is connected to the Arduino board through a [[Logic Level Converter]]<ref>http://forum.sparkfun.com/viewtopic.php?f=8&t=20938&p=97163</ref>:
+
=== к Arduino(5V) ===
 +
 
 +
Вариант подключения TMP102(3.3V) к Arduino(5V)с [http://forum.sparkfun.com/viewtopic.php?f=8&t=20938&p=97163 Logic Level Converter]:
 +
 
 +
* LV к 3.3V pin Arduino
 +
* HV к 5V pin Arduino
 +
* HV Канал 1 TXO к SDA pin [[Arduino]] (analog 4)
 +
* HV Канал 2 TXO к SCL pin [[Arduino]] (analog 5)
 +
* LV Канал 1 TXI к SDA pin of [[TMP102]]
 +
* LV Канал 2 TXI к SCL pin of [[TMP102]]
 +
* RX pins [[Logic Level Converter]] не используются
 +
* V+ от [[TMP102]] на 3.3V
 +
* GND от [[TMP102]] на землю
 +
* ADD0 от [[TMP102]] на землю
 +
* ALT от [[TMP102]] не подключаем
 +
* Все земли соединяем между собой
 +
 
 +
=== к Arduino(3.3V) ===
 +
 
 +
Вариант подключения TMP102(3.3V) к Arduino(3.3V) без преобразований:
 +
* V+ от [[TMP102]] на 3.3V Arduino
 +
* SDA от [[TMP102]] на SDA pin (analog 4)
 +
* SCL от  [[TMP102]] на SCL pin (analog 5)
 +
* GND от [[TMP102]] на землю
 +
* ADD0 от[[TMP102]] на землю
 +
* ALT от [[TMP102]] не подключаем
 +
* Все земли соеденяем между собой
  
* LV to the 3.3V pin of the Arduino
+
=== Расположение контактов ===
* HV to the 5V pin of Arduino
 
* HV Channel 1 TXO to the SDA pin (analog 4)
 
* HV Channel 2 TXO to the SCL pin (analog 5)
 
* Low voltage Channel 1 TXI to the SDA pin of [[TMP102]]
 
* Low voltage Channel 2 TXI to the SCL pin of [[TMP102]]
 
* The RX pins of the [[Logic Level Converter]] are not used
 
* V+ of [[TMP102]] connected to 3.3V
 
* ADD0 of [[TMP102]] connected to ground
 
* ALT of [[TMP102]] not connected
 
* All grounds connected together.
 
  
 
[[Image:TMP102-top.jpg|150px]]
 
[[Image:TMP102-top.jpg|150px]]
Строка 33: Строка 57:
 
[[Image:TMP102-perspective.jpg|300px]]
 
[[Image:TMP102-perspective.jpg|300px]]
  
Component side with test overlay:<br/>
+
Расположение контактов при взгляде на верхнюю сторону:<br/>
 
[[Image:TMP102-footprint.png|150px]]
 
[[Image:TMP102-footprint.png|150px]]
  
 
== Пример кода ==
 
== Пример кода ==
  
The following [[Category:Arduino|Arduino]] code snippet reads the temperature from the TMP102, converts the raw value to degrees Celsius and Fahrenheit, prints it on an LCD display and sends it to the serial port.
+
Пример кода для [[Arduino]] который показывает как считать данные с TMP102, преобразовать их в градусы по Цельсии и по Фарингейту. Полученные результаты выводятся на ЖКИ дисплей и дублируются в последовательный порт.
  
 
   #include&nbsp;<<span style="color: #CC6600;">LiquidCrystal</span>.h>
 
   #include&nbsp;<<span style="color: #CC6600;">LiquidCrystal</span>.h>
Строка 106: Строка 130:
  
 
* Источник: [http://wiki.oz9aec.net/index.php/TMP102#Wiring TMP102 Wiring]
 
* Источник: [http://wiki.oz9aec.net/index.php/TMP102#Wiring TMP102 Wiring]
* Описание: [[Image:TMP102.pdf|Datasheet]]
+
* Описание: [[Media:TMP102.pdf |TMP102 Datasheet]]
* Схема отладочной платы: [[Image:TMP102_Breakout.pdf]]
+
* Схема отладочной платы: [[Media:TMP102_Breakout.pdf | TMP102 Breakout]]
 
* Подключение к Arduino(5v) используя преобразователь уровней  [http://www.sparkfun.com/commerce/product_info.php?products_id=8745 Sparkfun Logic Level Converter]: http://forum.sparkfun.com/viewtopic.php?f=8&t=20938&p=97163
 
* Подключение к Arduino(5v) используя преобразователь уровней  [http://www.sparkfun.com/commerce/product_info.php?products_id=8745 Sparkfun Logic Level Converter]: http://forum.sparkfun.com/viewtopic.php?f=8&t=20938&p=97163
* Где купить [http://www.sparkfun.com/commerce/product_info.php?products_id=9418 Sparkfun], [hhttp://test.roboforum.ru/index.html 4Robots] и другие.
+
* Где купить [http://www.sparkfun.com/commerce/product_info.php?products_id=9418 Sparkfun], [http://shop.4robots.ru/index.html 4Robots] и другие.
  
 
[[Category:Arduino]]
 
[[Category:Arduino]]
 
[[Category:Справочник решений]]
 
[[Category:Справочник решений]]

Текущая версия на 10:30, 15 апреля 2011

Описание

TMP102 это цифровой термометр с интерфейсом I2C(TWI) в миниатюрном корпусе SOT563. TMP102 не нуждается в обвязке, и считывает температуру с шагом 0.0625°C.

TMP102 поддерживает SMBus и I2C(TWI), что позволяет использовать до 4х таких датчиков на одной шине. Так же поддерживает такую функцию как "SMB alert".

TMP102 это идеальный датчик для измерения изменений температуры, шаг измерения 0.0625°C, качество 0.5°C, диапазон от –40°C до +125°C.

TMP102PinConf.png TMP102Diagram.png

Соответственно

  1. SCL - I2C Clock
  2. GND - Земля
  3. ALERT - Тревога, при использовании в режиме термостат
  4. SDA - I2C Data
  5. V+ - Питание 3.3V MAX!
  6. ADD0 - Конфигурация I2C адресса

Внимание: TMP102 это устройство с рабочим напряжением 3.3V, для подключения к 5V Arduino непроходимо преобразование уровней например при помощи Logic Level Converter

Подключение

к Arduino(5V)

Вариант подключения TMP102(3.3V) к Arduino(5V)с Logic Level Converter:

  • LV к 3.3V pin Arduino
  • HV к 5V pin Arduino
  • HV Канал 1 TXO к SDA pin Arduino (analog 4)
  • HV Канал 2 TXO к SCL pin Arduino (analog 5)
  • LV Канал 1 TXI к SDA pin of TMP102
  • LV Канал 2 TXI к SCL pin of TMP102
  • RX pins Logic Level Converter не используются
  • V+ от TMP102 на 3.3V
  • GND от TMP102 на землю
  • ADD0 от TMP102 на землю
  • ALT от TMP102 не подключаем
  • Все земли соединяем между собой

к Arduino(3.3V)

Вариант подключения TMP102(3.3V) к Arduino(3.3V) без преобразований:

  • V+ от TMP102 на 3.3V Arduino
  • SDA от TMP102 на SDA pin (analog 4)
  • SCL от TMP102 на SCL pin (analog 5)
  • GND от TMP102 на землю
  • ADD0 отTMP102 на землю
  • ALT от TMP102 не подключаем
  • Все земли соеденяем между собой

Расположение контактов

TMP102-top.jpg TMP102-bottom.jpg

TMP102-perspective.jpg

Расположение контактов при взгляде на верхнюю сторону:
TMP102-footprint.png

Пример кода

Пример кода для Arduino который показывает как считать данные с TMP102, преобразовать их в градусы по Цельсии и по Фарингейту. Полученные результаты выводятся на ЖКИ дисплей и дублируются в последовательный порт.

 #include <LiquidCrystal.h>
 #include <Wire.h>
 
 // initialize the library with the numbers of the interface pins
 LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
 byte res;
 byte msb;
 byte lsb;
 int val;
 float tC;  // temperature in Celsius
 float tF;  // temperature in Fahrenheit
 
 void setup()
 {
   // set up the LCD's number (col,row): 
   lcd.begin(20, 2);
   lcd.print("Temp");
 
   Serial.begin(9600);
   Wire.begin();
 }
 
 void loop()
 {
   lcd.clear();
   
   /* get new value from TMP102 */
   res = Wire.requestFrom(72,2);
   
   if (res == 2) {
     msb = Wire.receive(); /* Whole degrees */ 
     lsb = Wire.receive(); /* Fractional degrees */ 
     val = ((msb) << 4);   /* MSB */
     val |= (lsb >> 4);    /* LSB */
     
     /* calculate temperature */
     tC = val*0.0625;
     tF = (tC * 9/5) + 32;
     
     /* show temperatures on display */
     lcd.print(tC);
     lcd.print("\xdf""C");
 
     lcd.setCursor(0, 1);
     lcd.print(tF);
     lcd.print("\xdf""F");
 
 
     Serial.print(tC);
     Serial.print("C   ");
     Serial.print(tF);
     Serial.println("F");
 
   }
   else {
     lcd.print("ERR");
     Serial.println("ERROR");
   }
   
   delay(1000);
 }

Материалы