Circuitos integrados, Componentes eletrônicos, Microcontroladores, Projetos, Tutorial

Acelerômetro: como funciona e como usar?

O acelerômetro está presente em todo smartphone, tablet e videogame portátil. Neste post, são mostrados o funcionamento e como usar um módulo com Arduino.

Como funciona o acelerômetro?

É um MEMS (Sistema microeletromecânico), para aprender mais sobre estes sistemas, clique nos links abaixo.

O que são MEMS?Clique aqui

Fabricação de MEMS (Parte 2)Clique aqui

Dentro do chip, há uma massa móvel presa às molas micrométricas e o movimento da massa é convertido em sinais elétricos. Pode detectar o ângulo de inclinação e acelerações estáticas ou dinâmicas. Aceleração estática produz uma força constante no corpo, como a gravidade. Enquanto a aceleração dinâmica não é uniforme, como por exemplo, vibrações e mudanças de movimento.

Acelerômetro capacitivo

Neste tipo, a massa móvel possui pontas condutoras que formam uma capacitância com placas estacionárias. Quando há uma aceleração, a parte móvel se move e as capacitâncias C1 e C2 mudam de valor.  

acelerômetro capacitivo
(a) é o diagrama de um acelerômetro, mostrando a massa móvel (verde), a viga dobrada que serve como mola (marrom) e as placas fixas (branco). O (b) é a microestrutura. Fonte: (Zhou et al., 2017).

Acelerômetro piezoelétrico

Quando uma pressão mecânica é exercida em um material piezoelétrico, este gera uma diferença de potencial.

material piezoelétrico
Quando uma força F é aplicada sobre o material piezoelétrico, a estrutura cristalina é deformada. Os átomos com eletronegatividades diferentes são deslocados, causando a polarização e formando um dipolo elétrico. Consequentemente, vários dipolos são formados em série e paralelo, criando uma diferença de potencial resultante. Fonte: All about circuits.

O efeito piezoelétrico é reversível. Uma corrente contínua pode esticar ou comprimir o material, dependendo do sentido. Enquanto a corrente alternada faz o material vibrar. Os materiais piezoelétricos mais usados são o quartzo e o PZT (titanato zirconato de chumbo).

estrutura do pzt
A estrutura cristalina do PZT, cada esfera representa um átomo. À direita, a deformação da estrutura quando recebe uma tensão mecânica. Fonte: cts.

No acelerômetro piezoelétrico, o movimento da massa ligada a uma mola exerce pressão em um disco piezoelétrico e este transmite sinais elétricos para serem processados para medição.

Acelerômetro piezoresistivo

O movimento da massa móvel exerce força sobre um material piezoresistivo, este muda a resistência elétrica que é medida por um extensômetro. Este é um instrumento com uma ponte de Wheatstone que mede a deformação de um material.

acelerômetro piezoresistivo
Uma imagem em 3D de um acelerômetro piezoresistivo com 8 piezoresistores, 2 em cada flexão. Proff mass = massa de prova, supporting frame = suporte e os connection pads são os terminais para fazer a conexão com o resto do circuito. Fonte: (Dutta, 2011).

Outros tipos de acelerômetros serão assuntos para outro post.

Onde mais os acelerômetros são usados?

  • Os acelerômetros são usados em notebooks para proteger os dados no HD de queda. Quando uma queda é detectada, o notebook desliga o disco rígido para não danificar a leitura dos dados.
  • É um componente muito importante em foguetes e mísseis, para medir a variação da velocidade e ajudar na navegação inercial.
  • Um drone precisa de um acelerômetro para estabilização do voo.
  • O sistema de airbag dos automóveis possui um acelerômetro para detectar uma colisão e ativar o airbag.
  • Máquinas rotativas usam acelerômetros para detectar vibrações.

O shield acelerômetro ADXL345

acelerômetro ADXL-345
Este é o módulo usado com o Arduino no projeto deste post. O chip de 14 terminais é o acelerômetro e o outro de 4 terminais é o regulador de tensão.

O ADXL345 é um acelerômetro capacitivo de 3 eixos com 13 bits de resolução e baixa potência. Pode medir entre ±2g e ±16g, g é a aceleração da gravidade da Terra, cujo valor é 9,81 m/s², e detecta mudanças no ângulo de inclinação menores que 1º. Este chip foi fabricado pela Analog Devices.

diagrama de blocos do acelerômetro
Este é o diagrama de blocos do chip. Todo chip acelerômetro deve ter um conversor analógico-digital (ADC) para converter os sinais elétricos do sensor em sinais digitais, que devem passar por um filtro (Digital Filter) para poderem ir à lógica de interrupção e controle (Control and Interrupt Logic). FIFO é uma tecnologia de gerenciamento de memória para minimizar processamento e consumo de potência. Power management = Gerenciamento de energia. Fonte: Analog Devices.

Mais informações sobre o chip estão no datasheet em inglês.

Exemplo de projeto de demonstração

O módulo ADXL345 é conectado com a placa Arduino Uno com um protocolo de comunicação I²C. Este será assunto para um futuro post.

acelerômetro ligado ao Arduino
Deve-se ligar os terminais 5V e GND do Arduino com os terminais do módulo de mesmo nome.
Arduino-SCL-SDA
Os terminais SDA e SCL do shield devem ser ligados com os terminais SDA e SCL do Arduino respectivamente.

Para simplificar o código, abaixe as duas bibliotecas mostradas no vídeo.

No programa abaixo, as 3 primeiras linhas são as bibliotecas que devem ser incluídas. A Wire.h serve para fazer a comunicação em I²C.

#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
#include <Wire.h>

Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified();  //inicializa a 
             //biblioteca com a variável accel.

void setup() {
  Serial.begin(9600);  
   if(!accel.begin())
   {
      Serial.println("No ADXL345 sensor detected.");//Esta mensagem aparece 
             //quando o sensor não está conectado com SCL e SDA.
      while(1);
   }
}
void loop() {
   sensors_event_t event;//A variável event utiliza a estrutura 
                           //sensors_event_t.
   accel.getEvent(&event);//Função que pega dados do acelerômetro.
   Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print("  ");                             //Imprimindo as medições.
   Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print("  ");
   Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print("  ");
   Serial.println("m/s^2 ");
   delay(500);
}
medições do acelerômetro
A tela serial deve aparecer assim.

É possível usar este acelerômetro apenas com a biblioteca Wire.h. Porém, teria que usar os endereços de registradores, que precisam ser explicados em um post dedicado.

About Pedro Ney Stroski

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *