Arduino:Примеры/Чтение данных с I2C-датчика температуры TC74A0-5.0VAT

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Проверка/Оформление/Редактирование: Мякишев Е.А.



Чтение данных с I2C-датчика температуры TC74A0-5.0VAT

Данный пример демонстрирует подключение I2C-датчика температуры TC74A0-5.0VAT к Arduino Uno и чтение данных с него с использование библиотеки Wire.

Необходимые компоненты

Монтажная схема

Соберите схему согласно монтажной схеме.

<imagemap> Файл:Arduino_uno_i2c_tc74_1.png|1300px|center

rect 876 563 1032 763 Перейти на страницу описания TC74A0-5.0VAT rect 396 113 676 225 Перейти на страницу описания Arduino Uno </imagemap>

Распиновка I2C-датчика температуры TC74A0-5.0VAT

Код

#include <Wire.h>                              // Подключаем библиотеку Wire
int temp_address = 72;                         // Адрес(1001000) I2C-датчика температуры TC74A0-5.0VAT в десятичной нотации

void setup()
{
  Serial.begin(9600);                          // Инициализация последовательной передачи данных на скорости в 9600 бод
  Wire.begin();                                // Создаем Wire объект
}

void loop()
{
  // Отправка запроса
  Wire.beginTransmission(temp_address);        // Выбор ведомого устройства отправкой его адреса
  Wire.write(0);                               // Отправка 0, тем самым указывая что мы хотим прочитать данные из регистра температуры нашего датчика
  Wire.endTransmission();                      // Отправка стоп-бита, тем самым сообщаем об окончании записи на устройство
  
  // Чтение температуры с датчика 
  Wire.requestFrom(temp_address, 1);           // Запрос 1 байта по адресу устройства 
  while(Wire.available() == 0);                // Ожидаем ответа
  int c = Wire.read();                         // Чтение данных в переменную
 
  int f = round(c * 9.0 / 5.0 + 32.0);         // Переводим Цельсии в Фаренгейты и округляем результат
 
  // Передаем считанную температуру в последовательный порт
  Serial.print("Температура: ");
  Serial.print(c);
  Serial.print("C (");
  Serial.print(f);
  Serial.print("F");
  Serial.println(")");
 
  delay(500);                                // Задержка 500 мс.
}

См.также

Внешние ссылки