
Интернет-магазин «Неглупый Дом»
В другом проекте на сайте мощность модуля Пельтье плавно регулируется через ШИМ на MOSFET-модуле. Здесь — упрощённый подход: обычное реле полностью включает или полностью выключает модуль, без промежуточных уровней мощности, по показаниям датчика температуры — проще собрать, но грубее в управлении.
Принцип действия самого элемента Пельтье такой же, как и в проекте с ШИМ — ток через термопары переносит тепло с одной стороны на другую. Разница — в способе управления мощностью: вместо ШИМ-сигнала, который можно плавно менять от 0 до 100%, здесь реле — это просто механический выключатель на два положения, "вкл" или "выкл", без промежуточных значений. Это заметно проще по проводке и не требует MOSFET-модуля, но отдаёт на элемент либо полную мощность, либо вообще ничего.
Поэтому регулировка температуры здесь происходит не плавным изменением мощности (как это было бы с ШИМ), а циклами полного включения и полного выключения с гистерезисом — таким же приёмом, что и в термостате на LM75: включаем на полную мощность при превышении порога, выключаем полностью при достижении нижнего порога, и так по кругу.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему. Пример ниже использует
// условное значение температуры вместо реального датчика — подключите
// свой датчик (например, DS18B20) и замените getTemperature() на реальное чтение.
const int RELAY_PIN = 2;
const float TEMP_ON = 10.0; // включаем охлаждение выше этой температуры
const float TEMP_OFF = 5.0; // выключаем ниже этой — гистерезис 5 градусов
bool peltierOn = false;
float getTemperature() {
// ЗАМЕНИТЕ на реальное чтение вашего датчика температуры, например DS18B20
return 8.0; // временная заглушка для примера
}
void setup() {
Serial.begin(9600);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
}
void loop() {
float temp = getTemperature();
if (!peltierOn && temp > TEMP_ON) {
peltierOn = true;
digitalWrite(RELAY_PIN, HIGH);
Serial.println("Пельтье включен (полная мощность)");
} else if (peltierOn && temp < TEMP_OFF) {
peltierOn = false;
digitalWrite(RELAY_PIN, LOW);
Serial.println("Пельтье выключен");
}
delay(2000);
}
Дополнительных библиотек не требуется для самой логики реле — только `digitalWrite()`. Подключите реальный датчик температуры по инструкции из соответствующего проекта на сайте и замените заглушку `getTemperature()` на настоящее чтение.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 382 ₽ 344 ₽ (экономия 38 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.