Arduino Nano - SW520D Tilt Sensor

O módulo sensor de inclinação SW520D é capaz de 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 responde a mudanças de orientação.

Este tutorial ensina você a usar o Arduino Nano e um sensor de inclinação SW520D para detectar inclinação. Vamos explorar:

Arduino Nano SW520D tilt sensor

Depois, você pode modificar o código para acionar um LED ou uma lâmpada (por meio de um relé) ao detectar inclinação, ou até fazer um servo motor girar.

Hardware Necessário

1×Official Arduino Nano
1×Alternatively, DIYables Nano V3.0 Development Board
1×Cabo USB A para Mini-B
1×SW520D Tilt Sensor Module
1×Fios Jumper
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

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 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 bola 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 conexão com o Arduino Nano.

Pinagem do Sensor de Inclinação SW520D

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

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

O módulo sensor de inclinação SW520D também tem dois LEDs indicadores:

  • Um LED indica o estado da alimentação.
  • O outro LED indica o estado da inclinação: ele acende quando o sensor está na vertical e apaga quando está inclinado.

Como Funciona

O módulo sensor de inclinação SW520D usa um mecanismo simples de chave de bola. Veja como o pino de saída do sensor se comporta:

  • Quando o sensor está na vertical, a bola de metal dentro dele fecha o contato e o pino de saída fica em HIGH.
  • Quando o sensor está inclinado, a bola de metal dentro dele abre o contato e o pino de saída fica em LOW.

Diagrama de Ligação

The wiring diagram between Arduino Nano and SW520D Tilt Sensor

This image is created using Fritzing. Click to enlarge image

Veja A melhor forma de alimentar o Arduino Nano e outros componentes.

Como Programar o Sensor de Inclinação SW520D

  • Inicializa o pino do Arduino Nano no modo de entrada digital usando a função pinMode(). Por exemplo, o pino D2
pinMode(2, INPUT);
  • Lê o estado do pino do Arduino Nano usando a função digitalRead().
int tiltState = digitalRead(2);

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

/* * Este código de Arduino Nano foi desenvolvido por pt.newbiely.com * Este código de Arduino Nano é disponibilizado ao público sem nenhuma restrição. * Para tutoriais completos e diagramas de ligação, visite: * https://pt.newbiely.com/tutorials/arduino-nano/arduino-nano-sw520d-tilt-sensor */ #define SENSOR_PIN 2 // The Arduino Nano pin D2 connected to the DO pin of the SW520D tilt sensor int prev_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 Arduino Nano's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the Arduino Nano's input pin tilt_state = digitalRead(SENSOR_PIN); if (prev_state == HIGH && tilt_state == LOW) Serial.println("The tilt has been detected"); else if (prev_state == LOW && tilt_state == HIGH) Serial.println("The tilt has disappeared"); // save the the last state prev_state = tilt_state; }

Passos Rápidos

  • Copie o código acima e abra-o com o Arduino IDE
  • Clique no botão Upload no Arduino IDE para carregar o código no Arduino Nano
  • Incline o sensor SW520D para a frente e para trás
  • Veja o resultado no Serial Monitor.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Nano
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Nano' 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 on COM15
2

Agora temos a flexibilidade 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. Para mais informações e instruções passo a passo, consulte os tutoriais indicados no final deste guia.

Solução de Problemas

Se você tiver problemas com o sensor de inclinação SW520D não funcionando corretamente, siga estes passos para resolver:

  • Verifique a orientação: O SW520D é sensível à orientação de montagem. Confirme que ele está instalado na posição vertical correta para uma detecção confiável.
  • Reduza as vibrações: O sensor de inclinação também pode captar vibrações mecânicas. Para minimizar acionamentos falsos, tente fixar 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 esteja limpa e livre de ruído para ter leituras consistentes.

Seguindo estes passos, você pode resolver os problemas comuns e melhorar o desempenho do sensor de inclinação SW520D.

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!