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