Ligando acelerômetro MMA7361 no Arduino

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.

(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:

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:

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:

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:

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).

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

5/5 - (1 voto)

Related posts

Como funciona o conversor de nível lógico bidirecional

by Arduino e Cia
9 anos ago

Relógio com display LCD 128×64 e módulo RTC DS3231

by Arduino e Cia
9 anos ago

Como usar o módulo GPS VK2828U7G5LF

by Arduino e Cia
6 anos ago
Sair da versão mobile