Como usar o sensor acelerômetro ADXL345

Sensores inerciais são usados ​​para detectar movimento linear e rotacional de um objeto. Existem dois tipos de sensores inerciais – acelerômetros que detectam aceleração linear e giroscópios que detectam movimento rotacional. Acelerômetros e giroscópios são amplamente utilizados em diversas aplicações, incluindo aeroespacial, militar, automotiva, telefones celulares e eletrônicos de consumo. Por exemplo, em telefones celulares, sensores giroscópio e acelerômetro são usados ​​para rotação de tela, jogos, realidade virtual e aplicativos de realidade aumentada. Nos automóveis, o acelerômetro e o giroscópio são usados ​​para detecção de capotamento de veículos, controle de liberação de airbag, ABS, suspensão ativa, controle de tração e controle de cinto de segurança. Muitas aplicações militares, como munição inteligente, controle de vôo, etc., também fazem uso desses sensores. Em aplicações aeroespaciais, esses sensores são utilizados para medir microgravidade e monitorar o movimento e rotação de equipamentos/dispositivos.

Cada aplicação requer um acelerômetro ou giroscópio com especificações específicas. Nenhum acelerômetro ou sensor giroscópio pode atender a todas as aplicações. Esses sensores são sempre utilizados em alguns sistemas de controle eletrônico, pois meros valores de aceleração e rotação de um objeto são inúteis.

ADXL345 é um pequeno acelerômetro de 3 eixos com faixa dinâmica de +/- 16g com resolução de 13 bits, largura de banda máxima de 3.200 Hz e taxa máxima de transferência de dados de 3.200 vezes por segundo. É um sensor acelerômetro digital e produz valores digitais de aceleração em três eixos. O sensor gera dados formatados como complemento de dois bits de 16 bits que são acessíveis via interfaces SPI ou I2C. Este sensor tem consumo ultrabaixo de energia e consome apenas 23 uA no modo de medição e 0,1 uA no modo de espera.

ADXL345 possui resolução selecionável pelo usuário e faixas de medição que podem ser selecionadas passando comandos seriais para ele. O sensor também suporta modos de interrupção flexíveis que podem ser mapeados para qualquer um dos seus dois pinos de interrupção. ADXL345 possui diversas funções de detecção integradas que podem ser mapeadas para os pinos de interrupção. Tipo, possui funções de detecção de queda livre e detecção de toque. O ADXL345 pode detectar a presença ou falta de movimento comparando os valores de aceleração com limites definidos pelo usuário.

O ADXL345 mede a aceleração estática devido à gravidade, bem como a aceleração dinâmica resultante de movimento ou choque. Os sensores vêm em um pacote LGA de 14 derivações com dimensões de apenas 3 mm x 5 mm x 1 mm. Este sensor pode ser usado em aplicações de dispositivos móveis, como aparelhos celulares, smartphones, dispositivos de jogos, dispositivos apontadores, dispositivos de navegação pessoal, proteção de disco rígido, instrumentação médica e industrial.

Compreendendo as especificações técnicas do ADXL345
O sensor acelerômetro ADXL345 possui as seguintes especificações técnicas –

Faixa de medição – O sensor ADXL345 pode medir a aceleração em três eixos usando uma faixa selecionável pelo usuário de +/-2g, +/-4g, +/-8g e +/-16g. Quanto maior for a faixa de medição, maior será a aceleração que um acelerômetro pode detectar. Com uma faixa de medição de +/-2g selecionada, o ADXL345 pode medir aceleração de até 19,6 m/s2 (2 * 9,8 m/s) em qualquer direção ao longo de cada eixo. Com uma faixa de medição de +/-16g selecionada, o ADXL345 pode medir aceleração de até 153,6 m/s2 (16 * 9,8 m/s) em qualquer direção ao longo de cada eixo.

Resolução de saída – ADXL345 suporta resolução de saída de 10 bits para faixa de medição de +/- 2g, 11 bits para +/- 4g, 12 bits para +/- 8g e 13 bits para +/- 16g. A resolução padrão é de 10 bits para todas as faixas de medição.

Sensibilidade – Com a resolução padrão de 10 bits, o ADXL345 tem sensibilidade típica de 3,9 mg/LSB para faixa de medição padrão (ou seja, +/- 2g), 7,8 mg/LSB para +/- 4g, 15,6 mg/LSB para +/- 8g e 31,2 mg/LSB para faixa de medição de +/- 16g. Isso significa que o ADXL345 com resolução padrão de 10 bits selecionada pode detectar alteração mínima de aceleração de 3,822 cm/s2 (3,9 * 9,8/1000 * 100) para +/- 2g, 7,64 cm/s2 para +/- 4g, 15,28 cm/s2 para +/- 8g e 30,57 cm/s2 para faixa de +/- 16g.

Taxa de dados de saída e largura de banda – A taxa de dados de saída e a largura de banda do sensor são selecionáveis. A taxa de dados de saída pode variar de 0,1 Hz (uma vez a cada 10 segundos) a 3.200 Hz (3.200 vezes por segundo).

