Интернет-магазин «Неглупый Дом»
В другом проекте четыре датчика комплекта KY-001/013/028/015 просто сравниваются визуально на LCD1602. Здесь та же идея — для практики: автоматически заметить, если один датчик вышел из строя, по тому, что его показания перестали быть похожими на остальные три.
Как и в проекте с LCD, показания не переводятся в градусы — сравниваются относительные числа `analogRead()`. При одинаковых условиях показания всех четырёх должны быть близки; обрыв или повреждение одного термистора резко меняет его значение (залипает на 0 или 1023), выделяясь на фоне остальных.
Код вычисляет среднее по всем четырём и проверяет, не отклоняется ли один из них больше заданного порога — если да, зуммер подаёт сигнал.
Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить. Показания —
// относительные числа analogRead(), не калиброванные градусы.
const int SENSOR_PINS[4] = {A0, A1, A2, A3};
const int BUZZER_PIN = 8;
const int DEVIATION_THRESHOLD = 150;
void setup() {
Serial.begin(9600);
pinMode(BUZZER_PIN, OUTPUT);
}
void loop() {
int values[4];
long sum = 0;
for (int i = 0; i < 4; i++) { values[i] = analogRead(SENSOR_PINS[i]); sum += values[i]; }
int average = sum / 4;
bool anyOutlier = false;
for (int i = 0; i < 4; i++) {
if (abs(values[i] - average) > DEVIATION_THRESHOLD) anyOutlier = true;
}
if (anyOutlier) tone(BUZZER_PIN, 2500, 200);
delay(1000);
}
Дополнительных библиотек не требуется. Распечатайте нормальные показания всех четырёх исправных датчиков, чтобы подобрать реалистичный `DEVIATION_THRESHOLD`.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 280 ₽ 252 ₽ (экономия 28 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.