No post de hoje vamos verificar o funcionamento do sensor mostrado na imagem abaixo, o Sensor Tilt RPI-1031, usado para detecção de direção e movimento.

Sensor Tilt RPI-1031

Apesar de não possuir a precisão de um acelerômetro, este sensor é muito fácil de usar e se adapta bem a projetos robóticos.

Você pode por exemplo detectar o tombamento de um carrinho ou verificar se realmente ele virou para a posição “A” ou “B”. Vamos ver como esse sensor funciona.

Como funciona o sensor de movimento e direção RPI-1031

O RPI-1031 funciona de uma maneira muito simples: dentro do sensor existe um led infravermelho, que se comunica com dois receptores fotossensíveis através de uma superfície reflexiva.

Entre esses componentes e a superfície reflexiva existe uma espécie de “tampa” que de acordo com a movimentação do componente pode cobrir o sensor IR ou os receptores.

Detalhe de funcionamento do sensor RPI-1031

Assim, enquanto movimentamos o sensor podemos ter 4 estados:

  • LED IR bloqueado
  • Receptor 1 bloqueado
  • Receptor 2 bloqueado
  • nenhum dos 3 bloqueados.

Esses sinais são enviados para os pinos S1 e S2 do módulo:

Estados do sensor de movimento tilt RPI-1031

O que precisamos fazer então é uma leitura básica do estado desses dois pinos e então sabemos para qual lado o sensor foi movimentado, de acordo com o nosso projeto.

Conexão do RPI-1031 no Arduino

Nos nossos testes vamos conectar o sensor RPI-1031 no Arduino Uno. Usamos somente os pinos digitais 4 e 6, conforme imagem abaixo:

Conexão sensor de movimento tilt RPI-1031 no Arduino

A alimentação do módulo será feita pelo pino 5V do Arduino, mas também é possível usar em 3.3V sem problemas.

Programa RPI-1031 e Arduino

Como vamos apenas ler o estado dos pinos de saída S1 e S2 do RPI-1031, não há necessidade de utilização de bibliotecas então vamos usar somente os comandos digitalRead().

No programa abaixo serão mostrados no serial monitor os valores de 0 a 3, conforme movimentarmos o módulo:

Eu chamei de 0, 1, 2 e 3 mas obviamente você pode alterar o programa de acordo com o seu projeto e colocar um nome mais amigável como direita/esquerda, acima/abaixo, etc.

//Programa: Sensor de direcao e movimento RPI-1031 com Arduino
//Autor: Arduino e Cia

//Definicoes dos pinos de conexao de saida
int pino_S1 = 4;
int pino_S2 = 6;

int valor_s1, valor_s2;

void setup()
{
  Serial.begin(9600);

  //Definicao dos pinos como saida
  pinMode(pino_S1, INPUT);
  pinMode(pino_S2, INPUT);

  Serial.println("Teste de sensor tilt RPI-1031");
}

void loop()
{
  int position = getTiltPosition();
  Serial.print("Posicao: ");
  Serial.print(position);
  Serial.print("\tSaida S1: ");
  Serial.print(valor_s1);
  Serial.print("\tSaida S2: ");
  Serial.println(valor_s2);
  
  //Aguarda 200ms e repete o processo
  delay(200);
}

int getTiltPosition()
{
  valor_s1 = digitalRead(pino_S1);
  valor_s2 = digitalRead(pino_S2);
  return (valor_s1 << 1) | valor_s2; //bitwise math to combine the values
}

No serial monitor da IDE do Arduino você acompanha o estado das saídas:

Simples, não? Utilize o Sensor de Movimento Tilt RPI-1031 também com Raspberry Pi, ESP8266, ESP32 e outras placas e microcontroladores.

Gostou? Confira outros posts usando sensores aqui mesmo no Arduino e Cia!

5/5 - (1 vote)