ESP32 - Sensor de Inclinação SW520D
O módulo sensor de inclinação SW520D consegue detectar inclinação ou mudanças de orientação no ambiente ao redor. Ele pode ser usado para criar projetos que respondem à inclinação, como um alarme que dispara quando um objeto é mexido ou um servo motor que reage a mudanças de orientação.
Neste tutorial, vamos aprender a usar o ESP32 e um sensor de inclinação SW520D para detectar inclinação. Vamos ver:
- Como conectar o sensor de inclinação SW520D ao ESP32
- Como programar o ESP32 para detectar inclinação usando o sensor de inclinação SW520D.

Depois disso, você pode modificar o código para acionar um LED ou uma lâmpada (usando um relé) quando uma inclinação for detectada, ou até fazer um servo motor girar.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables ESP32 Starter Kit (ESP32 included) | |
| 1 | × | DIYables ESP32 S3 Starter Kit (ESP32 S3 included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sobre o Sensor de Inclinação SW520D
O módulo sensor de inclinação SW520D pode ser usado para detectar inclinação ou mudanças de orientação no ambiente ao redor. Dentro do módulo há uma pequena esfera de metal que rola entre dois contatos elétricos, dependendo do ângulo de inclinação. O módulo envia um sinal digital simples (ON/OFF), o que facilita a interface com o ESP32.
Pinagem do Sensor de Inclinação SW520D
O sensor de inclinação SW520D tem três pinos:
- Pino VCC: deve ser conectado a VCC (3.3V a 5V)
- Pino GND: deve ser conectado a GND (0V)
- Pino DO: é um pino de saída: HIGH quando o sensor está na vertical e LOW quando o sensor está inclinado. Esse pino deve ser conectado a um pino de entrada do ESP32.

O módulo sensor de inclinação SW520D tem dois LEDs indicadores:
- Um LED indicador mostra o estado da alimentação.
- O outro LED indicador mostra o estado da inclinação: acende quando o sensor está na vertical e apaga quando ele está inclinado.
Como Funciona
Veja como o pino de saída do sensor se comporta:
- Quando o sensor está na vertical, a esfera de metal lá dentro fecha o contato e o pino de saída vai para HIGH.
- Quando o sensor está inclinado, a esfera de metal lá dentro abre o contato e o pino de saída vai para LOW.
Diagrama de Ligação
- Como conectar o ESP32 e o sensor de inclinação SW520D usando uma protoboard

This image is created using Fritzing. Click to enlarge image
Se você não sabe como alimentar o ESP32 e outros componentes, veja as instruções no tutorial a seguir: Como alimentar o ESP32.
- Como conectar o ESP32 e o sensor de inclinação SW520D usando uma placa breakout com bornes de parafuso

Como Programar o Sensor de Inclinação SW520D
- Inicialize o pino do ESP32 no modo de entrada digital usando a função pinMode(). Por exemplo, o pino GPIO18
- Leia o estado do pino do ESP32 usando a função digitalRead().
Código ESP32 - Detectando a inclinação
Passos Rápidos
- Se esta é a primeira vez que você usa o ESP32, veja como configurar o ambiente para o ESP32 no Arduino IDE.
- Copie o código acima e abra no Arduino IDE
- Clique no botão Upload do Arduino IDE para fazer o upload do código para o ESP32
- Incline o sensor SW520D para frente e para trás
- Veja o resultado no Serial Monitor.
Agora temos a liberdade de personalizar o código e fazê-lo acionar um LED ou uma lâmpada quando uma inclinação for detectada. Podemos até fazer um servo motor girar de acordo com a inclinação. Para orientações mais detalhadas e passo a passo, consulte os tutoriais indicados no final deste tutorial.
Solução de Problemas
Se você tiver algum problema com o funcionamento do sensor de inclinação SW520D, considere os seguintes passos de solução de problemas:
- Verifique a orientação: O SW520D é sensível à orientação da montagem. Garanta que ele esteja instalado na posição vertical correta para uma detecção confiável.
- Reduza as vibrações: Vibrações mecânicas podem afetar o desempenho do sensor de inclinação. Para minimizar acionamentos falsos, tente montar o sensor em uma superfície estável.
- Verifique a ligação: Confirme que os pinos VCC, GND e DO estão conectados corretamente.
- Verifique a fonte de alimentação: Garanta que a fonte de alimentação seja limpa e estável para ter leituras consistentes.