Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

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

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

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


Ambox content.png Черновик


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

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

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

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

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

Перейти на страницу описания TC74A0-5.0VATПерейти на страницу описания Arduino UnoArduino uno i2c tc74 1.png
Описание изображения
Распиновка I2C-датчика температуры TC74A0-5.0VAT

Код

  1. #include <Wire.h>                              // Подключаем библиотеку Wire
  2. int temp_address = 72;                         // Адрес(1001000) I2C-датчика температуры TC74A0-5.0VAT в десятичной нотации
  3.  
  4. void setup()
  5. {
  6.   Serial.begin(9600);                          // Инициализация последовательной передачи данных на скорости в 9600 бод
  7.   Wire.begin();                                // Создаем Wire объект
  8. }
  9.  
  10. void loop()
  11. {
  12.   // Отправка запроса
  13.   Wire.beginTransmission(temp_address);        // Выбор ведомого устройства отправкой его адреса
  14.   Wire.write(0);                               // Отправка 0, тем самым указывая что мы хотим прочитать данные из регистра температуры нашего датчика
  15.   Wire.endTransmission();                      // Отправка стоп-бита, тем самым сообщаем об окончании записи на устройство
  16.  
  17.   // Чтение температуры с датчика
  18.   Wire.requestFrom(temp_address, 1);           // Запрос 1 байта по адресу устройства
  19.   while(Wire.available() == 0);                // Ожидаем ответа
  20.   int c = Wire.read();                         // Чтение данных в переменную
  21.  
  22.   int f = round(c * 9.0 / 5.0 + 32.0);         // Переводим Цельсии в Фаренгейты и округляем результат
  23.  
  24.   // Передаем считанную температуру в последовательный порт
  25.   Serial.print("Температура: ");
  26.   Serial.print(c);
  27.   Serial.print("C (");
  28.   Serial.print(f);
  29.   Serial.print("F");
  30.   Serial.println(")");
  31.  
  32.   delay(500);                                // Задержка 500 мс.
  33. }

См.также

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