Paso 3: código:
El código de python para ADXL345 puede descargarse desde el repositorio de github-ControlEverythingCommunity
Aquí está el enlace para el mismo:
https://github.com/ControlEverythingCommunity/ADXL...
La hoja de datos de ADXL345 puede encontrarse aquí:
https://S3.amazonaws.com/controleverything.Media/c...
Hemos utilizado SMBus biblioteca de código de python, los pasos para instalar SMBus en frambuesa pi se describe aquí:
https://PyPI.Python.org/PyPI/SMBus-cffi/0.5.1
También puede copiar el código desde aquí, se da como sigue:
# Distribuido con una licencia de libre albedrío.
# Usar cualquier manera desea, beneficio o libre, siempre cabe en las licencias de sus obras anexas.
# ADXL345
# Este código está diseñado para trabajar con el módulo de Mini de I2C ADXL345_I2CS de ControlEverything.com.
# https://www.controleverything.com/content/Accelor...
importación de smbus
tiempo de importación
# Coger el autobús de I2C
autobús = smbus. SMBus(1)
# Dirección ADXL345, 0x53(83)
# Seleccione registro de velocidad de ancho de banda, 0x2C(44) # 0x0A(10) el modo Normal, tarifa de datos de salida = 100 Hz
Bus.write_byte_data (0x53, 0x2C, 0x0A)
# Dirección ADXL345, 0x53(83)
# Control de potencia seleccione Registro, 0x2D(45)
# 0x08(08) Auto dormir desactivar
Bus.write_byte_data (0x53, 0x2D, 0x08)
# Dirección ADXL345, 0x53(83)
# Formato de los datos Seleccione registro, 0x31(49)
# 0x08(08) autoprueba deshabilitado, interfaz de 4 hilos
# Resolución, rango = + /-2g
Bus.write_byte_data (0x53, 0x31, 0x08)
Time.Sleep(0.5)
# Dirección ADXL345, 0x53(83)
# Leer los datos de 0x32(50), 2 bytes
# LSB eje x, eje x MSB
Data0 = bus.read_byte_data(0x53, 0x32)
data1 = bus.read_byte_data(0x53, 0x33)
# Convertir los datos en 10 bits
xAccl = ((data1 & 0x03) * 256) + data0
Si xAccl > 511:
xAccl-= 1024
# Dirección ADXL345, 0x53(83)
# Leer los datos de 0x34(52), 2 bytes
# Eje y LSB, eje y MSB
Data0 = bus.read_byte_data(0x53, 0x34)
data1 = bus.read_byte_data(0x53, 0x35)
# Convertir los datos en 10 bits
yAccl = ((data1 & 0x03) * 256) + data0
Si yAccl > 511:
yAccl-= 1024
# Dirección ADXL345, 0x53(83)
# Leer los datos de 0x36(54), 2 bytes
# LSB z, z MSB
Data0 = bus.read_byte_data(0x53, 0x36)
data1 = bus.read_byte_data(0x53, 0x37)
# Convertir los datos en 10 bits
zAccl = ((data1 & 0x03) * 256) + data0
Si zAccl > 511:
zAccl-= 1024
# Salida de datos a 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