Подключение герконового переключателя к Arduino

Подключение герконового переключателя к Arduino

Если вы видели ноутбук или телефон-раскладушку, вы наверняка замечали, что при открытии и закрытии он соответственно включается или выключается. Но как он это определяет? Если вы думаете, что там есть какой-то переключатель, прикреплённый к петле, который обнаруживает это движение открытия и закрытия, — вы правы!

Эти устройства используют недорогой и очень надёжный датчик, называемый «герконовый переключатель» (Reed Switch), который срабатывает при приближении магнита.

Герконовые переключатели используются во множестве креативных применений, таких как датчики дверей, анемометры (определение скорости ветра) и т.д. Они идеально подходят для любого проекта, требующего бесконтактного управления. Давайте подробнее рассмотрим, что это такое и как они работают!

Кто изобрёл герконовые переключатели?

Как и многие другие великие изобретения, герконовый переключатель был создан в лаборатории Bell Laboratories. Его изобрёл Уолтер Б. Эллвуд в середине 1930-х годов. Его патентная заявка на электромагнитный переключатель была подана 27 июня 1940 года и официально одобрена 2 декабря 1941 года.

Подключение герконового переключателя к Arduino

Однако конструкция его оригинального герконового переключателя немного отличается от того, который мы используем сегодня.

Обзор герконового переключателя

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

Контакты герметично запаяны внутри стеклянной трубки для защиты от пыли и грязи. `Герметичная запайка `_ герконовых переключателей делает их пригодными для использования во взрывоопасных средах, где искры от обычных переключателей могли бы представлять опасность. Стеклянная трубка заполнена инертным газом, обычно азотом, или вакуумом для предотвращения окисления контактов.

Подключение герконового переключателя к Arduino

Как правило, контакты изготовлены из никель-железного сплава, который легко намагничивается (высокая магнитная проницаемость), но не сохраняет намагниченность надолго (низкая магнитная остаточность). Будучи механическим устройством, они требуют некоторого времени для реакции на изменения магнитного поля — другими словами, скорость переключения низкая (типичное время включения — 0,6 мс, время выключения — 0,2 мс) по сравнению с электронными переключателями.

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

Герконовый переключатель только определяет наличие магнитного поля и не измеряет его силу. Если вас интересует измерение напряжённости, аналоговый датчик Холла — лучший вариант для рассмотрения.

Как работает герконовый переключатель?

Ключ к пониманию работы герконовых переключателей заключается в осознании того, что они являются частью как магнитной, так и электрической цепи — через них протекает и магнитный поток, и электрический ток.

При приближении магнита к герконовому переключателю весь переключатель становится частью «магнитной цепи», включающей магнит (пунктирная линия на изображении показывает часть магнитного поля).

Подключение герконового переключателя к Arduino

Два контакта герконового переключателя становятся противоположными магнитными полюсами, поэтому они притягиваются и смыкаются. Не имеет значения, каким концом магнита вы приближаетесь: контакты всё равно поляризуются противоположным образом и притягиваются друг к другу.

Когда вы убираете магнит, контакты разъединяются и возвращаются в исходное положение.

Подключение герконового переключателя к Arduino

Такой герконовый переключатель является нормально разомкнутым (NO — Normally Open). Это означает, что в обычном состоянии, когда на переключатель не действует магнитное поле, он разомкнут и не проводит электричество. Когда магнит приближается достаточно близко для активации переключателя, контакты замыкаются и ток протекает через цепь.

На этих иллюстрациях движение контактов значительно преувеличено. У реальных герконовых переключателей контакты находятся на расстоянии всего нескольких микрон (примерно в десять раз тоньше человеческого волоса). Поэтому движение невидимо невооружённым глазом. Благодарим `Zátonyi Sándor `_ за макроскопические фотографии герконового переключателя.

Подключение герконового переключателя к Arduino

Подключение герконового переключателя к Arduino

Схема для нашего примера максимально проста. Сначала согните оба вывода переключателя так, чтобы они были направлены перпендикулярно от корпуса, образуя U-образную форму.

Вставьте герконовый переключатель в макетную плату. Затем с помощью проводов подключите один конец переключателя к земле, а другой — к контакту D2 на Arduino.

При таком подключении необходимо активировать встроенный подтягивающий резистор Arduino для входного контакта. В противном случае нужно использовать внешний подтягивающий резистор на 10 кОм в вашей схеме.

Вот пример схемы:

Подключение герконового переключателя к Arduino

Осторожно:

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

Код Arduino — Считывание состояния герконового переключателя

Вот простой скетч для Arduino на основе приведённой выше схемы. Он включает встроенный светодиод (подключённый к пину 13), когда вы подносите магнит к переключателю, и выключает, когда убираете его.

const int REED_PIN = 2;      // Pin connected to reed switch
const int LED_PIN = 13;      // LED pin

void setup() {
     Serial.begin(9600);
     pinMode(REED_PIN, INPUT_PULLUP);        // Enable internal pull-up for the reed switch
     pinMode(LED_PIN, OUTPUT);
}

void loop() {
     int proximity = digitalRead(REED_PIN); // Read the state of the switch

     // If the pin reads low, the switch is closed.
     if (proximity == LOW) {
             Serial.println("Switch closed");
             digitalWrite(LED_PIN, HIGH);    // Turn the LED on
     }
     else {
             Serial.println("Switch opened");
             digitalWrite(LED_PIN, LOW);             // Turn the LED off
     }
}

После загрузки скетча возьмите магнит и поднесите его к переключателю. Срабатывание должно произойти на расстоянии около 1 см от корпуса герконового переключателя. Попробуйте определить всю зону активации герконового переключателя. Посмотрите, как далеко вы можете отвести магнит!

Подключение герконового переключателя к Arduino

Пояснение к коду:

Код достаточно понятен. Сначала определяются две константы, которые указывают контакты Arduino, к которым подключены герконовый переключатель и встроенный светодиод.

const int REED_PIN = 2;
const int LED_PIN = 13;

В функции setup() контакт герконового переключателя настраивается как вход, а контакт светодиода — как выход. Также активируется внутренняя подтяжка для контакта герконового переключателя.

void setup() {
     Serial.begin(9600);
     pinMode(REED_PIN, INPUT_PULLUP);
     pinMode(LED_PIN, OUTPUT);
}

В функции loop() встроенный светодиод включается, если состояние контакта герконового переключателя — LOW, в противном случае выключается.

void loop() {
     int proximity = digitalRead(REED_PIN);

     if (proximity == LOW) {
             Serial.println("Switch closed");
             digitalWrite(LED_PIN, HIGH);
     }
     else {
             Serial.println("Switch opened");
             digitalWrite(LED_PIN, LOW);
     }
}