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

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

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

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

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

ACS712 следит за током — при превышении порога Arduino обесточивает линию через реле.

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

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

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

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

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

  1. ACS712: OUT → A0, нагрузка через клеммы датчика.
  2. Модуль реле KY-019: сигнал → D7, линию питания нагрузки — через нормально замкнутые контакты реле.
  3. Уточните паспортный коэффициент чувствительности своей платы ACS712 и подставьте в код.

Скетч

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

const int sensorPin = A0;
const int relayPin = 7;
const float maxCurrent = 5.0; // подберите под вашу нагрузку
const float sensitivity = 0.066; // уточните для своей платы (0.066/0.100/0.185)
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: Электронные модули.

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

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

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

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

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

Корзина

Поиск


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