Pular para o conteúdo principal

Grove - Acelerômetro Digital Triaxial 40g (ADXL357)

pir

Você pode encontrar uma variedade de acelerômetros triaxiais em nosso site que podem atender a diferentes cenários e necessidades. Desta vez, trazemos a você os acelerômetros triaxiais da série industrial ADI ADXL, com alta estabilidade, alta precisão e baixo consumo de energia.

O Grove - 3-Axis Digital Accelerometer ±40g (ADXL357) é um Acelerômetro MEMS com saída digital. Este sensor possui três faixas de medição e precisões selecionáveis: ±10g@51200 LSB/g, ±20g@25600 LSB/g, ±40g@12800 LSB/g. Você só precisa fazer um pequeno trabalho de calibração para obter um resultado relativamente preciso. Ele fornece todos os dados através da porta Grove I2C, e o endereço I2C também é selecionável. Além disso, também fornecemos dois pinos de saída de interrupção que podem ser configurados em 4 modos.

A Série de Acelerômetros ADI ADXL inclui quatro produtos que atenderão às suas diferentes necessidades de faixa e saída:

ProductMeasurement RangeOutput Port
Grove - 3-Axis Analog Accelerometer ±20g (ADXL356B)±10 / ±20gAnalógico
Grove - 3-Axis Analog Accelerometer ±40g (ADXL356C)±10g / ±40gAnalógico
Grove - 3-Axis Digital Accelerometer ±40g (ADXL357)±10g@51200 LSB/g / ±20g@25600 LSB/g / ±40g@12800 LSB/gI2C digital
Grove - 3-Axis Digital Accelerometer ±200g (ADXL372)±200gI2C digital

pir

Recursos

  • Ruído líder na indústria, desvio mínimo de offset em função da temperatura e estabilidade de longo prazo, possibilitando aplicações de alta precisão com calibração mínima.
  • Invólucro hermético oferece excelente estabilidade de longo prazo; offset de 0 g vs. temperatura (todos os eixos): 0,75 mg/°C máximo
  • Densidade de ruído ultrabaixa (todos os eixos): 80 μg/√Hz
  • Conversor analógico‑digital (ADC) de 20 bits integrado
  • Baixo desvio, baixo ruído e baixo consumo de energia
  • Suporta saída de interrupção de dois canais
  • Suporta FIFO (96*21 bits)

APLICAÇÕES

  • Unidades de medição inercial (IMUs) / sistemas de referência de altitude e rumo (AHRSs)
  • Sistemas de estabilização de plataforma
  • Monitoramento de integridade estrutural
  • Monitoramento de condição
  • Imageamento sísmico
  • Detecção de inclinação
  • Robótica

Especificação

ParâmetroValor
Tensão de alimentação3,3V / 5V
Temperatura ambiente de operação-40 – 125℃
Sensibilidade em XOUT, YOUT, ZOUT / (Ratiométrico para V1P8ANA)±10 g@80 mv/g (Típ.) / ±20 g@40 mv/g (Típ.) / ±40 g@20 mv/g (Típ.)
Mudança de sensibilidade devido à temperatura±0,01%/°C (TA = −40°C a +125°C)
OFFSET de 0g / (referido a V1P8ANA/2)±125 mg (Típ.)
Interface de saídaDigital

Pinagem

pir

pir

Plataformas Suportadas

ArduinoRaspberry Pi

pir

pir

Primeiros Passos

Brincar com Arduino

Materiais necessários

Seeeduino V4.2Base ShieldGrove Acelerômetro Triaxial ADXL357

pir

pir

pir

Adquira agoraAdquira agoraAdquira agora

Além disso, você pode considerar o nosso novo Seeeduino Lotus M0+, que é equivalente à combinação do Seeeduino V4.2 com o Base Shield.

nota

1 Conecte o cabo USB com cuidado, caso contrário você pode danificar a porta. Use um cabo USB com 4 fios internos; cabos com 2 fios não conseguem transferir dados. Se você não tiver certeza sobre o cabo que possui, pode clicar aqui para comprar

2 Cada módulo Grove vem com um cabo Grove quando você o compra. Caso você perca o cabo Grove, pode clicar aqui para comprar.

Conexão de Hardware

  • Passo 1. Conecte o Grove - 3-Axis Analog Accelerometer ±20g (ADXL357) à porta I2c do Base Shield.

  • Passo 2. Conecte o Grove - Base Shield ao Seeeduino.

  • Passo 3. Conecte o Seeeduino ao PC através de um cabo USB.

pir

Software

nota

