Рейтинг@Mail.ru
Модуль с герконом
Модуль с герконом

Как подключить геркон к Arduino

11 комментарии Arduino
Print Friendly, PDF & Email

Название «геркон» происходит от словосочетания «герметичный контакт». И это объясняет его устройство. По сути, геркон – это два разомкнутых (или замкнутых) контакта, находящихся в вакуумной колбе, которые меняют своё состояние на противоположное при воздействии на них магнитного поля. Герконы – очень популярные датчики, которые используются во многих задачах. Это и контроль открытия/закрытия дверей, разнообразные счётчики срабатываний, счётчики скорости и т.д. Давайте посмотрим, как подключить геркон к Arduino и посмотрим, как он работает.

Инструкция по подключению геркона к Arduino

Нам понадобятся:

1 Схема подключениягеркона к Arduino

Используем вот такой модуль с герконом. Подключим его к Arduino по приведённой схеме. Питание осуществляется от 5 В или от 3,3 В. Сигнал подключим к цифровому пину D2.

Модуль с герконом содержит переменный резистор номиналом 10 кОм. Этим резистором можно установить порог срабатывания геркона и таким образом отрегулировать чувствительность. Также модуль содержит компаратор LM393 для генерирования цифрового сигнала при срабатывании магнитного датчика.

Схема подключения геркона к Arduino
Схема подключения модуля с герконом к Arduino

2 Скетч обработкисрабатывания геркона

Напишем скетч обработки срабатывания геркона. Тут всё просто.

int switchPin = 2; // к выводу 2 подключён геркон
int ledPin = 13; // к пину 13 подключён встроенный светодиод

void setup() {
  pinMode(switchPin, INPUT); // задаём вывод 2 в качестве входа (будем считывать с него)
  digitalWrite(switchPin, HIGH); // активируем внутренний подтягивающий резистор вывода
  pinMode(ledPin, OUTPUT); // задаём вывод 13 в качестве выхода
  Serial.begin(9600); // задействуем последовательный порт
}

void loop() {
  int g = digitalRead(switchPin); // считываем показания с геркона
  digitalWrite(ledPin, !g); // инвертированные показания записываем в порт со светодиодом
  Serial.println(g); // посылаем в последовательный порт значения с геркона
  //когда геркон замкнут, значение "0" (LOW), когда разомкнут - "1" (HIGH)
  delay(20); // повторяем цикл через 20 мсек
}

Задаём номер пина, к которому подключаем выход модуля – "2", и включаем его на «прослушку». Активируем подтягивающий резистор на ножке "2". Задаём 13 пин в качестве выходного. Включаем в работу последовательный порт на скорости 9600 бод. А затем каждые 20 миллисекунд считываем показания геркона и выдаём значение в порт. Если геркон разомкнут – выводится "1", если замкнут – выводится "0". Кроме того, светодиод на 13-ой ножке Arduino светится, пока замкнуты контакты геркона.

Обратите внимание на инверсию считываемого с датчика сигнала.

3 Проверка работыдатчика с герконом

Подключим питание к Arduino. На модуле загорится светодиод, сигнализирующий о наличии питания модуля.

Теперь поднесём к геркону постоянный магнит – контакты геркона замкнутся, и загорится светодиод, показывающий срабатывание геркона. Снова уберём магнит – геркон разомкнётся, и светодиод погаснет. Если мы включим монитор последовательного порта, то увидим срабатывания геркона в виде нулей среди потока единиц при разомкнутом контакте.

Проверка работы датчика с герконом
Срабатывание геркона, подключённого к Arduino

4 Подключение герконак Arduino напрямую

Возьмём обычный геркон, без модуля (например, вот такой), и подключим его к Arduino. Геркон подключается аналогично кнопке. Код скетча останется таким же.

Соберём схему как на иллюстрации, включим питание Arduino. Если поднести постоянный магнит к геркону – светодиод Arduino загорится и будет светить пока замкнуты контакты геркона.

Подключение геркона к Arduino
Схема подключения геркона к Arduino

