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

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

8 comments 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

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

Last modified onВоскреснье, 13 Январь 2019 18:08 Read 21586 times
Ключевые слова: :

Поделиться

Print Friendly, PDF & Email

8 comments

  • Толик
    Толик Пятница, 01 Ноябрь 2019 19:37 Ссылка на комментарий

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

  • aave1
    aave1 Суббота, 02 Ноябрь 2019 19:08 Ссылка на комментарий

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

  • Толик
    Толик Суббота, 02 Ноябрь 2019 20:12 Ссылка на комментарий

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

  • aave1
    aave1 Воскреснье, 03 Ноябрь 2019 16:49 Ссылка на комментарий

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

  • Толик
    Толик Воскреснье, 03 Ноябрь 2019 19:13 Ссылка на комментарий

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

  • aave1
    aave1 Воскреснье, 03 Ноябрь 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 Ноябрь 2019 14:35 Ссылка на комментарий

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

  • Чингис
    Чингис Вторник, 12 Ноябрь 2019 19:55 Ссылка на комментарий

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

Leave a comment

  1. Arduino это...
  2. Arduino это...
  3. Arduino это...
Отличный способ начать знакомство с электроникой, микроконтроллерами и программированием!
Замечательное средство для создания собственных электронных устройств, которые пригодятся в быту или для развлечения!
Уникальный конструктор, для которого разработаны десятки совместимых датчиков и модулей!
next
prev