Arduino - Sensor de Porta
O sensor de porta é amplamente usado na área de segurança. Ele é usado para detectar/monitorar entradas (como porta, janela ...). O sensor de porta também é conhecido como "sensor de entrada", "sensor de contato" ou "sensor de janela".
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Sensor de Porta
Pinagem
O sensor de porta inclui dois componentes:
- Um reed switch com dois pinos
- Um ímã

Assim como um interruptor/botão comum, NÃO precisamos distinguir os dois pinos do reed switch.
Como Funciona
O ímã é fixado na porta/janela (parte móvel), e o reed switch é fixado no batente da porta (parte fixa). Os dois componentes ficam em contato quando a porta está fechada
- Quando o ímã está perto do reed switch, o circuito do reed switch está fechado
- Quando o ímã está longe do reed switch, o circuito do reed switch está aberto

※ Nota:
O reed switch em si NÃO gera LOW ou HIGH em seus pinos. Ele apenas tem um estado fechado ou aberto. Dependendo de como conectamos seus pinos ao Arduino, o valor no pino pode ser LOW, HIGH ou um valor flutuante (valor imprevisível). Para evitar o valor flutuante, DEVEMOS usar o resistor de pull-up ou pull-down no pino do Arduino
Se conectarmos um pino do reed switch ao GND e o outro pino do reed switch ao pino de entrada do Arduino com um resistor de pull-up (interno ou externo):
- Quando o ímã está perto do reed switch, o valor no pino de entrada do Arduino é LOW
- Quando o ímã está longe do reed switch, o valor no pino de entrada do Arduino é HIGH
Então:
- Para verificar o estado da porta, basta verificar o estado do pino de entrada do Arduino:
- Se o estado for LOW, a porta está fechada
- Se o estado for HIGH, a porta está aberta
- Para detectar os eventos de abertura/fechamento da porta, podemos detectar a mudança de estado no pino de entrada do Arduino:
- Se o estado mudar de LOW para HIGH, o evento de abertura da porta é detectado
- Se o estado mudar de HIGH para LOW, o evento de fechamento da porta é detectado
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Como Programar o Sensor de Porta
- Inicialize o pino do Arduino no modo de entrada digital usando a função pinMode(). Por exemplo, o pino 13
- Leia o estado do pino do Arduino usando a função digitalRead().
Código Arduino - Verificar o Estado Aberto e Fechado da Porta
Passos Rápidos
- Copie o código acima e abra com o Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino
- Aproxime o ímã do reed switch e depois afaste-o do reed switch.
- Veja o resultado no Serial Monitor.
Código Arduino - Detectar os Eventos de Abertura e Fechamento da Porta
- Copie o código acima e abra com o Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino
- Aproxime o ímã do reed switch e depois afaste-o do reed switch.
- Veja o resultado no Serial Monitor.
Vídeo
O vídeo de demonstração abaixo usa o código abaixo. Observe que o vídeo mostra o Arduino Uno R4, mas funciona da mesma forma para o Arduino Uno R3: