Arduino:Примеры/Чтение данных с I2C-датчика температуры TC74A0-5.0VAT
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Проверка/Оформление/Редактирование: Мякишев Е.А.
Чтение данных с I2C-датчика температуры TC74A0-5.0VAT
Данный пример демонстрирует подключение I2C-датчика температуры TC74A0-5.0VAT к Arduino Uno и чтение данных с него с использование библиотеки Wire.
Необходимые компоненты
- Плата Arduino Uno, 1 шт.;
- I2C-датчика температуры TC74A0-5.0VAT, 1 шт.;
- Резистор 4,7 кОм, 2 шт.;
- Макетная плата;
- Провода перемычки;
Монтажная схема
Соберите схему согласно монтажной схеме.
<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>
Код
#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 мс.
}