Se esta é a primeira vez que você trabalha com Arduino, recomendamos fortemente que veja Getting Started with Arduino antes de começar.

pir

//basic_demo.ino
#include "Seeed_adxl357b.h"


#if defined(ARDUINO_ARCH_AVR)
#pragma message("Defined architecture for ARDUINO_ARCH_AVR.")
#define SERIAL Serial
#elif defined(ARDUINO_ARCH_SAM)
#pragma message("Defined architecture for ARDUINO_ARCH_SAM.")
#define SERIAL SerialUSB
#elif defined(ARDUINO_ARCH_SAMD)
#pragma message("Defined architecture for ARDUINO_ARCH_SAMD.")
#define SERIAL SerialUSB
#elif defined(ARDUINO_ARCH_STM32F4)
#pragma message("Defined architecture for ARDUINO_ARCH_STM32F4.")
#define SERIAL SerialUSB
#else
#pragma message("Not found any architecture.")
#define SERIAL Serial
#endif


#define CALI_BUF_LEN 15
#define CALI_INTERVAL_TIME 250
int32_t cali_buf[3][CALI_BUF_LEN];
int32_t cali_data[3];

float factory;

Adxl357b adxl357b;


int32_t deal_cali_buf(int32_t *buf)
{
int32_t cali_val = 0;

for(int i = 0;i < CALI_BUF_LEN;i++)
{
cali_val += buf[i];
}
cali_val = cali_val/CALI_BUF_LEN;
return (int32_t)cali_val;
}


void calibration(void)
{
int32_t x;
SERIAL.println("Please Place the module horizontally!");
delay(1000);
SERIAL.println("Start calibration........");

for(int i=0;i<CALI_BUF_LEN;i++)
{
if(adxl357b.checkDataReady())
{
if(adxl357b.readXYZAxisResultData(cali_buf[0][i],cali_buf[1][i],cali_buf[2][i]))
{
}
}
delay(CALI_INTERVAL_TIME);
// SERIAL.print('.');
}
// SERIAL.println('.');
for(int i=0;i<3;i++)
{
cali_data[i] = deal_cali_buf(cali_buf[i]);
SERIAL.println(cali_data[i]);
}
x = (((cali_data[2] - cali_data[0]) + (cali_data[2] - cali_data[1]))/2);
factory = 1.0 / (float)x;
// SERIAL.println(x);
SERIAL.println("Calibration OK!!");
}


void setup(void)
{
uint8_t value = 0;
float t;

SERIAL.begin(115200);
if(adxl357b.begin())
{
SERIAL.println("Can't detect ADXL357B device .");
while(1);
}
SERIAL.println("Init OK!");
/*Set full scale range to ±40g*/
adxl357b.setAdxlRange(FOURTY_G);
/*Switch standby mode to measurement mode.*/
adxl357b.setPowerCtr(0);
delay(100);
/*Read Uncalibration temperature.*/
adxl357b.readTemperature(t);

SERIAL.print("Uncalibration temp = ");
SERIAL.println(t);
/**/
calibration();

}


void loop(void)
{
int32_t x,y,z;
uint8_t entry = 0;
if(adxl357b.checkDataReady())
{
if(adxl357b.readXYZAxisResultData(x,y,z))
{
SERIAL.println("Get data failed!");
}
SERIAL.print("X axis = ");
SERIAL.print(x*factory);
SERIAL.println('g');
SERIAL.print("Y axis = ");
SERIAL.print(y*factory);
SERIAL.println('g');
SERIAL.print("Z axis = ");
SERIAL.print(z*factory);
SERIAL.println('g');

}
delay(100);
}


  • Passo 4. Faça o upload do demo. Se você não souber como fazer o upload do código, consulte How to upload code.

  • Passo 5. Abra o Serial Monitor da Arduino IDE clicando em Tool-> Serial Monitor. Ou pressione as teclas ++ctrl+shift+m++ ao mesmo tempo. Defina a taxa de transmissão para 115200.

  • Passo 6. Calibração aguarde a calibração, em apenas alguns segundos a calibração será concluída

  • Passo 7. Agora você pode usar este sensor, e a saída será assim:

Start calibration.......Init OK!
Uncalibration temp = 29.20
Please Place the module horizontally!
Start calibration........
-1652
11143
6063
Calibration OK!!
X axis = -1.24g
Y axis = 8.50g
Z axis = 4.55g
X axis = -1.21g
Y axis = 8.43g

Visualizador de Esquemático Online

Recursos

Suporte Técnico & Discussão de Produto

Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja o mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...