Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
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 °. Aquí está la demostración con raspberry pi usando código Python.
Paso 1: ¡¡Lo que necesitas …
1. Raspberry Pi
2. ADXL345
3. Cable I²C
4. Escudo I²C para Raspberry Pi
5. Cable Ethernet
Paso 2: Conexión:
Tome un protector I2C para raspberry pi y empújelo suavemente sobre los pines gpio de raspberry pi.
Luego, conecte un extremo del cable I2C al sensor ADXL345 y el otro extremo al blindaje I2C.
También conecte el cable Ethernet al pi o puede usar un módulo WiFi.
Las conexiones se muestran en la imagen de arriba.
Paso 3: Código:
El código python para ADXL345 se puede descargar desde nuestro repositorio de GitHub - Dcube Store
Aquí está el enlace para el mismo:
github.com/DcubeTechVentures/ADXL345..
Hemos utilizado la biblioteca SMBus para el código python, los pasos para instalar SMBus en raspberry pi se describen aquí:
pypi.python.org/pypi/smbus-cffi/0.5.1
También puede copiar el código desde aquí, se proporciona de la siguiente manera:
# Distribuido con una licencia de libre albedrío.
# Úselo de la forma que desee, lucrativa o gratuita, siempre que encaje en las licencias de sus obras asociadas.
# ADXL345
# Este código está diseñado para funcionar con el mini módulo ADXL345_I2CS I2C disponible en Dcube Store.
importar smbus
tiempo de importación
# Obtener bus I2C
bus = smbus. SMBus (1)
# Dirección ADXL345, 0x53 (83)
# Seleccionar registro de velocidad de ancho de banda, 0x2C (44) # 0x0A (10) Modo normal, velocidad de datos de salida = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# Dirección ADXL345, 0x53 (83)
# Seleccione el registro de control de potencia, 0x2D (45)
# 0x08 (08) Desactivación de suspensión automática
bus.write_byte_data (0x53, 0x2D, 0x08)
# Dirección ADXL345, 0x53 (83)
# Seleccionar registro de formato de datos, 0x31 (49)
# 0x08 (08) Autoprueba deshabilitada, interfaz de 4 cables
# Resolución completa, rango = +/- 2g
bus.write_byte_data (0x53, 0x31, 0x08)
tiempo. de sueño (0.5)
# Dirección ADXL345, 0x53 (83)
# Leer datos de 0x32 (50), 2 bytes
# LSB del eje X, MSB del eje X
data0 = bus.read_byte_data (0x53, 0x32)
data1 = bus.read_byte_data (0x53, 0x33)
# Convierte los datos a 10 bits
xAccl = ((datos1 y 0x03) * 256) + datos0
si xAccl> 511:
xAccl - = 1024
# Dirección ADXL345, 0x53 (83)
# Leer datos de 0x34 (52), 2 bytes
# LSB del eje Y, MSB del eje Y
data0 = bus.read_byte_data (0x53, 0x34)
data1 = bus.read_byte_data (0x53, 0x35)
# Convierte los datos a 10 bits
yAccl = ((datos1 y 0x03) * 256) + datos0
si yAccl> 511:
yAccl - = 1024
# Dirección ADXL345, 0x53 (83)
# Leer datos de 0x36 (54), 2 bytes
# LSB del eje Z, MSB del eje Z
data0 = bus.read_byte_data (0x53, 0x36)
data1 = bus.read_byte_data (0x53, 0x37)
# Convierte los datos a 10 bits
zAccl = ((datos1 y 0x03) * 256) + datos0
si zAccl> 511:
zAccl - = 1024
# Salida de datos a la pantalla
imprimir "Aceleración en el eje X:% d"% xAccl
imprimir "Aceleración en el eje Y:% d"% yAccl
imprimir "Aceleración en el eje Z:% d"% zAccl
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).