🛒
0 товар.
0 руб.
Логотип

Интернет-магазин «Неглупый Дом»

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

🐣 Проект: терморегулятор инкубатора на DS18B20 и реле

Схема терморегулятора инкубатора на DS18B20 и реле

DS18B20 держит температуру инкубатора в узком диапазоне, включая нагреватель через реле с гистерезисом.

Как это работает

Плата каждые несколько секунд опрашивает DS18B20 и сравнивает температуру с целевой. Если стало холоднее целевой минус гистерезис — включает нагреватель через реле, если теплее целевой плюс гистерезис — выключает. Пока температура между этими границами, реле не трогается — именно это и не даёт ему щёлкать каждую секунду от мелких колебаний.

Пошаговая сборка

Разводка модулей у разных производителей отличается — если на вашей плате контакты называются иначе, сориентируйтесь по маркировке.

  1. DS18B20: сигнал → D2, подтягивающий резистор 4.7 кОм между сигналом и VCC.
  2. Модуль реле (нагреватель): сигнал → D7, нагреватель подключается через клеммы реле, а не напрямую к Arduino.
  3. Сверьте маркировку модуля реле — для одноканальных часто нужен HIGH на включение, но встречаются и инвертированные версии.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить.

#include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
const int relayPin = 7;
const float targetTemp = 37.5;
const float hysteresis = 0.3;

void setup() {
  Serial.begin(9600);
  sensors.begin();
  pinMode(relayPin, OUTPUT);
}

void loop() {
  sensors.requestTemperatures();
  float t = sensors.getTempCByIndex(0);
  if (t == -127.0) {
    Serial.println("Датчик не отвечает, проверьте подключение");
    return;
  }
  Serial.print("Температура: ");
  Serial.println(t);
  if (t < targetTemp - hysteresis) {
    digitalWrite(relayPin, HIGH); // нагреватель включён
  } else if (t > targetTemp + hysteresis) {
    digitalWrite(relayPin, LOW); // нагреватель выключен
  }
  delay(5000);
}
                

Гистерезис не даёт реле щёлкать каждую секунду из-за мелких колебаний температуры — без него контакт реле быстро износится.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🎵 цветомузыка на индикаторе уров…🧭 электронный компас на GY-273 с… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу: 180 ₽ 162 ₽ (экономия 18 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина

Поиск


Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA