Arduino Nano ESP32 - Sensor de Inclinação SW520D

O módulo de sensor de inclinação SW520D tem a capacidade de detectar mudanças de inclinação ou 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 é movido ou um servo motor que reage a mudanças de orientação.

Neste tutorial, vamos aprender como usar o Arduino Nano ESP32 e um sensor de inclinação SW520D para detectar a inclinação. Vamos nos aprofundar nos seguintes pontos:

Arduino Nano ESP32 SW520D tilt sensor

Depois disso, você tem a flexibilidade de modificar o código para acionar um LED ou uma luz (usando um relé) ao detectar a inclinação, ou até mesmo fazer um servo motor girar.

Hardware Necessário

1×Arduino Nano ESP32
1×Cabo USB Tipo-A para Tipo-C (para PC com USB-A)
1×Cabo USB Tipo-C para Tipo-C (para PC com USB-C)
1×SW520D Tilt Sensor Module
1×Protoboard
1×Fios Jumper
1×(Opcional) 5V Power Adapter
1×(Recomendado) Placa de Expansão com Bornes de Parafuso para Arduino Nano
1×(Recomendado) Placa de Expansão Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentação para Arduino Nano ESP32

Or you can buy the following kits:

1×DIYables Sensor Kit (18 sensors/displays)
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.

Sobre o Sensor de Inclinação SW520D

O módulo de sensor de inclinação SW520D pode ser usado para detectar mudanças de inclinação ou 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 fornece um sinal digital simples (ON/OFF), o que facilita a interface com o Arduino Nano ESP32.

Pinagem do Sensor de Inclinação SW520D

O sensor de inclinação SW520D possui três pinos:

  • Pino VCC: precisa ser conectado ao VCC (3.3V a 5V)
  • Pino GND: precisa ser conectado ao GND (0V)
  • Pino DO: é um pino de saída: HIGH quando o sensor está na posição vertical e LOW quando o sensor está inclinado. Este pino precisa ser conectado a um pino de entrada do Arduino Nano ESP32.
SW520D Tilt Sensor Pinout
image source: diyables.io

O módulo de sensor de inclinação SW520D possui dois indicadores LED:

  • Um indicador LED mostra o estado da alimentação.
  • Outro indicador LED mostra o estado de inclinação, acendendo quando o sensor está na posição vertical e apagando quando ele está inclinado.

Como Funciona

Veja como o pino de saída do sensor se comporta:

  • Quando o sensor está na posição vertical, a esfera de metal interna fecha o contato, e o pino de saída é definido como HIGH.
  • Quando o sensor está inclinado, a esfera de metal interna abre o contato, e o pino de saída é definido como LOW.

Diagrama de Ligação

The wiring diagram between Arduino Nano ESP32 and SW520D Tilt Sensor

This image is created using Fritzing. Click to enlarge image

Como Programar para o Sensor de Inclinação SW520D

  • Inicialize o pino do Arduino Nano ESP32 no modo de entrada digital usando a função pinMode(). Por exemplo, o pino D3
pinMode(D3, INPUT);
  • Leia o estado do pino do Arduino Nano ESP32 usando a função digitalRead().
int tiltState = digitalRead(D3);

Código Arduino Nano ESP32 - Detectando a inclinação

/* * Este código de Arduino Nano ESP32 foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano ESP32 é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano-esp32/arduino-nano-esp32-sw520d-tilt-sensor */ #define SENSOR_PIN D3 // The Arduino Nano ESP32 pin D3 connected to the DO pin of the SW520D tilt sensor int prev_tilt_state = HIGH; // The previous state from the input pin int tilt_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(9600); // initialize the ESP32's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the ESP32's input pin tilt_state = digitalRead(SENSOR_PIN); if (prev_tilt_state == HIGH && tilt_state == LOW) Serial.println("The tilt has been detected"); else if (prev_tilt_state == LOW && tilt_state == HIGH) Serial.println("The tilt has disappeared"); // save the the last state prev_tilt_state = tilt_state; }

Passos Rápidos

  • Se esta é a primeira vez que você usa o Arduino Nano ESP32, veja como configurar o ambiente para o Arduino Nano ESP32 no Arduino IDE.
  • Copie o código acima e abra com o Arduino IDE
  • Clique no botão Upload no Arduino IDE para fazer upload do código para o Arduino Nano ESP32
  • Incline o sensor SW520D para frente e para trás
  • Confira o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano ESP32
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano ESP32' on 'COM15')
New Line
9600 baud
The tilt has been detected The tilt has disappeared The tilt has been detected The tilt has disappeared
Ln 11, Col 1
Arduino Nano ESP32 on COM15
2

Agora, temos a liberdade de personalizar o código e fazer com que ele acione um LED ou uma luz quando uma inclinação for detectada. Podemos até fazer um servo motor girar de acordo com a entrada de inclinação. Para orientações mais detalhadas e instruções passo a passo, você pode consultar os tutoriais fornecidos no final deste tutorial.

Solução de Problemas

Se você encontrar 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 de montagem. Certifique-se de 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 falsos acionamentos, tente montar o sensor em uma superfície estável.
  • Verifique a ligação: Certifique-se de que os pinos VCC, GND e DO estejam conectados corretamente.
  • Verifique a fonte de alimentação: Certifique-se de que a fonte de alimentação esteja limpa e estável para obter leituras consistentes.

Vídeo

Referências de Funções

Tutoriais Relacionados

※ NOSSAS MENSAGENS

  • Fique à vontade para compartilhar o link deste tutorial. Porém, por favor, não use nosso conteúdo em outros sites. Investimos muito esforço e tempo para criar este conteúdo, por favor respeite nosso trabalho!