Tabla de contenido:

Medición de la aceleración con H3LIS331DL y Arduino Nano: 4 pasos
Medición de la aceleración con H3LIS331DL y Arduino Nano: 4 pasos

Video: Medición de la aceleración con H3LIS331DL y Arduino Nano: 4 pasos

Video: Medición de la aceleración con H3LIS331DL y Arduino Nano: 4 pasos
Video: Product Showcase: SparkFun Triple Axis Digital Accelerometer Breakout 2024, Noviembre
Anonim
Image
Image

H3LIS331DL, es un acelerómetro lineal de 3 ejes de bajo consumo y alto rendimiento perteneciente a la familia “nano”, con interfaz serie digital I²C. H3LIS331DL tiene escalas completas seleccionables por el usuario de ± 100g / ± 200g / ± 400g y es capaz de medir aceleraciones con velocidades de datos de salida de 0,5 Hz a 1 kHz. Se garantiza que el H3LIS331DL funcionará en un rango de temperatura extendido de -40 ° C a +85 ° C.

En este tutorial vamos a demostrar la interfaz de H3LIS331DL con Arduino Nano.

Paso 1: Hardware necesario:

Hardware requerido
Hardware requerido
Hardware requerido
Hardware requerido
Hardware requerido
Hardware requerido

Los materiales que necesitamos para lograr nuestro objetivo incluyen los siguientes componentes de hardware:

1. H3LIS331DL

2. Arduino Nano

3. Cable I2C

4. Escudo I2C para Arduino Nano

Paso 2: Conexión de hardware:

Conexión de hardware
Conexión de hardware
Conexión de hardware
Conexión de hardware

La sección de conexión de hardware básicamente explica las conexiones de cableado necesarias entre el sensor y el arduino nano. Asegurar las conexiones correctas es la necesidad básica al trabajar en cualquier sistema para obtener la salida deseada. Entonces, las conexiones requeridas son las siguientes:

El H3LIS331DL funcionará sobre I2C. Aquí está el diagrama de cableado de ejemplo, que demuestra cómo cablear cada interfaz del sensor.

Fuera de la caja, la placa está configurada para una interfaz I2C, por lo que recomendamos usar esta conexión si, por lo demás, es agnóstico. ¡Todo lo que necesitas son cuatro cables!

Solo se requieren cuatro conexiones Vcc, Gnd, SCL y pines SDA y estos se conectan con la ayuda del cable I2C.

Estas conexiones se muestran en las imágenes de arriba.

Paso 3: Código Arduino para la medición de la aceleración:

Código Arduino para la medición de la aceleración
Código Arduino para la medición de la aceleración
Código Arduino para la medición de la aceleración
Código Arduino para la medición de la aceleración

Comencemos ahora con el código arduino.

Mientras usamos el módulo de sensor con el arduino, incluimos la biblioteca Wire.h. La biblioteca "Wire" contiene las funciones que facilitan la comunicación i2c entre el sensor y la placa arduino.

El código arduino completo se proporciona a continuación para la conveniencia del usuario:

#incluir

// La dirección H3LIS331DL I2C es 0x18 (24)

#define Addr 0x18

configuración vacía ()

{

// Inicializar la comunicación I2C como MASTER

Wire.begin ();

// Inicializar la comunicación en serie, configurar la velocidad en baudios = 9600

Serial.begin (9600);

// Iniciar transmisión I2C

Wire.beginTransmission (Addr);

// Seleccionar registro de control 1

Wire.write (0x20);

// Habilita los ejes X, Y, Z, modo de encendido, velocidad de salida de datos 50Hz

Wire.write (0x27);

// Detener la transmisión I2C

Wire.endTransmission ();

// Iniciar transmisión I2C

Wire.beginTransmission (Addr);

// Seleccionar registro de control 4

Wire.write (0x23);

// Establecer escala completa, +/- 100g, actualización continua

Wire.write (0x00);

// Detener la transmisión I2C

Wire.endTransmission ();

retraso (300);

}

bucle vacío ()

{

datos int sin firmar [6];

para (int i = 0; i <6; i ++)

{

// Iniciar transmisión I2C

Wire.beginTransmission (Addr);

// Seleccionar registro de datos

Wire.write ((40 + i));

// Detener la transmisión I2C

Wire.endTransmission ();

// Solicitar 1 byte de datos

Wire.requestFrom (Dirección, 1);

// Leer 6 bytes de datos

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

si (Cable disponible () == 1)

{

datos = Wire.read ();

}

}

retraso (300);

// Convertir los datos

int xAccl = ((datos [1] * 256) + datos [0]);

int yAccl = ((datos [3] * 256) + datos [2]);

int zAccl = ((datos [5] * 256) + datos [4]);

// Salida de datos al monitor en serie

Serial.print ("Aceleración en el eje X:");

Serial.println (xAccl);

Serial.print ("Aceleración en el eje Y:");

Serial.println (yAccl);

Serial.print ("Aceleración en el eje Z:");

Serial.println (zAccl);

retraso (300);

}

Todo lo que necesita hacer es grabar el código en arduino y verificar sus lecturas en el puerto serie. La salida se muestra en la imagen de arriba.

Paso 4: Aplicaciones:

Aplicaciones
Aplicaciones

Acelerómetros como H3LIS331DL encuentran su aplicación principalmente en los juegos y en el cambio de perfil de pantalla. Este módulo de sensor también se emplea en el sistema avanzado de administración de energía para aplicaciones móviles. H3LIS331DL es un sensor de aceleración digital triaxial que se incorpora con un controlador de interrupción activada por movimiento inteligente en el chip.

Recomendado: