Stap 3: Code:
De python code voor ADXL345 kan worden gedownload van onze github archief-ControlEverythingCommunity
Hier is de link voor hetzelfde:
https://github.com/ControlEverythingCommunity/ADXL...
Het gegevensblad van ADXL345 kan hier worden gevonden:
https://S3.amazonaws.com/controleverything.Media/c...
We hebben hier SMBus bibliotheek voor python code, de stappen te installeren SMBus op raspberry pi wordt beschreven gebruikt:
https://pypi.python.org/pypi/SMBus-cffi/0.5.1
U kunt ook de code kopiëren vanaf hier, het wordt als volgt gegeven:
# Gedistribueerd met een licentie van de vrije wil.
# Gebruik het elke manier je wilt, winst of gratis, mits het past in de licenties van de bijbehorende werken.
# ADXL345
# Deze code is ontworpen om te werken met de ADXL345_I2CS I2C Mini Module beschikbaar vanaf ControlEverything.com.
# https://www.controleverything.com/content/Accelor...
importeren van smbus
importeren
# Haal I2C bus
bus = smbus. SMBus(1)
# ADXL345 adres, 0x53(83)
# Selecteer bandbreedte tarief register, 0x2C(44) # 0x0A(10) normale modus, Output gegevenssnelheid = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# ADXL345 adres, 0x53(83)
# Selecteer zuigkrachtregeling registreren, 0x2D(45)
# 0x08(08) automatische slaapstand uitschakelen
bus.write_byte_data (0x53, 0x2D, 0x08)
# ADXL345 adres, 0x53(83)
# Selecteer gegevensindeling registreren, 0x31(49)
# 0x08(08) zelftest uitgeschakeld, 4-draads interface
# Volledige resolutie, bereik = +/-2g
bus.write_byte_data (0x53, 0x31, 0x08)
time.Sleep(0.5)
# ADXL345 adres, 0x53(83)
# Lees de gegevens terug uit 0x32(50), 2 bytes
# X-as LSB, x-as MSB
data0 = bus.read_byte_data(0x53, 0x32)
Data1 = bus.read_byte_data(0x53, 0x33)
# De gegevens converteren naar 10-bits
xAccl = ((data1 & 0x03) * 256) + data0
Als xAccl > 511:
xAccl-= 1024
# ADXL345 adres, 0x53(83)
# Lees de gegevens terug uit 0x34(52), 2 bytes
# LSB y-as, y-as MSB
data0 = bus.read_byte_data(0x53, 0x34)
Data1 = bus.read_byte_data(0x53, 0x35)
# De gegevens converteren naar 10-bits
yAccl = ((data1 & 0x03) * 256) + data0
Als yAccl > 511:
yAccl-= 1024
# ADXL345 adres, 0x53(83)
# Lees de gegevens terug uit 0x36(54), 2 bytes
# Z-as LSB, z-as MSB
data0 = bus.read_byte_data(0x53, 0x36)
Data1 = bus.read_byte_data(0x53, 0x37)
# De gegevens converteren naar 10-bits
zAccl = ((data1 & 0x03) * 256) + data0
Als zAccl > 511:
zAccl-= 1024
# Uitvoergegevens naar scherm
afdrukken "versnelling van de x-as: %d" % xAccl
afdrukken "versnelling van de y-as: %d" % yAccl
afdrukken "versnelling in de z-as: %d" % zAccl