Índice:
- Etapa 1: Hardware necessário:
- Etapa 2: Conexão de Hardware:
- Etapa 3: Código Arduino para medição de aceleração:
- Etapa 4: Aplicativos:
Vídeo: Medição de aceleração usando BMA250 e Arduino Nano: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
O BMA250 é um acelerômetro de 3 eixos pequeno, fino e ultrabaixo com medição de alta resolução (13 bits) de até ± 16 g. Os dados de saída digital são formatados como complemento de dois de 16 bits e são acessíveis por meio da interface digital I2C. Ele mede a aceleração estática da gravidade em aplicações de detecção de inclinação, bem como a aceleração dinâmica resultante de movimento ou choque. Sua alta resolução (3,9 mg / LSB) permite a medição de mudanças de inclinação inferiores a 1,0 °.
Neste tutorial vamos medir a aceleração em todos os três eixos perpendiculares usando BMA250 e Arduino Nano.
Etapa 1: Hardware necessário:
Os materiais de que precisamos para cumprir nosso objetivo incluem os seguintes componentes de hardware:
1. BMA250
2. Arduino Nano
3. Cabo I2C
4. Escudo I2C para Arduino Nano
Etapa 2: Conexão de Hardware:
A seção de conexão de hardware explica basicamente as conexões de fiação necessárias entre o sensor e o arduino. Garantir as conexões corretas é a necessidade básica ao trabalhar em qualquer sistema para a saída desejada. Portanto, as conexões necessárias são as seguintes:
O BMA250 funcionará em I2C. Aqui está o diagrama de fiação de exemplo, demonstrando como conectar cada interface do sensor.
Fora da caixa, a placa é configurada para uma interface I2C, como tal, recomendamos usar esta conexão se você for agnóstico. Você só precisa de quatro fios!
São necessárias apenas quatro conexões dos pinos Vcc, Gnd, SCL e SDA e estes são conectados com a ajuda do cabo I2C.
Essas conexões são demonstradas nas fotos acima.
Etapa 3: Código Arduino para medição de aceleração:
Vamos começar com o código do Arduino agora.
Ao usar o módulo sensor com o Arduino, incluímos a biblioteca Wire.h. A biblioteca "Wire" contém as funções que facilitam a comunicação i2c entre o sensor e a placa Arduino.
Todo o código do Arduino é fornecido abaixo para a conveniência do usuário:
#incluir
// O endereço BMA250 I2C é 0x18 (24)
#define Addr 0x18
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);
// Selecionar registro de seleção de faixa
Wire.write (0x0F);
// Definir intervalo +/- 2g
Wire.write (0x03);
// Pare a transmissão I2C
Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de largura de banda
Wire.write (0x10);
// Definir largura de banda 7,81 Hz
Wire.write (0x08);
// Pare a transmissão I2C
Wire.endTransmission (); atraso (300);}
void loop ()
{
dados internos não assinados [0];
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecionar registros de dados (0x02 - 0x07)
Wire.write (0x02);
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicita 6 bytes
Wire.requestFrom (Addr, 6);
// Leia os seis bytes
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
if (Wire.available () == 6)
{
dados [0] = Wire.read ();
dados [1] = Wire.read ();
dados [2] = Wire.read ();
dados [3] = Wire.read ();
dados [4] = Wire.read ();
dados [5] = Wire.read ();
}
atraso (300);
// Converta os dados para 10 bits
float xAccl = ((dados [1] * 256,0) + (dados [0] e 0xC0)) / 64;
if (xAccl> 511)
{
xAccl - = 1024;
}
float yAccl = ((dados [3] * 256,0) + (dados [2] e 0xC0)) / 64;
if (yAccl> 511)
{
yAccl - = 1024;
}
float zAccl = ((dados [5] * 256.0) + (dados [4] & 0xC0)) / 64;
if (zAccl> 511)
{
zAccl - = 1024;
}
// Saída de dados para o 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);
}
Na biblioteca de fios, Wire.write () e Wire.read () são usados para escrever os comandos e ler a saída do sensor. Serial.print () e Serial.println () são usados para exibir a saída do sensor no monitor serial do IDE do Arduino.
A saída do sensor é mostrada na imagem acima.
Etapa 4: Aplicativos:
Acelerômetros como o BMA250 encontram sua aplicação principalmente nos jogos e na troca de perfis de exibição. Este módulo sensor também é empregado no sistema de gerenciamento de energia avançado para aplicativos móveis. O BMA250 é um sensor de aceleração digital triaxial incorporado com um controlador inteligente de interrupção acionada por movimento no chip.
Recomendado:
Medição de aceleração usando ADXL345 e partícula de fóton: 4 etapas
Medição de aceleração usando ADXL345 e partícula de fóton: O ADXL345 é um acelerômetro de 3 eixos pequeno, fino e ultrabaixo com medição de alta resolução (13 bits) de até ± 16 g. Os dados de saída digital são formatados como complemento de dois de 16 bits e são acessíveis por meio da interface digital I2C. Ele mede o
Medição de aceleração usando H3LIS331DL e Arduino Nano: 4 etapas
Medição de aceleração usando H3LIS331DL e Arduino Nano: H3LIS331DL, é um acelerômetro linear de 3 eixos de baixa potência e alto desempenho pertencente à família “nano”, com interface serial digital I²C. H3LIS331DL tem escalas completas selecionáveis pelo usuário de ± 100g / ± 200g / ± 400g e é capaz de medir acelerações w
Medição de aceleração usando ADXL345 e Arduino Nano: 4 etapas
Medição de aceleração usando ADXL345 e Arduino Nano: O ADXL345 é um acelerômetro de 3 eixos pequeno, fino e ultrabaixo com medição de alta resolução (13 bits) de até ± 16 g. Os dados de saída digital são formatados como complemento de dois de 16 bits e são acessíveis por meio da interface digital I2C. Ele mede o
Medição de aceleração usando BMA250 e Raspberry Pi: 4 etapas
Medição de aceleração usando BMA250 e Raspberry Pi: o BMA250 é um acelerômetro de 3 eixos pequeno, fino e ultrabaixo com medição de alta resolução (13 bits) de até ± 16 g. Os dados de saída digital são formatados como complemento de dois de 16 bits e são acessíveis por meio da interface digital I2C. Ele mede a estática
Medição de aceleração usando BMA250 e partícula de fóton: 4 etapas
Medição de aceleração usando o BMA250 e o fóton de partículas: o BMA250 é um acelerômetro de 3 eixos pequeno, fino e ultrabaixo com medição de alta resolução (13 bits) de até ± 16 g. Os dados de saída digital são formatados como complemento de dois de 16 bits e são acessíveis por meio da interface digital I2C. Ele mede a estática