Tienda de Electronica Avanzada

Tienda de Electronica Avanzada

$6,20

El Acelerometro ADXL345 GY-291 realiza detección de movimiento en 3 ejes con una resolución en medición (13 bits) de hasta ± 16 g. Los datos de salida se componen de 16 bits   y se puede acceder a través de la interfaz digital SPI (3 o 4 cables) o I2C.

Compare

El Acelerometro ADXL345 GY-291 realiza detección de movimiento en 3 ejes con una resolución en medición (13 bits) de hasta ± 16 g. Los datos de salida se componen de 16 bits   y se puede acceder a través de la interfaz digital SPI (3 o 4 cables) o I2C.

¿Para qué sirve el Acelerometro ADXL345 GY-291?

El Acelerometro ADXL345 GY-291 es ideal para:

  • Aceleración estática en las aplicaciones de detección de inclinación, su alta resolución (3,9 mg / LSB) permite medir cambios de inclinación inferiores a 1,0 °
  • Aceleración dinámica resultante del movimiento o el choque.

Adicional es funcional para la detección de actividad e inactividad detectando la presencia o la falta de movimiento al comparar la aceleración en cualquier eje con los umbrales establecidos por el usuario. La detección de toques detecta los toques simples y dobles en cualquier dirección. La detección de caída libre detecta si el dispositivo se está cayendo. Estas funciones se pueden asignar individualmente a cualquiera de los dos pines de salida de interrupción.


ESPECIFICACIÓN Y CARACTERÍSTICAS

  • Voltaje de funcionamiento : 3 V a 5 V
  • I/O rango de voltaje: 1.7 V a 3.6V
  • Chip Principal: ADXL345
  • Grados de libertad (DoF): 3
  • Rango de medición: ± 2 g a ± 16 g (± 2g / ± 4g / ± 8g / ± 16g.)
  • Rango de temperatura (−40°C to +85°C)
  • Dimensiones:  3 mm × 5 mm × 1 mm
  • Detección:
    • Caída Libre
    • Actividad/Inactividad
    • De un solo toque/doble toque
  • Corriente:
    • 40 µA in modo medición
    • 0.1 µA in modo reposo
  • Resolución:
    • Default:  10-bit.
    • Máxima: 13-bit a ±16 (manteniendo 4 mg/LSB como factor de escala en todos los rangos)
  • Interfaz:
    • SPI (3 o 4 hilos) a 5 MHz
    • I2C (2 hilos) a 100kHz-400kHz

DOCUMENTACIÓN Y RECURSOS


INFORMACIÓN ADICIONAL

Uso de la interfaz I2C y conexión a Arduino.

Para utilizar el Acelerometro con la interfaz de I2C con Arduino solo requerimos utilizar los pines SDA y SCL ,conexión de tierras (GND) y alimentación a la placa (3.3V ).

Código prueba para ADXL345

Se presenta el siguiente código con la finalidad de que puedas probar el funcionamiento del MPU , cabe mencionar que se requiere calibración y los datos arrojados son de fabrica. Para mas información revisar el datasheet.

#include <Wire.h>         //Librería para poder comunicarse con dispositivos por I2C
#define DEVICE (0x53)     // Dirección del ADXL345 especificada en el datasheet para iniciar comunicación
byte _buff[6];
char POWER_CTL = 0x2D;    //Registro de control
char DATA_FORMAT = 0x31;
char DATAX0 = 0x32;       //X-Eje Data 0
char DATAX1 = 0x33;       //X-Eje Data 1
char DATAY0 = 0x34;       //Y-Eje Data 0
char DATAY1 = 0x35;      //Y-Eje Data 1
char DATAZ0 = 0x36;      //Z-Eje Data 0
char DATAZ1 = 0x37;      //Z-Eje Data 1

void setup() {
  Wire.begin();
  Serial.begin(9600);
  writeTo(DATA_FORMAT, 0x01); //Coloca al ADXL345 dentro +/- Rango de 4G  para escribir el valor en 0x01 al registro DATA_FORMAT
  writeTo(POWER_CTL, 0x08);   //Coloca al ADXL345 en Mode Medición para escribir el valor en registro 0x08 al registro POWER_CTL
}

void loop() {
  readAccel(); // función de lectura de la inclinación en x/y/z
  delay(1000); // lecturas cada  segundo
}

void readAccel() {                  //función de lectura de la inclinación en x/y/z
  uint8_t dato = 6;                 //Lectura de 6 bit
  readFrom( DATAX0, dato, _buff);   //lectura del acelerómetro en el registro DATX0 de ADXL345
                                    // cada eje tiene una resolución de 10 bits empezando desde LSM
  // conversión de bytes a entero desde los buffer de lectura
  int x = (((int)_buff[1]) << 8) | _buff[0];
  int y = (((int)_buff[3]) << 8) | _buff[2];
  int z = (((int)_buff[5]) << 8) | _buff[4];
  //impresión de los valores de cada eje
  Serial.print("x: ");
  Serial.print( x );
  Serial.print(" y: ");
  Serial.print( y );
  Serial.print(" z: ");
  Serial.println( z );
}

void writeTo(byte address, byte val) {  //función para escritura de datos en los registros
  Wire.beginTransmission(DEVICE);       // comienza la comunicación 
  Wire.write(address);                  // envía las direcciones de registros
  Wire.write(val);                      // envió del valor
  Wire.endTransmission();               // fin de la comunicación
}


void readFrom(byte address, int num, byte _buff[]) {  // Funcion para la lectura de numero de bytes para las direcciones de registros en el buffer 
  Wire.beginTransmission(DEVICE);                     // comienza la comunicación
  Wire.write(address);                                // envia la direccion que fue leida
  Wire.endTransmission();                             // fin de la transmisión
  Wire.beginTransmission(DEVICE);                     // comienza la comunicación
  Wire.requestFrom(DEVICE, num);                      // solicitud de 6 bytes al MPU
  int i = 0;
  while (Wire.available()) {                          // El MPU puede enviar menos datos que los requeridos(abnormal)
    _buff[i] = Wire.read();                           // recibe bytes en los guarda en el buffer
    i++;
  }
  Wire.endTransmission();                              // fin de la transmisión
}


 

ENLACES EXTERNOS

Categorías: , Etiquetas: , , , , , ,

Valoraciones

No hay valoraciones aún.

Sé el primero en valorar “Modulo Acelerómetro Gy-291 Adxl345 Sensor Aceleración”

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *