Índice:
- Etapa 1: Hardware necessário:
- Etapa 2: Conexão de Hardware:
- Etapa 3: Código para medição de aceleração:
- Etapa 4: Aplicativos:
Vídeo: Medição de aceleração usando ADXL345 e partícula de fóton: 4 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
O ADXL345 é um acelerômetro de 3 eixos pequeno, fino e de potência ultrabaixa 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, a interface do módulo sensor ADXL345 com o fóton de partícula foi ilustrada. Para ler os valores de aceleração, usamos partícula com um adaptador I2c. Este adaptador I2C torna a conexão ao módulo do sensor mais fácil e confiável.
Etapa 1: Hardware necessário:
Os materiais de que precisamos para cumprir nosso objetivo incluem os seguintes componentes de hardware:
1. ADXL345
2. Partícula de fóton
3. Cabo I2C
4. Escudo I2C para partícula de fóton
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 fóton da partícula. 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 ADXL345 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 para medição de aceleração:
Vamos começar com o código da partícula agora.
Ao usar o módulo sensor com a partícula, incluímos a biblioteca application.h e spark_wiring_i2c.h. A biblioteca "application.h" e spark_wiring_i2c.h contém as funções que facilitam a comunicação i2c entre o sensor e a partícula.
Todo o código da partícula é fornecido abaixo para a conveniência do usuário:
#incluir
#incluir
// O endereço ADXL345 I2C é 0x53 (83)
#define Addr 0x53
int xAccl = 0, yAccl = 0, zAccl = 0;
void setup ()
{
// Definir variável
Particle.variable ("i2cdevice", "ADXL345");
Particle.variable ("xAccl", xAccl);
Particle.variable ("yAccl", yAccl);
Particle.variable ("zAccl", zAccl);
// 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 da taxa de largura de banda
Wire.write (0x2C);
// Selecione a taxa de dados de saída = 100 Hz
Wire.write (0x0A);
// Pare a transmissão I2C
Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecione o registro de controle de energia
Wire.write (0x2D);
// Selecione a desativação do sono automático
Wire.write (0x08);
// Pare a transmissão I2C
Wire.endTransmission ();
// Iniciar a transmissão I2C
Wire.beginTransmission (Addr);
// Selecionar registro de formato de dados
Wire.write (0x31);
// Selecione a resolução total, +/- 2g
Wire.write (0x08);
// Fim da 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 ((50 + i));
// Pare a transmissão I2C
Wire.endTransmission ();
// Solicita 1 byte de dados do dispositivo
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 para 10 bits
int xAccl = (((dados [1] e 0x03) * 256) + dados [0]);
if (xAccl> 511)
{
xAccl - = 1024;
}
int yAccl = (((dados [3] e 0x03) * 256) + dados [2]);
if (yAccl> 511)
{
yAccl - = 1024;
}
int zAccl = (((dados [5] e 0x03) * 256) + dados [4]);
if (zAccl> 511)
{
zAccl - = 1024;
}
// Saída de dados para o painel
Particle.publish ("Aceleração no eixo X é:", String (xAccl));
Particle.publish ("Aceleração no eixo Y é:", String (yAccl));
Particle.publish ("Aceleração no eixo Z é:", String (zAccl));
}
A função Particle.variable () cria as variáveis para armazenar a saída do sensor e a função Particle.publish () exibe a saída no painel do site.
A saída do sensor é mostrada na imagem acima para sua referência.
Etapa 4: Aplicativos:
ADXL345 é um acelerômetro de 3 eixos pequeno, fino e de potência ultrabaixa que pode ser empregado em aparelhos, instrumentação médica, etc. Sua aplicação também inclui dispositivos de jogo e apontadores, instrumentação industrial, dispositivos de navegação pessoal e proteção de unidade de disco rígido (HDD).
Recomendado:
Medição de campo magnético usando HMC5883 e fóton de partícula: 4 etapas
Medição de campo magnético usando HMC5883 e partícula de fóton: O HMC5883 é uma bússola digital projetada para detecção magnética de baixo campo. Este dispositivo possui uma ampla faixa de campo magnético de +/- 8 Oe e uma taxa de saída de 160 Hz. O sensor HMC5883 inclui drivers de cinta de desmagnetização automática, cancelamento de deslocamento e
Medição de umidade usando HYT939 e partícula de fóton: 4 etapas
Medição de umidade usando HYT939 e partícula de fóton: HYT939 é um sensor de umidade digital que funciona no protocolo de comunicação I2C. A umidade é um parâmetro fundamental quando se trata de sistemas médicos e laboratórios. Portanto, para atingir esses objetivos, tentamos fazer a interface do HYT939 com o raspberry pi. EU
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
Medição de pressão usando CPS120 e partícula de fóton: 4 etapas
Medição de pressão usando CPS120 e partícula fotônica: CPS120 é um sensor de pressão absoluta capacitiva de alta qualidade e baixo custo com saída totalmente compensada. Ele consome muito menos energia e é composto por um sensor microeletromecânico (MEMS) ultrapequeno para medição de pressão. Um baseado em sigma-delta
Medição de temperatura usando ADT75 e partícula de fóton: 4 etapas
Medição de temperatura usando ADT75 e partícula de fóton: ADT75 é um sensor de temperatura digital de alta precisão. É composto por um sensor de temperatura de banda larga e um conversor analógico-digital de 12 bits para monitorar e digitalizar a temperatura. Seu sensor altamente sensível o torna competente o suficiente para mim