
Интернет-магазин «Неглупый Дом»
Однофазные асинхронные моторы (насосы, компрессоры, некоторые вентиляторы) не могут самостоятельно начать вращение без начального фазового сдвига — для этого служит пусковой конденсатор. Это важно знать перед автоматизацией такого мотора через реле: само реле лишь включает и выключает питание, а конденсатор остаётся обязательной частью электрической схемы самого мотора, с которой реле никак не взаимодействует.
У однофазного асинхронного мотора есть основная и вспомогательная (пусковая) обмотка. Конденсатор, включённый последовательно со вспомогательной обмоткой, сдвигает фазу тока в ней относительно основной обмотки — это создаёт вращающееся магнитное поле, нужное для старта мотора с места. Без конденсатора нужной ёмкости мотор может гудеть, но не запускаться, запускаться слабо, перегреваться или работать неэффективно.
Arduino и модуль реле НЕ взаимодействуют с конденсатором электрически вообще — реле просто включает и выключает сетевое питание всей схемы мотора (которая уже содержит свой конденсатор, подключённый по собственной схеме мотора согласно его паспорту), в точности как в любом другом проекте этого сайта с реле на сетевой нагрузке. Ёмкость конденсатора подбирается строго по паспорту КОНКРЕТНОГО мотора, не угадывается и не берётся универсальной — конденсатор 1 мкФ в этом комплекте — лишь иллюстративный пример одного из номиналов, не рекомендация для произвольного мотора.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.
const int RELAY_PIN = 2;
const unsigned long ON_TIME = 5UL * 60UL * 1000UL; // 5 минут работы
const unsigned long OFF_TIME = 55UL * 60UL * 1000UL; // 55 минут паузы
void setup() {
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
}
void loop() {
digitalWrite(RELAY_PIN, HIGH);
delay(ON_TIME);
digitalWrite(RELAY_PIN, LOW);
delay(OFF_TIME);
}
Дополнительных библиотек не требуется. Использование `delay()` на длинные интервалы здесь приемлемо, так как скетчу больше ничего параллельно делать не нужно — для более сложных сценариев (с датчиками) лучше перейти на `millis()`, см. "Как улучшить проект".
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу в корзину: 171 ₽ 154 ₽ (экономия 17 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.