Raspberry Pi - ADXL345 3-axlig Accelerometer Python Tutorial (3 / 4 steg)
Steg 3: kod:
Python koden för ADXL345 kan hämtas från vår github repository-ControlEverythingCommunity
Här är länken för samma:
https://github.com/ControlEverythingCommunity/ADXL...
Databladet för ADXL345 kan hittas här:
https://s3.amazonaws.com/controleverything.Media/c...
Vi har använt SMBus bibliotek för python kod, stegen för att installera SMBus på raspberry pi beskrivs här:
https://pypi.python.org/pypi/SMBus-cffi/0.5.1
Du kan också kopiera koden från här, det ges enligt följande:
# Distribueras med en fri vilja licens.
# Använd det något sätt du vill, vinst eller gratis, förutsatt att den passar i licenser av dess tillhörande arbeten.
# ADXL345
# Den här koden är avsedd att arbeta med ADXL345_I2CS I2C Mini modulen tillgänglig från ControlEverything.com.
# https://www.controleverything.com/content/Accelor...
importera smbus
Importera tid
# Få I2C bussen
Bus = smbus. SMBus(1)
# ADXL345 adress, 0x53(83)
# Välj bandbredd hastighet register, 0x2C(44) # 0x0A(10) normalläge, utgång datahastighet = 100 Hz
Bus.write_byte_data (0x53, 0x2C, 0x0A)
# ADXL345 adress, 0x53(83)
# Välj effektkontroll registrera, 0x2D(45)
# 0x08(08) Auto Sleep inaktivera
Bus.write_byte_data (0x53, 0x2D, 0x08)
# ADXL345 adress, 0x53(83)
# Välj dataformat registrera, 0x31(49)
# 0x08(08) självtest inaktiverad, 4-wire interface
# Full upplösning, intervall = +/-2g
Bus.write_byte_data (0x53, 0x31, 0x08)
Time.Sleep(0.5)
# ADXL345 adress, 0x53(83)
# Läs data tillbaka från 0x32(50), 2 byte
# X-axeln LSB, x-axeln MSB
Data0 = bus.read_byte_data(0x53, 0x32)
Data1 = bus.read_byte_data(0x53, 0x33)
# Konvertera data till 10-bitar
xAccl = ((data1 & 0x03) * 256) + data0
om xAccl > 511:
xAccl-= 1024
# ADXL345 adress, 0x53(83)
# Läs data tillbaka från 0x34(52), 2 byte
# Y-LSB, y-axeln MSB
Data0 = bus.read_byte_data(0x53, 0x34)
Data1 = bus.read_byte_data(0x53, 0x35)
# Konvertera data till 10-bitar
yAccl = ((data1 & 0x03) * 256) + data0
om yAccl > 511:
yAccl-= 1024
# ADXL345 adress, 0x53(83)
# Läs data tillbaka från 0x36(54), 2 byte
# Z-LSB, z-axel MSB
Data0 = bus.read_byte_data(0x53, 0x36)
Data1 = bus.read_byte_data(0x53, 0x37)
# Konvertera data till 10-bitar
zAccl = ((data1 & 0x03) * 256) + data0
om zAccl > 511:
zAccl-= 1024
# Utdata till skärm
skriva ut "Acceleration i x-axeln: %d" % xAccl
skriva ut "Acceleration i y-axeln: %d" % yAccl
skriva ut "Acceleration i z-axeln: %d" % zAccl