Índice:

Arduino Nano - MMA8452Q 3 eixos 12 bits / 8 bits acelerômetro digital Tutorial: 4 etapas
Arduino Nano - MMA8452Q 3 eixos 12 bits / 8 bits acelerômetro digital Tutorial: 4 etapas

Vídeo: Arduino Nano - MMA8452Q 3 eixos 12 bits / 8 bits acelerômetro digital Tutorial: 4 etapas

Vídeo: Arduino Nano - MMA8452Q 3 eixos 12 bits / 8 bits acelerômetro digital Tutorial: 4 etapas
Vídeo: BeagleBone Black MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer 'C' Code Tutorial 2024, Novembro
Anonim
Image
Image

O MMA8452Q é um acelerômetro microusinado, capacitivo, capacitivo, de baixo consumo de energia e 12 bits de resolução. Opções flexíveis programáveis pelo usuário são fornecidas com o auxílio de funções embutidas no acelerômetro, configuráveis para dois pinos de interrupção. Possui escalas completas selecionáveis pelo usuário de ± 2g / ± 4g / ± 8g com dados filtrados por filtro passa-alta, bem como dados não filtrados disponíveis em tempo real. Aqui está sua demonstração com o Arduino nano.

Etapa 1: O que você precisa..

O que você precisa..!!
O que você precisa..!!

1. Arduino Nano

2. MMA8452Q

3. Cabo I²C

4. Escudo I²C para Arduino Nano

Etapa 2: Conexão:

Conexão
Conexão
Conexão
Conexão
Conexão
Conexão
Conexão
Conexão

Pegue um escudo I2C para Arduino Nano e empurre-o suavemente sobre os pinos do Nano.

Em seguida, conecte uma extremidade do cabo I2C ao sensor MMA8452Q e a outra extremidade à blindagem I2C.

As conexões são mostradas na imagem acima.

Etapa 3: Código:

Código
Código

O código do arduino para MMMA8452Q pode ser baixado de nosso repositório github - DCUBE Store.

Aqui está o link.

Incluímos a biblioteca Wire.h para facilitar a comunicação I2c do sensor com a placa Arduino.

Você também pode copiar o código daqui, ele é fornecido da seguinte forma:

// Distribuído com uma licença de livre arbítrio.

// Use-o como quiser, com ou sem lucro, desde que se enquadre nas licenças das suas obras associadas.

// MMA8452Q

// Este código foi projetado para funcionar com o Mini Módulo MMA8452Q_I2CS I2C.

#incluir

// O endereço MMA8452Q I2C é 0x1C (28)

#define Addr 0x1C

void setup ()

{

// Inicializar a comunicação I2C como MASTER

Wire.begin ();

// Inicialize a comunicação serial, defina a taxa de transmissão = 9600

Serial.begin (9600);

// Iniciar a transmissão I2C

Wire.beginTransmission (Addr);

// Selecione o registro de controle

Wire.write (0x2A);

// Modo de espera

Wire.write (0x00);

// Pare a transmissão I2C

Wire.endTransmission ();

// Iniciar a transmissão I2C

Wire.beginTransmission (Addr);

// Selecione o registro de controle

Wire.write (0x2A);

// Modo ativo

Wire.write (0x01);

// Pare a transmissão I2C

Wire.endTransmission ();

// Iniciar a transmissão I2C

Wire.beginTransmission (Addr);

// Selecione o registro de controle

Wire.write (0x0E);

// Defina o intervalo para +/- 2g

Wire.write (0x00);

// Pare a transmissão I2C

Wire.endTransmission ();

atraso (300);

}

void loop ()

{

dados internos não assinados [7];

// Solicita 7 bytes de dados

Wire.requestFrom (Addr, 7);

// Lê 7 bytes de dados

// staus, xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

if (Wire.available () == 7)

{

dados [0] = Wire.read ();

dados [1] = Wire.read ();

dados [2] = Wire.read ();

dados [3] = Wire.read ();

dados [4] = Wire.read ();

dados [5] = Wire.read ();

dados [6] = Wire.read ();

}

// Converta os dados para 12 bits

int xAccl = ((dados [1] * 256) + dados [2]) / 16;

if (xAccl> 2047)

{

xAccl - = 4096;

}

int yAccl = ((dados [3] * 256) + dados [4]) / 16;

if (yAccl> 2047)

{

yAccl - = 4096;

}

int zAccl = ((dados [5] * 256) + dados [6]) / 16;

if (zAccl> 2047)

{

zAccl - = 4096;

}

// Dados de saída para monitor serial

Serial.print ("Aceleração no eixo X:");

Serial.println (xAccl);

Serial.print ("Aceleração no eixo Y:");

Serial.println (yAccl);

Serial.print ("Aceleração no eixo Z:");

Serial.println (zAccl);

atraso (500);

}

Etapa 4: Aplicativos:

MMA8452Q tem vários aplicativos que incluem aplicativos E-Compass, detecção de orientação estática que incorpora Retrato / Paisagem, Para cima / Para baixo, Esquerda / Direita, Identificação da posição traseira / frontal, Notebook, e-reader e Detecção de queda e queda livre do laptop, em tempo real detecção de orientação, incluindo realidade virtual e feedback de posição do usuário em jogos 3D, análise de atividade em tempo real, como contagem de passos de pedômetro, detecção de queda livre para HDD, backup de GPS com estimativa de peso e muito mais.

Recomendado: