Tabla de contenido:
- Paso 1: Hardware necesario:
- Paso 2: Conexión de hardware:
- Paso 3: Código para medir la aceleración:
- Paso 4: Aplicaciones:
Video: Medición de la aceleración con ADXL345 y Arduino Nano: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:41
El ADXL345 es un acelerómetro de 3 ejes pequeño, delgado y de potencia ultrabaja con medición de alta resolución (13 bits) de hasta ± 16 g. Los datos de salida digital están formateados como un complemento de dos de 16 bits y se puede acceder a ellos a través de la interfaz digital I2 C. Mide la aceleración estática de la gravedad en aplicaciones de detección de inclinación, así como la aceleración dinámica resultante de movimientos o golpes. Su alta resolución (3,9 mg / LSB) permite medir cambios de inclinación inferiores a 1,0 °.
En este tutorial se ha ilustrado la interfaz del módulo sensor ADXL345 con arduino nano. Para leer los valores de aceleración, hemos utilizado arduino con un adaptador I2c. Este adaptador I2C hace que la conexión al módulo sensor sea fácil y más confiable.
Paso 1: Hardware necesario:
Los materiales que necesitamos para lograr nuestro objetivo incluyen los siguientes componentes de hardware:
1. ADXL345
2. Arduino Nano
3. Cable I2C
4. Escudo I2C para Arduino Nano
Paso 2: 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 ADXL345 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 para medir 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 ADXL345 I2C es 0x53 (83)
#define Addr 0x53
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 tasa de ancho de banda
Wire.write (0x2C);
// Modo normal, velocidad de datos de salida = 100 Hz
Wire.write (0x0A);
// Detener la transmisión I2C
Wire.endTransmission ();
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Seleccionar registro de control de potencia
Wire.write (0x2D);
// Desactivación del reposo automático
Wire.write (0x08);
// Detener la transmisión I2C
Wire.endTransmission ();
// Iniciar transmisión I2C
Wire.beginTransmission (Addr);
// Seleccionar registro de formato de datos
Wire.write (0x31);
// Autoprueba deshabilitada, interfaz de 4 cables, resolución completa, rango = +/- 2g
Wire.write (0x08);
// 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 ((50 + 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 ();
}
}
// Convierte los datos a 10 bits
int xAccl = (((datos [1] y 0x03) * 256) + datos [0]);
si (xAccl> 511)
{
xAccl - = 1024;
}
int yAccl = (((datos [3] y 0x03) * 256) + datos [2]);
si (yAccl> 511)
{
yAccl - = 1024;
}
int zAccl = (((datos [5] y 0x03) * 256) + datos [4]);
si (zAccl> 511)
{
zAccl - = 1024;
}
// Salida de datos al monitor en serie
Serial.print ("La aceleración en el eje X es:");
Serial.println (xAccl);
Serial.print ("La aceleración en el eje Y es:");
Serial.println (yAccl);
Serial.print ("La aceleración en el eje Z es:");
Serial.println (zAccl);
retraso (300);
}
En la biblioteca de cables, Wire.write () y Wire.read () se utilizan para escribir los comandos y leer la salida del sensor.
Serial.print () y Serial.println () se utilizan para mostrar la salida del sensor en el monitor en serie del IDE de Arduino.
La salida del sensor se muestra en la imagen de arriba.
Paso 4: Aplicaciones:
ADXL345 es un acelerómetro de 3 ejes pequeño, delgado y ultrabajo de potencia que puede emplearse en teléfonos móviles, instrumentación médica, etc. Su aplicación también incluye juegos y dispositivos señaladores, instrumentación industrial, dispositivos de navegación personal y protección de unidades de disco duro (HDD).
Recomendado:
Medición de la aceleración con ADXL345 y fotón de partículas: 4 pasos
Medición de la aceleración usando ADXL345 y Particle Photon: El ADXL345 es un acelerómetro de 3 ejes pequeño, delgado y de ultra baja potencia con medición de alta resolución (13 bits) de hasta ± 16 g. Los datos de salida digital están formateados como un complemento de dos de 16 bits y se puede acceder a ellos a través de la interfaz digital I2 C. Mide el
Medición de la aceleración con H3LIS331DL y Arduino Nano: 4 pasos
Medición de la aceleración con H3LIS331DL y Arduino Nano: 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 w
Medición de la aceleración con H3LIS331DL y fotón de partículas: 4 pasos
Medición de la aceleración utilizando H3LIS331DL y Particle Photon: H3LIS331DL, es un acelerómetro lineal de 3 ejes de bajo consumo y alto rendimiento perteneciente a la familia “nano”, con interfaz serie I²C digital. H3LIS331DL tiene escalas completas seleccionables por el usuario de ± 100g / ± 200g / ± 400g y es capaz de medir aceleraciones w
Medición de la aceleración con ADXL345 y Raspberry Pi: 4 pasos
Medición de la aceleración con ADXL345 y Raspberry Pi: El ADXL345 es un acelerómetro de 3 ejes pequeño, delgado y de potencia ultrabaja con medición de alta resolución (13 bits) de hasta ± 16 g. Los datos de salida digital están formateados como un complemento de dos de 16 bits y se puede acceder a ellos a través de la interfaz digital I2 C. Mide el
Medición de aceleración con BMA250 y Arduino Nano: 4 pasos
Medición de aceleración con BMA250 y Arduino Nano: BMA250 es un acelerómetro de 3 ejes pequeño, delgado y de potencia ultrabaja con medición de alta resolución (13 bits) de hasta ± 16 g. Los datos de salida digital están formateados como complemento a dos de 16 bits y se puede acceder a ellos a través de la interfaz digital I2C. Mide la estática