ADXL345: ¿El Acelerómetro Más Barato de AliExpress Vale la Pena? Precio, Códigos y Mi Experiencia

ADXL345: ¿El Acelerómetro Más

Escrito por

en

¿Qué es el ADXL345 y por qué lo usamos?

Mira, si estás metido en el mundillo de la impresión 3D o la robótica casera, seguro que te has topado con este pequeño chip. El ADXL345 es un acelerómetro de 3 ejes. Pequeño. Barato. Y sorprendentemente preciso para lo que cuesta.

Nosotros en DunaTech llevamos años hurgando en la basura digital de AliExpress para encontrar gemas escondidas. Y este sensor es una de ellas. Lo hemos usado para todo: desde nivelar camas de impresoras 3D con guía de tablets baratas hasta detectar vibraciones en drones caseros. Sinceramente, me sorprendió la primera vez que vi los datos en serie. Resolución de 13 bits y un rango de ±16g. No está nada mal por menos de lo que cuesta un café con leche.

Pero ojo. No todo es tan bonito como pintan los anuncios. El problema real empieza cuando intentas conectarlo al Arduino y el bus SPI o I2C te da guerra. Y sí. Así de simple.

Precio en AliExpress: ¿Cuánto Cuesta Realmente?

Vale, hablemos de pasta. El ADXL345 es, sin duda, uno de los sensores más baratos que puedes comprar para tus proyectos. En AliExpress, el precio varía según el vendedor y si viene en módulo (con la placa de soporte) o solo el chip suelto.

Normalmente, un módulo ADXL345 con todos los pines soldados y listo para usar ronda los 1.50 – 3.50 USD. Sí, has leído bien. Por menos de 4 dólares tienes un acelerómetro que funciona. Si lo compras en lotes de 5 o 10, el precio unitario baja aún más. Es un chollo.

Pero hay trampa. Los módulos más baratos a veces vienen sin condensadores de desacoplo o con resistencias de pull-up mal soldadas. He tenido que reballing a más de uno. Si eres nuevo, te recomiendo gastar 50 céntimos más y comprar uno que tenga buena pinta en las fotos (pistas doradas, soldaduras limpias).

Códigos Arduino Básicos para Empezar

Aquí es donde la mayoría se pierde. Copian un código de internet, lo pegan, y esperan que funcione. Y no. El ADXL345 puede comunicarse por I2C o SPI. Si no especificas bien los pines, el bus se cuelga y no lees ni un puto dato.

Conexión por I2C (La más fácil)

Para I2C, solo necesitas 4 cables: VCC (3.3V o 5V, aunque el módulo suele tener regulador), GND, SDA (A4 en Arduino Uno) y SCL (A5 en Arduino Uno).


#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>

Adafruit_ADXL345_Unified accel = Adafruit_ADXL345_Unified(12345);

void setup(void) {
  Serial.begin(9600);
  if(!accel.begin()) {
    Serial.println("Error: No se detectó ADXL345. Revisa conexiones I2C.");
    while(1);
  }
  accel.setRange(ADXL345_RANGE_16_G);
}

void loop(void) {
  sensors_event_t event;
  accel.getEvent(&event);
  Serial.print("X: "); Serial.print(event.acceleration.x);
  Serial.print(" Y: "); Serial.print(event.acceleration.y);
  Serial.print(" Z: "); Serial.print(event.acceleration.z); Serial.println(" m/s^2");
  delay(500);
}

Si ves el mensaje de error, no entres en pánico. Lo más probable es que tengas las direcciones I2C mal. El ADXL345 por defecto usa la dirección 0x53. Si tu módulo tiene el pin CS conectado a VCC, la dirección cambia a 0x1D. Prueba ambas.

Conexión por SPI (Más rápida, más complicada)

Para SPI necesitas 5 pines: VCC, GND, CS (chip select), MOSI, MISO y SCK. El problema típico es que el pin CS no está bien definido. Si usas el pin 10 como CS, asegúrate de que no hay otro dispositivo usando ese pin. He visto proyectos enteros que no funcionaban porque tenían la SD card y el acelerómetro compartiendo el mismo CS sin un multiplexor.

Troubleshooting: Errores Comunes y Cómo Solucionarlos

Esta sección es oro puro. Llevo años viendo a gente frustrada en foros porque su ADXL345 no da señal. Aquí van los fallos más frecuentes y cómo arreglarlos.

1. No se detecta en el bus I2C

Es el problema número uno. Abres el monitor serie y ves «Error: No se detectó ADXL345».

  • Causa más común: El pin CS está flotando. En los módulos baratos, el pin CS no tiene resistencia de pull-up. Si no lo conectas a VCC (para I2C) o a un pin digital (para SPI), el módulo se vuelve loco. Solución: Conecta CS a 3.3V directamente si usas I2C.
  • Segunda causa: Dirección I2C incorrecta. Prueba con 0x53 y 0x1D. Usa un scanner I2C para ver qué dispositivos hay en el bus.
  • Tercera causa: Voltaje. Algunos módulos chinos no toleran bien 5V en los pines de datos. Usa 3.3V para VCC y para las líneas de datos, o un level shifter.

