Grove - Acelerómetro Digital de 3 Ejes 40g (ADXL357)
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:
Producto | Rango de Medición | Puerto de Salida |
---|---|---|
Grove - Acelerómetro Analógico de 3 Ejes ±20g (ADXL356B) | ±10 / ±20g | Analógico |
Grove - Acelerómetro Analógico de 3 Ejes ±40g (ADXL356C) | ±10g / ±40g | Analógico |
Grove - Acelerómetro Digital de 3 Ejes ±40g (ADXL357) | ±10g@51200 LSB/g / ±20g@25600 LSB/g / ±40g@12800 LSB/g | I2C Digital |
Grove - Acelerómetro Digital de 3 Ejes ±200g (ADXL372) | ±200g | I2C Digital |
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ámetro | Valor |
---|---|
Voltaje de alimentación | 3.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 salida | Digital |
Pinout
Plataformas Compatibles
Arduino | Raspberry Pi |
---|---|
Primeros Pasos
Jugar con Arduino
Materiales requeridos
Seeeduino V4.2 | Base Shield | Grove Acelerómetro de 3 ejes ADXL357 |
---|---|---|
Obtener UNO Ahora | Obtener UNO Ahora | Obtener UNO Ahora |
Además, puedes considerar nuestro nuevo Seeeduino Lotus M0+, que es equivalente a la combinación de Seeeduino V4.2 y Baseshield.
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.
Software
Si esta es la primera vez que trabajas con Arduino, te recomendamos encarecidamente que veas Primeros Pasos con Arduino antes de comenzar.
-
Paso 1. Descarga la librería Seeed_ADXL_357 desde Github.
-
Paso 2. Consulta Cómo instalar librería para instalar la librería para Arduino.
-
Paso 3. Luego abre
example/ADXL_357/basic_demo
//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
- [ZIP] Archivo esquemático Grove-3-Axis_Digital_Accelerometer-40g-ADXL357
- [PDF] Hoja de datos ADXL 357
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.