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

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


🌀 Проект: защитное отключение привода при превышении оборотов на датчике Холла A3144 (KY-024)

Модуль A3144 (KY-024) — цифровой датчик Холла: в отличие от аналогового KY-035, он просто переключается между HIGH и LOW при приближении магнита, без промежуточных значений. Закрепив один небольшой магнит на вращающемся валу, можно считать количество оборотов в секунду, а при превышении безопасного порога — отключить привод через реле.

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

A3144 — цифровой датчик Холла с триггером (гистерезисом внутри самой микросхемы): при приближении магнита нужной полярности выход резко переключается в одно состояние, при удалении — резко обратно, без "дребезга" на границе переключения, в отличие от многих механических датчиков. Если закрепить один магнит на валу (шестерне, колесе), то каждое прохождение магнита мимо датчика даёт один короткий импульс на выходе.

Считая количество этих импульсов за известный промежуток времени (например, за 1 секунду) и зная, что один оборот = один импульс (при одном магните на валу), легко пересчитать число импульсов в секунду в обороты в минуту (умножив на 60). Если результат превышает заданный безопасный порог — сигнал на реле снимается, отключая питание привода до вмешательства человека.

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

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

  1. Закрепите небольшой магнит на вращающемся валу так, чтобы при каждом обороте он проходил мимо датчика на расстоянии нескольких миллиметров.
  2. A3144 (KY-024): цифровой выход (D0/OUT) → D2 Arduino (пин с поддержкой внешнего прерывания на UNO/Nano), VCC → 5V, GND → GND.
  3. Модуль реле: сигнальный вход → D4, VCC → 5V, GND → GND. Привод подключайте к COM/NO реле строго по инструкции модуля — силовая часть может работать с реальным напряжением привода и должна быть собрана аккуратно и изолированно.

Скетч

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

const int HALL_PIN = 2;
const int RELAY_PIN = 4;
const int MAX_RPM = 600; // безопасный порог оборотов в минуту, подберите под свой механизм

volatile unsigned int pulseCount = 0;
unsigned long lastCheck = 0;
bool tripped = false; // флаг аварийного отключения — требует ручного сброса (перезагрузки)

void onPulse() {
  pulseCount++;
}

void setup() {
  Serial.begin(9600);
  pinMode(HALL_PIN, INPUT);
  pinMode(RELAY_PIN, OUTPUT);
  digitalWrite(RELAY_PIN, HIGH); // привод включён в норме

  attachInterrupt(digitalPinToInterrupt(HALL_PIN), onPulse, FALLING);
  lastCheck = millis();
}

void loop() {
  if (tripped) {
    digitalWrite(RELAY_PIN, LOW); // держим привод отключённым после срабатывания защиты
    return;
  }

  if (millis() - lastCheck >= 1000) { // раз в секунду пересчитываем обороты
    unsigned int rpm = pulseCount * 60; // один импульс на оборот за 1 секунду -> об/мин
    pulseCount = 0;
    lastCheck = millis();

    Serial.print("Обороты: ");
    Serial.println(rpm);

    if (rpm > MAX_RPM) {
      tripped = true;
      Serial.println("ПРЕВЫШЕНИЕ! Привод отключён.");
    }
  }
}

Библиотек не требуется — используется встроенный механизм аппаратных прерываний Arduino (`attachInterrupt`), который точнее постоянного опроса пина в `loop()` и не пропускает короткие импульсы. После срабатывания защиты код держит реле выключенным до перезагрузки Arduino — это осознанное решение безопасности, а не ошибка: автоматический повторный запуск после аварийного отключения привода обычно нежелателен без осмотра механизма человеком.

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

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

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

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

← 🧲 измеритель силы магнитного поля на аналого…🚧 сигнализатор границы (линии) на датчике от… →

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

Все 2 товара сразу в корзину: 191 ₽ 172 ₽ (экономия 19 ₽)

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

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

Корзина


Поиск



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