2. Lecturas erráticas o valores que no cambian

Si el sensor te da valores fijos o saltos enormes sin moverlo, algo va mal.

  • Problema: Ruido en la alimentación. Los motores paso a paso de las impresoras 3D generan picos de tensión. Solución: Añade un condensador de 100µF entre VCC y GND cerca del módulo. Y aleja el sensor del driver de los motores.
  • Problema: Tasa de muestreo demasiado alta. El ADXL345 puede ir a 3200 Hz, pero si tu Arduino no da abasto, los datos se corrompen. Baja la tasa a 100 Hz en el setup: accel.setDataRate(ADXL345_DATARATE_100_HZ);

3. El sensor se calienta

Esto es raro, pero pasa. Si el módulo se calienta al tocarlo, probablemente hay un corto en la soldadura o el regulador de voltaje del módulo está defectuoso. Solución: Desolda el módulo y pruébalo en una protoboard. Si sigue calentándose, tíralo. Cuesta 2 dólares, no merece la pena arriesgar tu placa Arduino.

4. No funciona con el cable USB largo

Error de novato. Usas un cable USB de 3 metros para programar tu Arduino y el sensor no responde. La caída de tensión en cables largos es real. Solución: Usa un cable de menos de 1 metro o alimenta el Arduino con una fuente externa de 9V.

Herramientas Recomendadas para Debuggear

No necesitas un osciloscopio de 500 euros para trabajar con el ADXL345. Pero sí algunas cosillas básicas que te ahorrarán horas de dolor de cabeza.

  • Multímetro digital: Para medir voltajes en VCC y GND. Si no ves 3.3V en el pin de alimentación del módulo, tienes un problema de conexión.
  • Scanner I2C: Un sketch de Arduino que escanea todas las direcciones I2C. Imprescindible. Te dice si el sensor está vivo y en qué dirección responde.
  • Analizador lógico barato: Por 10-15 USD en AliExpress puedes comprar un analizador lógico USB (como el Saleae clone). Con eso ves si el reloj SPI o I2C está mandando datos correctamente. Te cambia la vida.
  • Protoboard y cables dupont: No sueldas nada hasta que el circuito funcione en protoboard. Los cables dupont de AliExpress son una lotería: la mitad vienen rotos por dentro. Prueba cada cable con el multímetro antes de usarlo.

FAQ

¿Puedo usar el ADXL345 con una Raspberry Pi?

Sí, pero ojo con los niveles de voltaje. La Raspberry Pi trabaja a 3.3V, y el ADXL345 también, así que no necesitas level shifter. Conecta los pines I2C (SDA a GPIO2, SCL a GPIO3) y activa el interfaz I2C en raspi-config. Luego puedes leer los datos con Python usando la librería smbus.

¿El ADXL345 funciona para medir vibraciones en una impresora 3D?

Funciona, pero no esperes milagros. Para un input shaping básico (como el de Klipper), el ADXL345 es suficiente. Pero si buscas alta precisión para calibrar resonancias a altas frecuencias, necesitas un sensor más caro como el MPU-9250 o un acelerómetro piezoeléctrico. El ADXL345 tiene un ruido de fondo de unos 0.1g, que para la mayoría de proyectos caseros está bien.

¿Por qué mi ADXL345 da siempre el mismo valor en Z?

Porque estás midiendo la gravedad. En reposo, el eje Z debería marcar +1g (9.8 m/s²) si el sensor está orientado con la cara hacia arriba. Si ves 0g en Z, el sensor está en caída libre o lo tienes montado al revés. Si ves valores negativos, es que lo tienes boca abajo. Todo normal.

Conclusión

El ADXL345 es un sensor cojonudo para empezar en el mundo de la medición de movimiento. Por menos de 3 dólares, tienes un acelerómetro de 3 ejes que funciona con I2C y SPI. Sí, tiene sus mañas: el pin CS hay que tratarlo con cariño, los módulos baratos a veces vienen con soldaduras dudosas, y el ruido de la fuente de alimentación puede volverte loco. Pero una vez que lo domas, es una herramienta increíble para tus proyectos.

En DunaTech, hemos cribado toneladas de basura en AliExpress para encontrar estos pequeños chollos. Si sabes lo que haces, el ADXL345 te da un rendimiento brutal por un precio irrisorio. Y si no sabes, este artículo te ha dado las claves para no tirar la pasta.

Ahora ve, cómprate un par de módulos (por si acaso), solda bien los cables, y empieza a medir el mundo. Literalmente.

Sobre el autor: Ingeniero de hardware en DunaTech. Pasamos los días desmontando chollos de AliExpress y las noches soldando prototipos. Creemos que la tecnología buena no tiene por qué costar un pastizal. Síguenos para más guías sin humo.

Ver precio actual y cupones en AliExpress

Ofertas AliExpress