Tensão e corrente operacional – O sensor requer uma tensão operacional de 2,5 V que pode variar de 2,0 V a 3,6 V. Consome aproximadamente 30 uA para taxas de transferência de dados inferiores a 10 Hz e cerca de 140 uA para taxas de transferência de dados acima de 100 Hz.

Faixa de temperatura operacional – ADXL345 tem uma faixa de temperatura operacional de -40˚C a +85˚C.

Classificações máximas – ADXL345 pode tolerar choques ou aceleração de até 10.000 g (98 km/s2). Ele pode tolerar tensões de até 3,9 V e suportar temperaturas de até +105˚C.

Descrição do pino ADXL345
ADXL345 vem em um pacote de 14 derivações com o seguinte diagrama de pinos:

O sensor do acelerômetro ADXL345 possui a seguinte descrição de pino:

Pinagem do sensor acelerômetro ADXL345

O sensor pode estar disponível como um módulo onde todos ou poucos pinos podem estar disponíveis para interface com um circuito. No módulo sensor mostrado abaixo, apenas os pinos necessários para interface com um circuito (I2C, SPI, interrupções e fonte de alimentação) estão disponíveis para uso. Outros pinos são conectados ao módulo, como resistores pull-up para linhas I2C.

Pode-se notar que os eixos de aceleração estão indicados no módulo. Caso contrário, os eixos de acelerações podem ser encontrados em relação à vista superior do sensor, conforme mostrado abaixo:

Exemplo de eixo do sensor acelerômetro ADXL345.

O sensor ADXL345 é sensível tanto à aceleração estática (aceleração devido à gravidade) quanto à aceleração dinâmica (aceleração resultante de movimento ou choque). O sensor tem a resposta de saída, conforme mostrado na imagem abaixo, em relação à sua orientação em relação à gravidade.

Resposta de saída do ADXL345 em relação à orientação da gravidade.

Características de desempenho do ADXL345
As características de desempenho do ADXL345 estão disponíveis como gráficos para deslocamento de zero g, sensibilidade e resposta de autoteste. Os gráficos são fornecidos para a resposta do sensor para todos os eixos. Por exemplo, o gráfico a seguir mostra o deslocamento zero-g no eixo x a 25˚C, 2,5V.

Características de desempenho do ADXL345

No gráfico, o deslocamento Zero-g é indicado em mg (0,98 cm/s2) e a porcentagem da população indica a porcentagem de amostras do sensor em teste. Da mesma forma, a sensibilidade é mostrada como o número de LSBs por g para cada eixo.

Características de desempenho do ADXL345.

Com a resolução de saída do ADXL345 sendo padrão para 10 bits, podemos concluir que a mudança na aceleração do objeto no qual o ADXL345 está montado deve ser de pelo menos 3,822 cm/s2 para +/- 2g ou 7,64 cm/s2 para +/- 4g ou 15,28 cm/s2 para +/- 8g ou 30,57 cm/s2 para faixa de medição de +/- 16g para alteração de 1 bit (LSB) na resposta do sensor.

Como funciona o sensor ADXL345
ADXL345 é um acelerômetro de 3 eixos que detecta aceleração estática (devido à gravidade) e aceleração dinâmica (devido a movimento ou choque). Assim, pode ser usado como sensor de inclinação ou para detectar queda livre. É um acelerômetro MEMS que consiste em uma estrutura microusinada de superfície de polissilício construída no topo de um wafer de polissilício. É um sensor acelerômetro capacitivo. As molas de polissilício suspendem a massa de prova e capacitores diferenciais são usados ​​entre a massa de prova e a estrutura fixa para medir a aceleração. Qualquer aceleração ao longo de um eixo desvia a massa de prova e desequilibra o capacitor diferencial, resultando em uma resposta do sensor que é diretamente proporcional à aceleração. A demodulação sensível à fase é usada para determinar a magnitude e a polaridade da aceleração.

O sensor pode ser conectado a um controlador/computador embarcado usando interface I2C ou SPI. Usando interfaces seriais (I2C/SPI de 4 fios/SPI de 3 fios), um controlador/computador pode ler e gravar em registros internos do sensor. ADXL345 possui o seguinte diagrama de blocos funcionais.

Diagrama de blocos funcionais do sensor acelerômetro ADXL345.

O sensor possui os seguintes registros nos quais um controlador/computador pode ler/escrever em interfaces seriais:
Ao gravar dados nos registradores, o controlador/computador pode selecionar faixa de medição, formato de dados, resolução e controlar interrupções e funções de detecção (tapping, queda livre e limites). Um controlador/computador pode ler a aceleração lendo valores dos registros 0x32 a 0x37.

Configurando ADXL345 e lendo valores de aceleração
Abaixo estão listados alguns passos simples para ler a aceleração do sensor ADXL345.

  1. Defina o modo de energia e a taxa de transferência de dados gravando no registro 0x2C. Este registrador possui os seguintes bits:

Se o bit LOW_POWER estiver definido como 0, o ADXL345 funciona em modo normal, e se estiver definido como 1, o ADXL345 funciona em modos de potência reduzida, nos quais há maior ruído. Os bits D3 a D0 selecionam a taxa de transferência de dados conforme tabela a seguir:

  1. Defina o formato dos dados escrevendo no registro 0x31. Este registrador possui os seguintes bits:

