🛒
0 товаров
0 руб.

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


🛑 Проект: автоотключение нагрузки при перегрузке по току на ACS712

Датчик ACS712 и модуль реле

ACS712 непрерывно следит за током нагрузки — как только он превышает безопасный порог (короткое замыкание, перегрузка), Arduino мгновенно обесточивает линию через реле, защищая проводку и подключённое оборудование.

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

ACS712 — датчик тока на эффекте Холла: нагрузка физически пропускается через внутреннюю токовую шину датчика, и магнитное поле, создаваемое протекающим через эту шину током, преобразуется в пропорциональное аналоговое напряжение на выходе OUT. В состоянии нулевого тока датчик выдаёт примерно половину напряжения питания (около 2.5В при питании 5В), а при протекании тока это напряжение отклоняется в одну или другую сторону в зависимости от направления тока.

Чтобы получить силу тока в амперах, нужно вычесть из измеренного напряжения эту «нулевую точку» (2.5В) и разделить результат на коэффициент чувствительности датчика, который указан на самой плате и зависит от варианта исполнения: у плат на 5А он обычно около 0.185 В/А, на 20А — около 0.100 В/А, на 30А — около 0.066 В/А (у разных производителей и партий могут быть небольшие отклонения от этих паспортных значений — для точной защиты рекомендуется откалибровать по образцовому амперметру).

Ключевая особенность этого проекта — защита «с памятью»: в отличие от обычного автоматического предохранителя, который включается обратно сам, здесь после срабатывания реле остаётся разомкнутым до перезагрузки платы. Это сделано намеренно: превышение тока почти всегда говорит о реальной проблеме (короткое замыкание, перегрузка, повреждённая изоляция), и автоматическое повторное включение могло бы просто раз за разом включать неисправную цепь, что опаснее, чем оставить её выключенной до проверки человеком.

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

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

  1. Подключите ACS712: OUT → A0, VCC → 5V, GND → GND Arduino.
  2. Пропустите провод нагрузки через токовые клеммы датчика (это силовая, а не сигнальная цепь — сечение провода должно соответствовать току нагрузки).
  3. Подключите модуль реле KY-019: сигнал → D7, VCC и GND — к питанию; линию питания нагрузки включите через нормально замкнутые контакты реле.
  4. Уточните паспортный коэффициент чувствительности именно вашего варианта платы ACS712 (5А/20А/30А — обычно указан на самой плате) и подставьте в код вместо примерного значения.
  5. Перед подключением реальной нагрузки проверьте логику на малом безопасном токе — убедитесь, что реле отключает линию при превышении заданного порога `maxCurrent`.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить. Основу
// и идею я накидал, но проверьте под свою схему.

const int sensorPin = A0;
const int relayPin = 7;
const float maxCurrent = 5.0; // ампер, безопасный порог — подберите под вашу нагрузку
// 0.066 В/А — чувствительность варианта ACS712-30A; у плат на 20А это 0.100,
// у плат на 5А — около 0.185 (точное значение смотрите на маркировке своей платы)
const float sensitivity = 0.066;
bool tripped = false;

void setup() {
  Serial.begin(9600);
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, HIGH); // нагрузка включена
}

void loop() {
  if (tripped) return; // после срабатывания требуется перезагрузка платы для сброса

  int raw = analogRead(sensorPin);
  float voltage = (raw / 1023.0) * 5.0;
  float current = abs(voltage - 2.5) / sensitivity;

  if (current > maxCurrent) {
    Serial.println("Перегрузка! Нагрузка отключена.");
    digitalWrite(relayPin, LOW);
    tripped = true;
  }
  delay(10); // быстрый опрос важен для своевременной защиты
}

После срабатывания защиты состояние `tripped` не сбрасывается автоматически — это осознанное решение: перегрузка обычно означает реальную неисправность, которую стоит устранить перед повторным включением, а не просто попробовать снова.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🚪 ворота с двойным управлением — кнопка и ве…🔋 тестер ёмкости аккумулятора на ACS712 в мА… →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу в корзину: 214 ₽ 193 ₽ (экономия 21 ₽)

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

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

Корзина


Поиск



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