С помощью геркона можно сделать, например, датчик открытия двери или окна, датчик определения скорости вращения колеса или датчик уровня воды, и много чего ещё. Но геркон, всё же, является электромеханическим устройством, и срок его эксплуатации зависит от интенсивности использования. Поэтому можно использовать вместо геркона магнитный датчик Холла, о чём рассказывается в этой статье.

Последнее изменениеВоскресенье, 13 Январь 2019 18:08 Прочитано 41288 раз

Поблагодарить автора:

Поделиться

Print Friendly, PDF & Email

Похожие материалы (по тегу)

11 комментарии

  • Толик
    Толик 01.11.2019 19:37 Комментировать

    как подключить 2 (два) геркона на одновременную работу и передать данные о состоянии герконов с помощью nRF24LO1нужен скетчь ( NANO )

  • aave1
    aave1 02.11.2019 19:08 Комментировать

    Подключить два геркона к Arduino можно абсолютно аналогично тому, как описано здесь. А работу с беспроводным модулем nRF24LO1 я ещё здесь не разбирал, но скоро сделаю. Пока что - воспользуйтесь одной из многих библиотек для этих модулей. Например, этой https://iarduino.ru/file/27.html. Там же и примеры.

  • Толик
    Толик 02.11.2019 20:12 Комментировать

    Спасибо ВАМ, я тока начинаю с ардуино, а как будет выглядеть скетчь на два геркона исключающее дребезг контактов

  • aave1
    aave1 03.11.2019 16:49 Комментировать

    Толик, геркон это, по сути, кнопка. Как подключить к Arduino кнопку без дребезга, было рассказано в этой статье: https://soltau.ru/index.php/arduino/item/376-kak-podklyuchit-knopku-k-arduino

  • Толик
    Толик 03.11.2019 19:13 Комментировать

    aave1 спасибо... значит ничего не меняя в этом скетче просто загрузить его, а в каком месте кода указать второй геркон , чтоб работали одновременно

  • aave1
    aave1 03.11.2019 23:55 Комментировать

    В цикле "void loop()". В нём последовательно и непрерывно выполняются инструкции скетча. Только теперь вместо одного геркона данные будут считываться с двух. Примерно так:
    void loop() {
    int ger1 = digitalRead(pin1);
    int ger2 = digitalRead(pin2);
    // ...далее делаем что-то с этими значениями.
    }
    Это, конечно, упрощённо, и без учёта дребезга контактов. О борьбе с дребезгом контактов рассказывалось здесь: https://soltau.ru/index.php/arduino/item/393-kak-izbavitsya-ot-drebezga-kontaktov-pri-podklyuchenii-knopki-k-arduino

  • Толик
    Толик 04.11.2019 14:35 Комментировать

    aave1 Большое спасибо, попробую переписать код..

  • Чингис
    Чингис 12.11.2019 19:55 Комментировать

    Здравствуйте! Помогите пожалуйста. Поставил доп циркуляционный насос для настенного котла, но появилась проблема, что бы использовать горячую воду мне приходится отключать насос. Хотел это дело автоматизировать спомошью ардуино но в спрграмированием проблемы .В котле есть датчик протока на линии горячей воды. Клапон с герконом ( турбика с магнитом на лопасте крутится и замыкает геркон ) Помогите с скетчем. Ка сделать так, что бы реле остовалось включёным, пока поступают импульсы с геркона и отключалось когда импульсы перестали поступать.

  • aave1
    aave1 19.11.2019 17:49 Комментировать

    Чингис, добрый день! Ваш проект интересный, но связан со сферой жизни и здоровья. Поэтому использовать Ардуино в таких целях я бы не стал. А если бы и стал, то, по крайней мере, нужно написать надёжную программу и протестировать её в различных ситуациях, в том числе и нештатных. Это занимает время и немалое. Поэтому лучше обратитесь к профессионалам или купите профессиональное оборудование для этой цели.

  • Алексей
    Алексей 13.06.2021 00:38 Комментировать

    Здравствуйте. Заинтересовался Arduino. Подскажите, можно ли датчик открытия двери подключить к Arduino с модулем Wi-Fi для дальнейшей обработки этого сигнала в компьютерной программе по своему усмотрению? Заранее спасибо!

  • aave1
    aave1 13.06.2021 19:32 Комментировать

    Алексей! Да, это возможно.

Оставить комментарий