Se o bit SELF-TEST for definido como 1, uma força de autoteste será aplicada ao sensor, causando uma mudança nos dados de saída. Se for definido como 0, a força do autoteste será desativada. Se o bit SPI estiver definido como 1, o ADXL345 usará o modo SPI de 3 fios; caso contrário, se definido como 0, ele usará o modo SPI de 4 fios. Se o bit INT_INVERT estiver definido como 0, ele define as interrupções para ativo alto e, se estiver definido como 1, ele define as interrupções para ativo baixo. Se o bit FULL_RES for definido como 1, o sensor gera o valor de resolução total (10 bits para +/- 2g; 11 bits para +/- 4g; 12 bits para +/- 8g; 13 bits para +/- 16g), caso contrário, se for definido como 0, o padrão de 10 bits será usado. Se o bit de justificação for definido como 1, os valores de aceleração nos registros 0x32 a 0x37 serão justificados à esquerda; caso contrário, se for definido como 0, os valores serão justificados à direita. A imagem a seguir mostra o formato de dados dos registros de valor de dados com justificação à esquerda e à direita e a posição de LSB ou MSB de acordo para diferentes faixas de medição:

Exemplos de resposta de saída justificada à esquerda e à direita do sensor do acelerômetro ADXL345.

Os bits de faixa D1 e D0 selecionam a faixa de medição de acordo com a tabela a seguir:

  1. Se o bit de link for definido como 1, as funções de atividade e inatividade serão vinculadas em série (a função de atividade será atrasada até que a função de inatividade seja detectada). Caso contrário, se for definido como 0, ambas as funções serão simultâneas. A função de inatividade refere-se a uma situação em que a aceleração está abaixo do valor THRESH_INACT (registro 0x25) por pelo menos o tempo indicado por TIME_INACT (registro 0x26). Defina recursos de economia de energia escrevendo no registro 0x2D. Este registrador possui os seguintes bits:

Se o bit de link estiver definido e o bit AUTO_SLEEP estiver definido como 1, ele ativa a funcionalidade de suspensão automática. Neste modo, o ADXL345 muda automaticamente para o modo de suspensão se a função de inatividade estiver habilitada e a inatividade for detectada. Se a atividade também estiver habilitada, o ADXL345 acorda automaticamente do sono após detectar atividade e retorna à operação na taxa de dados de saída definida no registro BW_RATE. Se o bit AUTO_SLEEP estiver definido como 0, ele desabilita a mudança automática para o modo sleep. Se o bit de link não estiver definido, o recurso AUTO_SLEEP será desabilitado e a configuração do bit AUTO_SLEEP não terá impacto na operação do dispositivo.

Se o bit de medição estiver definido como 1, o ADXL345 operará no modo de medição. Caso contrário, se estiver definido como 0, o ADXL345 opera em modo de espera. Se o bit Sleep estiver definido como 1, o ADXL345 operará no modo sleep; caso contrário, se estiver definido como 0, o ADXL345 operará no modo normal. O modo de suspensão suprime DATA_READY, interrompe a transmissão de dados para FIFO e muda a taxa de amostragem para aquela especificada pelos bits de ativação. No modo de suspensão, apenas a função de atividade pode ser usada. Os bits de ativação controlam a frequência de leitura no modo sleep de acordo com a tabela a seguir:

  1. Leia a aceleração ao longo do eixo x lendo os registros 0x32 e 0x33; aceleração ao longo do eixo Y lendo os registros 0x34 e 0x35; e aceleração ao longo do eixo Z lendo os registros 0x36 e 0x37.

Mascare os valores do registro de acordo com o formato de dados selecionado (registro 0x31) e interprete o valor da aceleração de acordo com a faixa de medição selecionada.

Usando valores de aceleração do ADXL345
Os valores de aceleração ao longo dos eixos X, Y e Z do sensor do acelerômetro ADXL345 podem ser usados ​​para detectar inclinação, queda livre e movimento dinâmico de um objeto. O sensor deve ser montado no objeto em estudo. Os valores de aceleração podem ser usados ​​simplesmente para detectar movimento ou mesmo para determinar a trajetória do objeto.

A velocidade ao longo de cada eixo pode ser determinada pela integração dos valores de aceleração. A dupla integração dos valores de aceleração pode determinar o deslocamento do objeto ao longo de cada eixo. Deve-se notar que a integração e integração dupla de valores de aceleração só podem ser feitas usando ferramentas de computação científica como a biblioteca SciPy em scripts Python. Mesmo assim, temos que considerar os erros, pois pode haver múltiplas fontes de erro, como uma amostragem inconsistente de dados, erros nos dados amostrados, erros devidos à computação, etc. Geralmente, os valores de deslocamento ou velocidade podem ser previstos com precisão limitada e com um alcance limitado em um programa de usuário com o sensor ADXL345.

Porém, os valores de aceleração do sensor ADXL345 podem ser perfeitamente utilizados em sistemas de controle eletrônico onde meros valores de aceleração são utilizados para a tomada de decisões.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.