Интернет-магазин «Неглупый Дом»
В проекте про тумблер ON-ON ручной переключатель только ФОРСИРУЕТ включение реле, не блокируя автоматику полностью — в "Как улучшить" там обещан вариант полной блокировки. Вот он: тумблер ON-OFF здесь полностью замещает решение автоматики, когда включён.
Вместо ИЛИ-логики здесь настоящее ветвление: `if (manualMode) { relayState = manualPosition; } else { relayState = autoCondition; }` — в ручном положении результат автоматики полностью игнорируется, давая настоящий полный обход.
ON-OFF подходит лучше ON-ON: одно положение однозначно "ручное управление", второе отдаёт управление автоматике — точнее соответствует смыслу "обход активен/неактивен".
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, могу что-то упустить. Замените autoCondition на реальную логику.
const int SWITCH_PIN = 2;
const int RELAY_PIN = 4;
void setup() {
pinMode(SWITCH_PIN, INPUT_PULLUP);
pinMode(RELAY_PIN, OUTPUT);
}
void loop() {
bool manualMode = digitalRead(SWITCH_PIN) == LOW;
bool autoCondition = false; // датчик с другого проекта
bool relayState;
if (manualMode) {
relayState = true;
} else {
relayState = autoCondition;
}
digitalWrite(RELAY_PIN, relayState ? HIGH : LOW);
delay(100);
}
Библиотек не требуется — только digitalRead()/digitalWrite().
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 144 ₽ 130 ₽ (экономия 14 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.