Como conectar um acelerômetro MMA7361 no Arduino? Quando se fala em acelerômetro, geralmente a primeira coisa que se pensa é no aparelho celular. É o acelerômetro que detecta a inclinação do aparelho, muda a orientação da tela e permite, por exemplo, a utilização de jogos de corrida onde a movimentação do celular define a direção do carrinho na tela.

Temos também acelerômetros instalados em notebooks, para detectar quedas do aparelho e dessa forma “travar” os discos do computador para proteção dos dados, e um exemplo bem mais comum, que é a utilização do acelerômetro nos controles de videogame, como o Nintendo Wii.

Nintendo Wii

(Bem) Resumidamente, o acelerômetro nada mais é do que um aparelho que serve para medir a aceleração de um corpo/objeto em relação à gravidade. Felizmente, temos a possibilidade de ver detalhadamente no Arduino como isso funciona, usando um módulo acelerômetro MMA7361:

Acelerômetro MMA7361 Arduino

Esse módulo é bem prático e já vem pronto para uso, com os pinos já soldados. É um módulo de 3 eixos (X, Y e Z), que gera uma variação de tensão para cada eixo, variação esta que por sua vez é tratada pelas portas analógicas do Arduino.

Isso é algo bem parecido com o que vimos neste artigo falando sobre dimmer, onde a variação de tensão nas portas analógicas determinava a luminosidade do led.

Características básicas desse módulo:

  • Operação com 5v ou 3.3v DC
  • 2 níveis de sensibilidade : 1,5G ou 6G
  • Modo sleep, ideal para uso em configurações que necessitem do uso de uma bateria

Vamos ver agora como conectar esse módulo no Arduino.

Conexão do acelerômetro MMA7361 no Arduino

A ligação, como sempre, exige atenção e cuidado para não danificar o componente. São 10 pinos, cuja função mostro na tabela abaixo:

Tabela ligação acelerômetro MMA7361

Atenção! Antes de conectar esse módulo, verifique a disposição dos pinos, pois em alguns módulos alguns deles estão invertidos, ok?

Ao montar o circuito, repare que será necessário ligar o pino 3.3 Volts do Arduino Uno R3 ao pino AREF, para que tenhamos uma tensão de referência. Sem ele, a leitura dos dados fica totalmente prejudicada:

conexão do acelerômetro no Arduino

Se possível, recomendo a ligação fora da protoboard ou então a utilização de um mini protoboard, como mostrado no circuito, isso vai facilitar bastante na hora de testar os movimentos com o módulo.

Para teste vou usar um dos 3 programas exemplo que vem na própria biblioteca do MMA7361, o programa G_FORCE.

//Programa : Teste Acelerometro MMA7361  
//Alterações e comentários : Arduino e Cia  
   
 #include <AcceleroMMA7361.h> //Carrega a biblioteca do MMA7361  
   
 AcceleroMMA7361 accelero;  
 int x;  
 int y;  
 int z;  
   
 void setup()  
 {  
  Serial.begin(9600);  
  accelero.begin(13, 12, 11, 10, A0, A1, A2);  
  //Seta a voltagem de referencia AREF como 3.3V
  accelero.setARefVoltage(3.3);
  //Seta a sensibilidade (Pino GS) para +/-6G    
  accelero.setSensitivity(LOW);    
  accelero.calibrate();  
 }  
   
 void loop()  
 {  
  x = accelero.getXAccel(); //Obtem o valor do eixo X  
  y = accelero.getYAccel(); //Obtem o valor do eixo Y  
  z = accelero.getZAccel(); //Obtem o valor do eixo Z  
  Serial.print("\nx: ");   //Mostra os valores no serial monitor  
  Serial.print(x);  
  Serial.print(" \ty: ");  
  Serial.print(y);  
  Serial.print(" \tz: ");  
  Serial.print(z);  
  Serial.print("\tG*10^-2");  
  delay(500);                     
 }  

Carregue o programa no Arduino, movimente o sensor e veja no serial monitor as variações dos eixos X, Y, Z, e a gravidade (G).

Acelerometro Serial Monitor IDE Arduino

Gostou? Confira outros posts usando acelerômetro aqui mesmo no Arduino e Cia!

Avalie este post!