
Интернет-магазин «Неглупый Дом»
Элемент Пельтье (TEC1) при пропускании через него тока одновременно охлаждает одну сторону и нагревает другую — без движущихся частей и без фреона, в отличие от обычного холодильника. Модуль потребляет несколько ампер, поэтому включать его напрямую через пин Arduino невозможно — питание переключает MOSFET-модуль, а Arduino лишь плавно задаёт мощность через ШИМ.
Внутри элемента Пельтье — множество последовательно соединённых термопар на основе полупроводников p- и n-типа. Ток, проходящий через эти переходы, переносит тепловую энергию с одной стороны пластины на другую (эффект Пельтье): одна сторона заметно охлаждается, другая — нагревается на ту же величину энергии плюс тепло от собственного электрического сопротивления элемента. Поменяв полярность питания, можно поменять местами холодную и горячую стороны — в этом проекте полярность не переключается, рассматривается работа только в одном, заранее выбранном направлении.
MOSFET-модуль работает как электронный переключатель с управлением логическим уровнем: небольшое напряжение на затворе (из пина Arduino) полностью открывает канал между истоком и стоком, пропускающий много ампер силовой цепи. Подавая на затвор не просто HIGH/LOW, а ШИМ-сигнал (быстро мигающий с разной "скважностью"), можно регулировать среднюю мощность, доходящую до нагрузки, — чем больше доля времени, когда MOSFET открыт, тем сильнее охлаждение/нагрев.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
const int MOSFET_PIN = 9; // ШИМ-способный пин
void setup() {
Serial.begin(9600);
pinMode(MOSFET_PIN, OUTPUT);
}
void loop() {
// плавно увеличиваем мощность с 0 до максимума
for (int power = 0; power <= 255; power += 5) {
analogWrite(MOSFET_PIN, power);
Serial.print("Мощность: ");
Serial.print(map(power, 0, 255, 0, 100));
Serial.println(" %");
delay(200);
}
delay(5000); // держим на максимуме некоторое время
// и плавно снижаем обратно до нуля
for (int power = 255; power >= 0; power -= 5) {
analogWrite(MOSFET_PIN, power);
delay(200);
}
delay(5000);
}
Дополнительных библиотек не требуется — только встроенный `analogWrite()`. Плавное нарастание мощности в примере показывает принцип управления; для реального термостата мощность стоит привязать не к фиксированной программе, а к показаниям датчика температуры (см. "Как улучшить проект" ниже).
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 364 ₽ 328 ₽ (экономия 36 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.