
Интересно, что за магнитный выключатель стоит в сигнализации на дверях и окнах? Когда к модулю геркона подносят магнит, крошечный контакт внутри замыкается; Arduino читает его раз в секунду и выводит на экран компьютера 0 или 1. Приближай и удаляй магнит и смотри, как меняется значение.
Видео
Схема

Исходный код
C++ (Arduino IDE)
1// ─────────────────────────────────────────
2// BlueGrays · bluegrays.com
3// Чтение геркона
4// ─────────────────────────────────────────
5// Раз в секунду читает цифровой выход модуля с герконом и выводит его в
6// монитор порта. В модуле есть подтягивающий резистор: рядом с магнитом
7// контакт замыкается и значение равно 0, иначе 1.
8//
9// Пины:
10// D2 -> S модуля с герконом (сигнал)
11// Средний пин модуля к 5V, пин - к GND
12
13const int reedRelayPin = 2; // Вход модуля с герконом
14
15void setup() {
16 Serial.begin(9600); // Serial на скорости 9600 бод
17 pinMode(reedRelayPin, INPUT); // У модуля своя подтяжка (pull-up)
18}
19
20void loop() {
21 int sensorValue = digitalRead(reedRelayPin); // 0 = 0 = магнит, 1 = нет
22
23 Serial.print("Value: ");
24 Serial.println(sensorValue);
25
26 delay(1000); // Ждать 1 с
27}
28
Частые вопросы
Как работает геркон?
Две тонкие металлические пластинки внутри стеклянной трубки притягиваются друг к другу, когда подносят магнит, и замыкают цепь. Когда магнит убирают, пластинки расходятся, и цепь размыкается.
Нужен ли подтягивающий резистор?
Да, геркон ведёт себя как выключатель; чтобы пин не «висел», нужен подтягивающий или стягивающий резистор. Проще всего использовать INPUT_PULLUP: когда магнит приближается, читается LOW, когда удаляется — HIGH.
Насколько близко должен быть магнит?
В зависимости от силы магнита он обычно замечается на расстоянии 1–2 см. Важна и ориентация магнита: параллельно трубке он замечается лучше.
Хрупкие ли герконы?
Да, голые герконы в стеклянном корпусе легко ломаются при изгибе. Не сгибай их выводы близко к корпусу; дверные датчики в пластиковом корпусе прочнее.
