TMP102 — различия между версиями
SkyStorm (обсуждение | вклад) м (→Пример кода) |
SkyStorm (обсуждение | вклад) м |
||
(не показано 7 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
== Описание == | == Описание == | ||
− | + | '''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. | |
[[Image:TMP102PinConf.png|300px]] | [[Image:TMP102PinConf.png|300px]] | ||
[[Image:TMP102Diagram.png|300px]] | [[Image:TMP102Diagram.png|300px]] | ||
− | + | Соответственно | |
+ | # '''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] | ||
== Подключение == | == Подключение == | ||
− | + | === к 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]] не подключаем | ||
+ | * Все земли соеденяем между собой | ||
− | + | === Расположение контактов === | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
[[Image:TMP102-top.jpg|150px]] | [[Image:TMP102-top.jpg|150px]] | ||
Строка 33: | Строка 57: | ||
[[Image:TMP102-perspective.jpg|300px]] | [[Image:TMP102-perspective.jpg|300px]] | ||
− | + | Расположение контактов при взгляде на верхнюю сторону:<br/> | |
[[Image:TMP102-footprint.png|150px]] | [[Image:TMP102-footprint.png|150px]] | ||
== Пример кода == | == Пример кода == | ||
− | Пример кода для [[ | + | Пример кода для [[Arduino]] который показывает как считать данные с TMP102, преобразовать их в градусы по Цельсии и по Фарингейту. Полученные результаты выводятся на ЖКИ дисплей и дублируются в последовательный порт. |
#include <<span style="color: #CC6600;">LiquidCrystal</span>.h> | #include <<span style="color: #CC6600;">LiquidCrystal</span>.h> | ||
Строка 109: | Строка 133: | ||
* Схема отладочной платы: [[Media:TMP102_Breakout.pdf | TMP102 Breakout]] | * Схема отладочной платы: [[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], [http:// | + | * Где купить [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.
Соответственно
- SCL - I2C Clock
- GND - Земля
- ALERT - Тревога, при использовании в режиме термостат
- SDA - I2C Data
- V+ - Питание 3.3V MAX!
- 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 не подключаем
- Все земли соеденяем между собой
Расположение контактов
Расположение контактов при взгляде на верхнюю сторону:
Пример кода
Пример кода для 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); }
Материалы
- Источник: TMP102 Wiring
- Описание: TMP102 Datasheet
- Схема отладочной платы: TMP102 Breakout
- Подключение к Arduino(5v) используя преобразователь уровней Sparkfun Logic Level Converter: http://forum.sparkfun.com/viewtopic.php?f=8&t=20938&p=97163
- Где купить Sparkfun, 4Robots и другие.