Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
ADXL345 är en liten, tunn, ultralåg effekt, 3-axlig accelerometer med hög upplösning (13-bitars) mätning på upp till ± 16 g. Digital utdata formateras som 16-bitars tvåkomplement och är tillgängliga via I2 C digitalt gränssnitt. Den mäter den statiska tyngdaccelerationen i lutningsavkännande applikationer, liksom dynamisk acceleration till följd av rörelse eller stötar. Dess höga upplösning (3,9 mg/LSB) möjliggör mätning av lutningsförändringar mindre än 1,0 °. Här är det demonstration med hallon pi med pythonkod.
Steg 1: Vad du behöver.. !
1. Hallon Pi
2. ADXL345
3. I²C -kabel
4. I²C -sköld för Raspberry Pi
5. Ethernet -kabel
Steg 2: Anslutning:
Ta en I2C -sköld för hallonpi och tryck den försiktigt över gpio -stiften på hallonpi.
Anslut sedan den ena änden av I2C -kabeln till ADXL345 -sensorn och den andra änden till I2C -skärmen.
Anslut också Ethernet -kabeln till pi eller så kan du använda en WiFi -modul.
Anslutningar visas på bilden ovan.
Steg 3: Kod:
Pythonkoden för ADXL345 kan laddas ner från vårt GitHub-arkiv- Dcube Store
Här är länken till samma:
github.com/DcubeTechVentures/ADXL345..
Vi har använt SMBus -biblioteket för pythonkod, stegen för att installera SMBus på hallon pi beskrivs här:
pypi.python.org/pypi/smbus-cffi/0.5.1
Du kan också kopiera koden härifrån, den ges enligt följande:
# Distribueras med en fri vilja licens.
# Använd det hur du vill, vinst eller gratis, förutsatt att det passar i licensen för dess associerade verk.
# ADXL345
# Denna kod är utformad för att fungera med ADXL345_I2CS I2C Mini -modulen som finns i Dcube Store.
importera smbus
importtid
# Skaffa I2C -buss
buss = smbus. SMBus (1)
# ADXL345 -adress, 0x53 (83)
# Välj bandbreddshastighetsregister, 0x2C (44)# 0x0A (10) Normalt läge, Utdatahastighet = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# ADXL345 -adress, 0x53 (83)
# Välj effektregistreringsregister, 0x2D (45)
# 0x08 (08) Inaktivera automatisk viloläge
bus.write_byte_data (0x53, 0x2D, 0x08)
# ADXL345 -adress, 0x53 (83)
# Välj dataformatregister, 0x31 (49)
# 0x08 (08) Självtest inaktiverat, 4-tråds gränssnitt
# Full upplösning, intervall = +/- 2g
bus.write_byte_data (0x53, 0x31, 0x08)
tid. sover (0,5)
# ADXL345 -adress, 0x53 (83)
# Läs tillbaka data från 0x32 (50), 2 byte
# X-Axis LSB, X-Axis MSB
data0 = buss.läs_byte_data (0x53, 0x32)
data1 = buss.läs_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 tillbaka data från 0x34 (52), 2 byte
# Y-Axis LSB, Y-Axis MSB
data0 = buss.läs_byte_data (0x53, 0x34)
data1 = buss.läs_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 tillbaka data från 0x36 (54), 2 byte
# Z-Axis LSB, Z-Axis MSB
data0 = buss.läs_byte_data (0x53, 0x36)
data1 = buss.läs_byte_data (0x53, 0x37)
# Konvertera data till 10-bitar
zAccl = ((data1 & 0x03) * 256) + data0
om zAccl> 511:
zAccl -= 1024
# Mata ut data till skärmen
print "Acceleration i X-axel: %d" %xAccl
print "Acceleration i Y-axel: %d" %yAccl
print "Acceleration i Z-axel: %d" %zAccl
Steg 4: Ansökningar:
ADXL345 är en liten, tunn, ultralåg effekt, 3-axlig accelerometer som kan användas i telefoner, medicinsk instrumentering etc. Dess tillämpning inkluderar även spel- och pekdon, industriell instrumentering, personliga navigationsenheter och hårddiskskydd (HDD).