Как подключить геркон к Arduino
Название «геркон» происходит от словосочетания «герметичный контакт». И это объясняет его устройство. По сути, геркон – это два разомкнутых (или замкнутых) контакта, находящихся в вакуумной колбе, которые меняют своё состояние на противоположное при воздействии на них магнитного поля. Герконы – очень популярные датчики, которые используются во многих задачах. Это и контроль открытия/закрытия дверей, разнообразные счётчики срабатываний, счётчики скорости и т.д. Давайте посмотрим, как подключить геркон к Arduino и посмотрим, как он работает.
Инструкция по подключению геркона к Arduino
Нам понадобятся:
- Arduino UNO или иная совместимая плата;
- геркон или модуль с герконом;
- постоянный магнит;
- соединительные провода (рекомендую вот такой набор);
- макетная плата (breadboard);
- персональный компьютер со средой разработки Arduino IDE.
1 Схема подключениягеркона к Arduino
Используем вот такой модуль с герконом. Подключим его к Arduino по приведённой схеме. Питание осуществляется от 5 В или от 3,3 В. Сигнал подключим к цифровому пину D2.
Модуль с герконом содержит переменный резистор номиналом 10 кОм. Этим резистором можно установить порог срабатывания геркона и таким образом отрегулировать чувствительность. Также модуль содержит компаратор LM393 для генерирования цифрового сигнала при срабатывании магнитного датчика.

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. На модуле загорится светодиод, сигнализирующий о наличии питания модуля.
Теперь поднесём к геркону постоянный магнит – контакты геркона замкнутся, и загорится светодиод, показывающий срабатывание геркона. Снова уберём магнит – геркон разомкнётся, и светодиод погаснет. Если мы включим монитор последовательного порта, то увидим срабатывания геркона в виде нулей среди потока единиц при разомкнутом контакте.

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

С помощью геркона можно сделать, например, датчик открытия двери или окна, датчик определения скорости вращения колеса или датчик уровня воды, и много чего ещё. Но геркон, всё же, является электромеханическим устройством, и срок его эксплуатации зависит от интенсивности использования. Поэтому можно использовать вместо геркона магнитный датчик Холла, о чём рассказывается в этой статье.
Поблагодарить автора:
Поделиться
Похожие материалы (по тегу)
11 комментарии
-
Толик 01.11.2019 19:37 Комментировать
как подключить 2 (два) геркона на одновременную работу и передать данные о состоянии герконов с помощью nRF24LO1нужен скетчь ( NANO )
-
aave1 02.11.2019 19:08 Комментировать
Подключить два геркона к Arduino можно абсолютно аналогично тому, как описано здесь. А работу с беспроводным модулем nRF24LO1 я ещё здесь не разбирал, но скоро сделаю. Пока что - воспользуйтесь одной из многих библиотек для этих модулей. Например, этой https://iarduino.ru/file/27.html. Там же и примеры.
-
Толик 02.11.2019 20:12 Комментировать
Спасибо ВАМ, я тока начинаю с ардуино, а как будет выглядеть скетчь на два геркона исключающее дребезг контактов
-
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 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 -
-
Чингис 12.11.2019 19:55 Комментировать
Здравствуйте! Помогите пожалуйста. Поставил доп циркуляционный насос для настенного котла, но появилась проблема, что бы использовать горячую воду мне приходится отключать насос. Хотел это дело автоматизировать спомошью ардуино но в спрграмированием проблемы .В котле есть датчик протока на линии горячей воды. Клапон с герконом ( турбика с магнитом на лопасте крутится и замыкает геркон ) Помогите с скетчем. Ка сделать так, что бы реле остовалось включёным, пока поступают импульсы с геркона и отключалось когда импульсы перестали поступать.
-
aave1 19.11.2019 17:49 Комментировать
Чингис, добрый день! Ваш проект интересный, но связан со сферой жизни и здоровья. Поэтому использовать Ардуино в таких целях я бы не стал. А если бы и стал, то, по крайней мере, нужно написать надёжную программу и протестировать её в различных ситуациях, в том числе и нештатных. Это занимает время и немалое. Поэтому лучше обратитесь к профессионалам или купите профессиональное оборудование для этой цели.
-
Алексей 13.06.2021 00:38 Комментировать
Здравствуйте. Заинтересовался Arduino. Подскажите, можно ли датчик открытия двери подключить к Arduino с модулем Wi-Fi для дальнейшей обработки этого сигнала в компьютерной программе по своему усмотрению? Заранее спасибо!
-