Dicas - Reed Switch - Sensor Magnético
O Reed Switch é um sensor magnético que podemos utilizar para detectar se uma porta ou janela está aberta ou fechada. É um sensor amplamente utilizado em portões eletrônicos como fim de curso, por exemplo.
![]() |
| Reed Switch para fim de curso já com o imã. |
O sensor muda seu status quando colocamos um campo magnético próximo, neste caso um imã. Ele fecha o circuito ao aproximarmos o imã e abre o circuito quando o removemos.
Na imagem abaixo você poderá ver como o sensor é ligado em um dispositivo ESP8266, porém a configuração tanto física quanto da codificação é basicamente a mesma para demais placas de programação como o Arduino, Digispark Attiny85 Micro USB, ATMega328P entre diversos outros.
Na ligação acima, a fonte de 3v é ligada direto em uma das pontas do reed switch. A outra ponta do sensor é ligada ao resistor de 1K, ligada a porta do dispositivo, neste caso a D2 e ao resistor, que tem a sua outra ponta ligada no aterramento GROUND.
Já na programação primeiramente temos que definir a porta de comunicação, ou a GPIO do dispositivo.
Para isto usaremos uma constante conforme o código abaixo. Na nomenclatura, para padronização, usaremos o nome do sensor, acrescido de 01.
const int reedSwitch01 = 4 ;
Após, no setup(), definiremos o modo que será acessado este pino(porta), se é de entrada(INPUT) ou saída(OUTPUT). Neste caso o nosso dispositivo receberá o status do reed switch, portanto será um INPUT.
pinMode(reedSwitch01, INPUT);
E para finalizar, dentro de uma função ou conforme nosso exemplo em anexo, faremos a leitura através da constante, verificando se o sinal está alto ou baixo, (HIGH, LOW).
Já na programação primeiramente temos que definir a porta de comunicação, ou a GPIO do dispositivo.
Para isto usaremos uma constante conforme o código abaixo. Na nomenclatura, para padronização, usaremos o nome do sensor, acrescido de 01.
const int reedSwitch01 = 4 ;
Após, no setup(), definiremos o modo que será acessado este pino(porta), se é de entrada(INPUT) ou saída(OUTPUT). Neste caso o nosso dispositivo receberá o status do reed switch, portanto será um INPUT.
pinMode(reedSwitch01, INPUT);
E para finalizar, dentro de uma função ou conforme nosso exemplo em anexo, faremos a leitura através da constante, verificando se o sinal está alto ou baixo, (HIGH, LOW).
if (digitalRead(reedSwitch01) == HIGH) { Serial.println("Fechado"); } if (digitalRead(reedSwitch01) == LOW) { Serial.println("Aberto"); }
A função digitalRead fará a leitura do nosso sensor, sendo que, se o imã estiver próximo do reedSwitch, o resultado será HIGH, caso esteja longe, será LOW.
Desta forma basta apenas mudar a codificação interna e adaptá-la ao seu projeto.
Boa Programação!!!






Nenhum comentário: