Arduino Uno · pinport
готово
⋮

Arduino Uno: HTU21D по I2C без библиотеки

Температура и влажность двумя командами по I2C. Контрольная сумма проверяется в скетче, чтобы сбой на шине не стал показанием.

Что на схеме

Плата Arduino Uno, к ней подключены:

  • Датчик HTU21D: температура и влажность (I2C) — htu1, влажность 45 %, температура 23 °C

Задействованы выводы платы: 5V, GND, A4, A5. Всего соединений на схеме: 4.

Библиотеки

Пример собирается с библиотеками:

  • Wire

Они уже установлены на сервере сборки — отмечать их в проекте вручную не нужно, список приезжает вместе с примером.

Как это устроено в коде

Основное, чем пользуется скетч:

  • delay() — пауза, на время которой ядро занято ожиданием
  • Serial.begin() — открывает монитор порта на заданной скорости
  • Wire.begin() — поднимает шину I²C, по ней говорят датчики и дисплеи
  • Serial.println() — печатает строку в монитор порта
  • constrain() — зажимает значение в границах

В скетче 71 строка; свои функции: crc8(), measure(); подключено заголовков: 1. Сам скетч открыт на соседней вкладке — его можно менять и запускать заново.

Что попробовать изменить

  • Замените delay() на счёт по millis() — и loop() освободится для всего остального, что должно происходить одновременно.
  • Добавьте свои Serial.println() в интересных местах — монитор порта здесь и есть отладчик.
  • Перенесите деталь на другой вывод — на схеме и в коде — и убедитесь, что пример работает так же.
  • Нажмите «Форкнуть»: копия станет вашим проектом, и в ней можно менять что угодно.

Смотрите также

← Все примеры галереи

Схема
Проект из галереи — запускать можно, менять нельзя.

      
Сборка ещё не запускалась.

    Печатайте в Serial числа — они станут графиком. Serial.println(t); — один ряд, Serial.printf("t:%.1f h:%.1f\n", t, h); — два с подписями. Формат тот же, что понимает плоттер Arduino IDE.