2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Die ADXL345 is 'n klein, dun, ultra-lae, drie-as versnellingsmeter met 'n hoë resolusie (13-bis) meting tot ± 16 g. Digitale uitsetdata word geformateer as 'n 16-bis tweeling-aanvulling en is toeganklik via die I2 C digitale koppelvlak. Dit meet die statiese versnelling van swaartekrag in kantelwaarnemingstoepassings, sowel as dinamiese versnelling as gevolg van beweging of skok. Die hoë resolusie (3,9 mg/LSB) maak dit moontlik om hellingsveranderings van minder as 1,0 ° te meet. Hier is 'n demonstrasie met framboos pi met behulp van python -kode.
Stap 1: wat u nodig het..
1. Framboos Pi
2. ADXL345
3. I²C -kabel
4. I²C -skild vir Framboos Pi
5. Ethernet -kabel
Stap 2: Verbinding:
Neem 'n I2C skild vir framboos pi en druk dit liggies oor die gpio penne van framboos pi.
Koppel dan die een kant van die I2C -kabel aan die ADXL345 -sensor en die ander kant aan die I2C -skild.
Koppel ook die Ethernet -kabel aan die pi, of u kan 'n WiFi -module gebruik.
Verbindings word op die foto hierbo getoon.
Stap 3: Kode:
Die python-kode vir ADXL345 kan afgelaai word vanaf ons GitHub-bewaarplek- Dcube Store
Hier is die skakel vir dieselfde:
github.com/DcubeTechVentures/ADXL345..
Ons het SMBus -biblioteek gebruik vir python -kode, die stappe om SMBus op framboos pi te installeer word hier beskryf:
pypi.python.org/pypi/smbus-cffi/0.5.1
U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:
# Versprei met 'n vrywillige lisensie.
# Gebruik dit soos u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.
# ADXL345
# Hierdie kode is ontwerp om te werk met die ADXL345_I2CS I2C Mini Module wat beskikbaar is in Dcube Store.
invoer smbus
invoer tyd
# Kry I2C -bus
bus = smbus. SMBus (1)
# ADXL345 adres, 0x53 (83)
# Kies bandbreedtesnelheidsregister, 0x2C (44)# 0x0A (10) Normale modus, Uitvoerdatasnelheid = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# ADXL345 adres, 0x53 (83)
# Kies kragbeheerregister, 0x2D (45)
# 0x08 (08) Auto Sleep deaktiveer
bus.write_byte_data (0x53, 0x2D, 0x08)
# ADXL345 adres, 0x53 (83)
# Kies dataformaatregister, 0x31 (49)
# 0x08 (08) Selftoets gedeaktiveer, 4-draads koppelvlak
# Volle resolusie, reikwydte = +/- 2g
bus.write_byte_data (0x53, 0x31, 0x08)
tyd. slaap (0,5)
# ADXL345 adres, 0x53 (83)
# Lees data terug van 0x32 (50), 2 grepe
# X-Axis LSB, X-Axis MSB
data0 = bus.read_byte_data (0x53, 0x32)
data1 = bus.read_byte_data (0x53, 0x33)
# Skakel die data om na 10-bisse
xAccl = ((data1 & 0x03) * 256) + data0
as xAccl> 511:
xAccl -= 1024
# ADXL345 adres, 0x53 (83)
# Lees data terug van 0x34 (52), 2 grepe
# Y-as LSB, Y-as MSB
data0 = bus.read_byte_data (0x53, 0x34)
data1 = bus.read_byte_data (0x53, 0x35)
# Skakel die data om na 10-bisse
yAccl = ((data1 & 0x03) * 256) + data0
as yAccl> 511:
yAccl -= 1024
# ADXL345 adres, 0x53 (83)
# Lees data terug van 0x36 (54), 2 grepe
# Z-as LSB, Z-as MSB
data0 = bus.read_byte_data (0x53, 0x36)
data1 = bus.read_byte_data (0x53, 0x37)
# Skakel die data om na 10-bisse
zAccl = ((data1 & 0x03) * 256) + data0
as zAccl> 511:
zAccl -= 1024
# Uitset data na die skerm
print "Versnelling in X-as: %d" %xAccl
print "Versnelling in Y-as: %d" %yAccl
print "Versnelling in Z-as: %d" %zAccl
Stap 4: Aansoeke:
ADXL345 is 'n klein, dun, ultra-lae, 3-as versnellingsmeter wat gebruik kan word in toestelle, mediese instrumente, ens.