Arduino

Sensor de inclinação com Arduino, Raspberry, Digispark etc.

Já coloco logo o nome de todo mundo no título porque esse sensor é fácil demais de codificar em qualquer plataforma. Mas deixe-me citar algo importante; cada sensor tem seu propósito. Por exemplo, você pode detectar uma inclinação usando um giroscópio ou um acelerômetro, mas além do custo ser maior para um propósito simples, a codificação já não é tão rápida e direta quanto esse sensor.

Aplicação

Você pode utilizar esse sensor em máquinas de pinball, alarmes em portas ou alarmes em coisas móveis, para detectar movimento.

Material





Para esse tutorial vou utilizar um Digispark, mas o código é o mesmo para Arduino. Os links são referências para compra:

Bem, o sensor de vibração funciona do mesmo jeito que o sensor de inclinação, mas suas interrupções oscilam bem mais porque internamente ele possui um tipo de “mola flácida”, de modo que quando o meio em que está vibra, a mola toca as paredes do sensor gerando a interrupção. Já o sensor de inclinação possui uma esfera metálica em seu interior. Quando essa esfera metálica corre para o lado dos terminais, ele fecha o circuito e gera a interrupção do mesmo modo que um botão, um reed switch ou uma chave. É simples assim. Aliás, é tão simples que utilizaremos o código do Digispark para sensor de nível d’água.

Existe também um modelo (recomendado no link mais abaixo) que utiliza mercúrio invés da esfera metálica. É bacana também, dá pra ver o mercurio dentro da cúpula de vidro e o funcionamento é o mesmo.

Sensor de tilt por inclinação

Repare que o módulo tem um trimpot para ajuste da sensibilidade e já possui alguns resistores e diodos, de modo que você não precisa se preocupar com nada. Você pode entrar com qualquer tensão até 5V, então é transparente utilizá-lo com ESP8266 por exemplo.

Wiring

O sensor possui 3 pinos, sendo VCC (até 5V), GND e DO (Digital Out). Escolha um pino digital e conecte o sensor a ele. VCC e GND dispensam explicação, hum?

Código para o sensor de tilt por inclinação





Do modo que está estamos usando a técnica de polling. Assim, o estado é verificado a cada loop. Já que a MCU está dedicada a essa função, não há problema algum em utilizar essa técnica, mas se sua MCU executa outras tarefas que consumam tempo no loop, a melhor opção é utilizar interrupção. Se não manja de interrupções, dê uma olhada nesses artigos:

O código é basicamente esse:

Se você leu o artigo sobre o sensor de nível d’água, vai ver que é mais do que familiar; é idêntico! Para utilizar no Arduino o código é o mesmo, apenas troque o P2 pelo D7 do UNO por exemplo.

1 Star2 Stars3 Stars4 Stars5 Stars (66 votes, average: 5,00 out of 5)
Loading...

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Projetos Arduino e Eletrônica – https://www.facebook.com/groups/projetosarduinoeletronica/

ESP8266 BR – https://www.facebook.com/groups/ESP8266BR/

Próximo post a caminho!

One comment

Comments are closed.

%d blogueiros gostam disto: