Índice:

Medição de aceleração usando H3LIS331DL e Arduino Nano: 4 etapas
Medição de aceleração usando H3LIS331DL e Arduino Nano: 4 etapas

Vídeo: Medição de aceleração usando H3LIS331DL e Arduino Nano: 4 etapas

Vídeo: Medição de aceleração usando H3LIS331DL e Arduino Nano: 4 etapas
Vídeo: Introducing NEW Linear Accelerometer Technology from DTS 2024, Novembro
Anonim
Image
Image

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. O H3LIS331DL possui escalas completas selecionáveis pelo usuário de ± 100g / ± 200g / ± 400g e é capaz de medir acelerações com taxas de dados de saída de 0,5 Hz a 1 kHz. O H3LIS331DL tem garantia de operação em uma faixa de temperatura estendida de -40 ° C a +85 ° C.

Neste tutorial, vamos demonstrar a interface do H3LIS331DL com o Arduino Nano.

Etapa 1: Hardware necessário:

Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário
Hardware necessário

Os materiais de que precisamos para cumprir nosso objetivo incluem os seguintes componentes de hardware:

1. H3LIS331DL

2. Arduino Nano

3. Cabo I2C

4. Escudo I2C para Arduino Nano

Etapa 2: Conexão de Hardware:

Conexão de hardware
Conexão de hardware
Conexão de hardware
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 nano. 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 H3LIS331DL 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:

Código Arduino para medição de aceleração
Código Arduino para medição de aceleração
Código Arduino para medição de aceleração
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 H3LIS331DL 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);

// Selecione o registro de controle 1

Wire.write (0x20);

// Habilita os eixos X, Y, Z, modo ligado, taxa de saída de dados 50 Hz

Wire.write (0x27);

// Pare a transmissão I2C

Wire.endTransmission ();

// Iniciar a transmissão I2C

Wire.beginTransmission (Addr);

// Selecione o registro de controle 4

Wire.write (0x23);

// Definir escala completa, +/- 100g, atualização contínua

Wire.write (0x00);

// Pare a transmissão I2C

Wire.endTransmission ();

atraso (300);

}

void loop ()

{

dados internos não assinados [6];

para (int i = 0; i <6; i ++)

{

// Iniciar a transmissão I2C

Wire.beginTransmission (Addr);

// Selecione o registro de dados

Wire.write ((40 + i));

// Pare a transmissão I2C

Wire.endTransmission ();

// Solicitar 1 byte de dados

Wire.requestFrom (Addr, 1);

// Leia 6 bytes de dados

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

if (Wire.available () == 1)

{

dados = Wire.read ();

}

}

atraso (300);

// Converta os dados

int xAccl = ((dados [1] * 256) + dados [0]);

int yAccl = ((dados [3] * 256) + dados [2]);

int zAccl = ((dados [5] * 256) + dados [4]);

// 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 (300);

}

Tudo que você precisa fazer é gravar o código no arduino e verificar suas leituras na porta serial. A saída é mostrada na imagem acima.

Etapa 4: Aplicativos:

Formulários
Formulários

Acelerômetros como o H3LIS331DL 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. H3LIS331DL é um sensor de aceleração digital triaxial que é incorporado com um controlador inteligente de interrupção acionada por movimento no chip.

Recomendado: