Интернет-магазин «Неглупый Дом»
В другом проекте мультиплексор CD74HC4067 просто демонстрирует опрос нескольких датчиков. Здесь та же идея для задачи: Arduino по очереди опрашивает несколько "зон" через один мультиплексор и поднимает тревогу, если хоть в одной порог превышен.
Переключение каналов такое же: 4 пина (S0-S3) задают код канала (0-15), мультиплексор подключает выбранный канал к общему SIG, который читается `analogRead()`. Разница — в логике опроса: код проходит по зонам подряд в цикле, проверяет порог для каждой, включает общий зуммер при тревоге хоть в одной.
Практическое преимущество — не тратить по одному аналоговому пину на зону (их у UNO/Nano всего 6), а подключить гораздо больше зон через один мультиплексор, используя всего 5 пинов независимо от числа зон.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить.
const int S0 = 2, S1 = 3, S2 = 4, S3 = 5;
const int SIG_PIN = A0;
const int BUZZER_PIN = 8;
const int ZONE_CHANNELS[3] = {0, 1, 2};
const int ZONE_THRESHOLD = 600;
void selectChannel(int channel) {
digitalWrite(S0, bitRead(channel, 0));
digitalWrite(S1, bitRead(channel, 1));
digitalWrite(S2, bitRead(channel, 2));
digitalWrite(S3, bitRead(channel, 3));
}
void setup() {
Serial.begin(9600);
pinMode(S0, OUTPUT); pinMode(S1, OUTPUT); pinMode(S2, OUTPUT); pinMode(S3, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
bool anyZoneAlarmed = false;
for (int i = 0; i < 3; i++) {
selectChannel(ZONE_CHANNELS[i]);
delayMicroseconds(50);
if (analogRead(SIG_PIN) > ZONE_THRESHOLD) anyZoneAlarmed = true;
}
if (anyZoneAlarmed) tone(BUZZER_PIN, 2500, 100);
delay(200);
}
Дополнительных библиотек не требуется. При добавлении зон увеличьте массив `ZONE_CHANNELS` и размер циклов.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 146 ₽ 131 ₽ (экономия 15 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.