Skip to main content

Grove - Acelerómetro Digital de 3 Ejes 40g (ADXL357)

pir

Puedes encontrar una variedad de acelerómetros de 3 ejes en nuestro sitio web que pueden satisfacer diferentes escenarios y necesidades. Esta vez, te traemos los acelerómetros de tres ejes de la serie ADXL de ADI de grado industrial, alta estabilidad, alta precisión y bajo consumo.

El Grove - Acelerómetro Digital de 3 Ejes ±40g (ADXL357) es un MEMS Acelerómetro de salida digital. Este sensor tiene tres rangos de medición y precisiones seleccionables diferentes: ±10g@51200 LSB/g, ±20g@25600 LSB/g, ±40g@12800 LSB/g. Solo necesitas hacer poco trabajo de calibración para obtener un resultado relativamente preciso. Envía todos los datos a través del puerto grove I2C, y la dirección I2C también es seleccionable. Además, también proporcionamos dos pines de salida de interrupción que pueden configurarse en 4 modos.

El Acelerómetro de la Serie ADXL de ADI incluye cuatro productos que satisfarán tus diferentes necesidades de rango y salida:

ProductoRango de MediciónPuerto de Salida
Grove - Acelerómetro Analógico de 3 Ejes ±20g (ADXL356B)±10 / ±20gAnalógico
Grove - Acelerómetro Analógico de 3 Ejes ±40g (ADXL356C)±10g / ±40gAnalógico
Grove - Acelerómetro Digital de 3 Ejes ±40g (ADXL357)±10g@51200 LSB/g / ±20g@25600 LSB/g / ±40g@12800 LSB/gI2C Digital
Grove - Acelerómetro Digital de 3 Ejes ±200g (ADXL372)±200gI2C Digital

pir

Características

  • Ruido líder en la industria, deriva mínima de offset sobre temperatura, y estabilidad a largo plazo, permitiendo aplicaciones de precisión con calibración mínima.
  • El paquete hermético ofrece excelente estabilidad a largo plazo. Offset de 0 g vs. temperatura (todos los ejes): 0.75 mg/°C máximo
  • Densidad de ruido ultrabaja (todos los ejes): 80 μg/√Hz
  • Convertidor analógico-digital (ADC) integrado de 20 bits
  • Baja deriva, bajo ruido y bajo consumo
  • Soporta salida de interrupción de dos canales
  • Soporta FIFO(96*21-bit)

APLICACIONES

  • Unidades de medición inercial (IMUs)/sistemas de referencia de altitud y rumbo (AHRSs)
  • Sistemas de estabilización de plataforma
  • Monitoreo de salud estructural
  • Monitoreo de condición
  • Imágenes sísmicas
  • Detección de inclinación
  • Robótica

Especificación

ParámetroValor
Voltaje de alimentación3.3V / 5V
Temperatura ambiente de operación-40 – 125℃
Sensibilidad en XOUT, YOUT, ZOUT / (Ratiométrica a V1P8ANA)±10 g@80 mv/g (Típ.) / ±20 g@40 mv/g (Típ.) / ±40 g@20 mv/g (Típ.)
Cambio de Sensibilidad debido a la Temperatura±0.01%/°C (TA = −40°C a +125°C)
OFFSET de 0g / (Referido a V1P8ANA/2)±125 mg(Típ.)
Interfaz de salidaDigital

Pinout

pir

pir

Plataformas Compatibles

ArduinoRaspberry Pi

pir

pir

Primeros Pasos

Jugar con Arduino

Materiales requeridos

Seeeduino V4.2Base ShieldGrove Acelerómetro de 3 ejes ADXL357

pir

pir

pir

Obtener UNO AhoraObtener UNO AhoraObtener UNO Ahora

Además, puedes considerar nuestro nuevo Seeeduino Lotus M0+, que es equivalente a la combinación de Seeeduino V4.2 y Baseshield.

note

1 Por favor conecta el cable USB con cuidado, de lo contrario podrías dañar el puerto. Por favor usa el cable USB con 4 cables internos, el cable de 2 cables no puede transferir datos. Si no estás seguro sobre el cable que tienes, puedes hacer clic aquí para comprar

2 Cada módulo Grove viene con un cable Grove cuando lo compras. En caso de que pierdas el cable Grove, puedes hacer clic aquí para comprar.

Conexión de Hardware

  • Paso 1. Conecta el Grove - Acelerómetro Analógico de 3 Ejes ±20g (ADXL357) al puerto I2c del Base Shield.

  • Paso 2. Conecta el Grove - Base Shield al Seeeduino.

  • Paso 3. Conecta el Seeeduino a la PC mediante un cable USB.

pir

Software

note

Si esta es la primera vez que trabajas con Arduino, te recomendamos encarecidamente que veas Primeros Pasos con Arduino antes de comenzar.

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);
}


  • Paso 4. Sube la demostración. Si no sabes cómo subir el código, por favor revisa Cómo subir código.

  • Paso 5. Abre el Monitor Serie del IDE de Arduino haciendo clic en Herramientas-> Monitor Serie. O presiona las teclas ++ctrl+shift+m++ al mismo tiempo. Establece la velocidad de baudios a 115200.

  • Paso 6. Calibración espera la calibración, en solo unos segundos la calibración estará terminada

  • Paso 7. Ahora puedes usar este sensor, y la salida será así:

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

Visor Esquemático en Línea

Recursos

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...