🛒
0 товар.
0 руб.
Логотип

Интернет-магазин «Неглупый Дом»

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

⚠️ Проект: сигнализация неисправного датчика в комплекте термисторов KY-001/013/028/015

В другом проекте четыре датчика комплекта KY-001/013/028/015 просто сравниваются визуально на LCD1602. Здесь та же идея — для практики: автоматически заметить, если один датчик вышел из строя, по тому, что его показания перестали быть похожими на остальные три.

Как это работает

Как и в проекте с LCD, показания не переводятся в градусы — сравниваются относительные числа `analogRead()`. При одинаковых условиях показания всех четырёх должны быть близки; обрыв или повреждение одного термистора резко меняет его значение (залипает на 0 или 1023), выделяясь на фоне остальных.

Код вычисляет среднее по всем четырём и проверяет, не отклоняется ли один из них больше заданного порога — если да, зуммер подаёт сигнал.

Пошаговая сборка

Так как реализации данного модуля бывают разные, если у вас на плате нет тех контактов, которые указаны ниже — сориентируйтесь по названиям контактов на своей плате.

  1. Каждый из четырёх датчиков: выход → свой пин (A0-A3), VCC → 5V, GND → GND.
  2. Зуммер: сигнал → D8, GND → GND.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, я языковая
// модель, а не специализированный кодер, могу что-то упустить. Показания —
// относительные числа 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 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина

Поиск


Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA