2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
ADXL345 este un accelerometru cu 3 axe mic, subțire, cu putere foarte mică, cu măsurare cu rezoluție înaltă (13 biți) până la ± 16 g. Datele de ieșire digitală sunt formatate ca un complement de doi biți pe 16 biți și sunt accesibile prin interfața digitală I2 C. Măsurează accelerația statică a gravitației în aplicațiile de detectare a înclinării, precum și accelerația dinamică rezultată din mișcare sau șoc. Rezoluția sa înaltă (3,9 mg / LSB) permite măsurarea modificărilor de înclinație mai mici de 1,0 °. Iată demonstrația cu raspberry pi folosind codul python.
Pasul 1: De ce ai nevoie..
1. Raspberry Pi
2. ADXL345
3. Cablu I²C
4. Scut I²C pentru Raspberry Pi
5. Cablu Ethernet
Pasul 2: Conexiune:
Luați un scut I2C pentru raspberry pi și împingeți-l ușor peste pinii gpio ai raspberry pi.
Apoi conectați capătul cablului I2C la senzorul ADXL345 și celălalt capăt la ecranul I2C.
De asemenea, conectați cablul Ethernet la pi sau puteți utiliza un modul WiFi.
Conexiunile sunt afișate în imaginea de mai sus.
Pasul 3: Cod:
Codul python pentru ADXL345 poate fi descărcat din depozitul nostru GitHub - Magazinul Dcube
Iată linkul pentru același lucru:
github.com/DcubeTechVentures/ADXL345..
Am folosit biblioteca SMBus pentru codul Python, pașii pentru instalarea SMBus pe raspberry pi sunt descriși aici:
pypi.python.org/pypi/smbus-cffi/0.5.1
De asemenea, puteți copia codul de aici, acesta este dat după cum urmează:
# Distribuit cu o licență de voință liberă.
# Folosiți-l în orice mod doriți, profit sau gratuit, cu condiția să se încadreze în licențele lucrărilor sale asociate.
# ADXL345
# Acest cod este conceput pentru a funcționa cu Mini-modulul ADXL345_I2CS I2C disponibil în Magazinul Dcube.
import smbus
timpul de import
# Ia autobuzul I2C
autobuz = smbus. SMBus (1)
# Adresă ADXL345, 0x53 (83)
# Selectați registrul lățimii de bandă, 0x2C (44) # 0x0A (10) Mod normal, Rată de date de ieșire = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# Adresă ADXL345, 0x53 (83)
# Selectați registrul de control al puterii, 0x2D (45)
# 0x08 (08) Dezactivare oprire automată
bus.write_byte_data (0x53, 0x2D, 0x08)
# Adresă ADXL345, 0x53 (83)
# Selectați registrul formatului de date, 0x31 (49)
# 0x08 (08) Autotest dezactivat, interfață cu 4 fire
# Rezoluție completă, interval = +/- 2g
bus.write_byte_data (0x53, 0x31, 0x08)
time.sleep (0,5)
# Adresă ADXL345, 0x53 (83)
# Citiți datele înapoi de la 0x32 (50), 2 octeți
# Axa X LSB, Axa X MSB
data0 = bus.read_byte_data (0x53, 0x32)
data1 = bus.read_byte_data (0x53, 0x33)
# Convertiți datele în 10 biți
xAccl = ((data1 & 0x03) * 256) + data0
dacă xAccl> 511:
xAccl - = 1024
# Adresă ADXL345, 0x53 (83)
# Citiți datele înapoi de la 0x34 (52), 2 octeți
# Axa Y LSB, axa Y MSB
data0 = bus.read_byte_data (0x53, 0x34)
data1 = bus.read_byte_data (0x53, 0x35)
# Convertiți datele în 10 biți
yAccl = ((data1 & 0x03) * 256) + data0
dacă yAccl> 511:
yAccl - = 1024
# Adresă ADXL345, 0x53 (83)
# Citiți datele înapoi de la 0x36 (54), 2 octeți
# Z-Axis LSB, Z-Axis MSB
data0 = bus.read_byte_data (0x53, 0x36)
data1 = bus.read_byte_data (0x53, 0x37)
# Convertiți datele în 10 biți
zAccl = ((date1 și 0x03) * 256) + date0
dacă zAccl> 511:
zAccl - = 1024
# Ieșire date pe ecran
print "Accelerare în axa X:% d"% xAccl
print "Accelerare în axa Y:% d"% yAccl
print "Accelerare în axa Z:% d"% zAccl
Pasul 4: Aplicații:
ADXL345 este un accelerometru cu 3 axe mic, subțire, cu putere foarte mică, care poate fi utilizat în receptoare, instrumente medicale etc. Aplicația sa include, de asemenea, dispozitive pentru jocuri și indicare, instrumentare industrială, dispozitive de navigație personală și protecție pentru unitatea de disc (HDD).