Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Der ADXL345 ist ein kleiner, dünner 3-Achsen-Beschleunigungsmesser mit extrem geringem Stromverbrauch und hoher Auflösung (13 Bit) bei bis zu ±16 g. Digitale Ausgangsdaten werden als 16-Bit-Zweierkomplement formatiert und sind über die digitale I2 C-Schnittstelle zugänglich. Es misst die statische Gravitationsbeschleunigung bei Neigungserkennungsanwendungen sowie die dynamische Beschleunigung aufgrund von Bewegungen oder Stößen. Seine hohe Auflösung (3,9 mg/LSB) ermöglicht die Messung von Neigungsänderungen unter 1,0°. Hier ist es eine Demonstration mit Himbeer-Pi mit Python-Code.
Schritt 1: Was Sie brauchen.
1. Himbeer-Pi
2. ADXL345
3. I²C-Kabel
4. I²C-Shield für Raspberry Pi
5. Ethernet-Kabel
Schritt 2: Verbindung:
Nehmen Sie ein I2C-Schild für Himbeer-Pi und schieben Sie es vorsichtig über die gpio-Pins von Himbeer-Pi.
Verbinden Sie dann das eine Ende des I2C-Kabels mit dem ADXL345-Sensor und das andere Ende mit der I2C-Abschirmung.
Verbinden Sie auch das Ethernet-Kabel mit dem Pi oder verwenden Sie ein WiFi-Modul.
Die Anschlüsse sind im Bild oben dargestellt.
Schritt 3: Code:
Der Python-Code für ADXL345 kann von unserem GitHub-Repository heruntergeladen werden - Dcube Store
Hier der Link dazu:
github.com/DcubeTechVentures/ADXL345..
Wir haben die SMBus-Bibliothek für Python-Code verwendet, die Schritte zur Installation von SMBus auf Raspberry Pi sind hier beschrieben:
pypi.python.org/pypi/smbus-cffi/0.5.1
Sie können den Code auch von hier kopieren, er wird wie folgt angegeben:
# Wird mit freier Lizenz verteilt.
# Verwenden Sie es nach Belieben, gewinnbringend oder kostenlos, sofern es in die Lizenzen der zugehörigen Werke passt.
# ADXL345
# Dieser Code wurde entwickelt, um mit dem ADXL345_I2CS I2C Mini-Modul zu arbeiten, das im Dcube Store erhältlich ist.
smbus importieren
Importzeit
# Holen Sie sich den I2C-Bus
bus = smbus. SMBus(1)
# ADXL345-Adresse, 0x53(83)
# Bandbreitenratenregister auswählen, 0x2C(44)# 0x0A(10) Normalmodus, Ausgangsdatenrate = 100 Hz
bus.write_byte_data(0x53, 0x2C, 0x0A)
# ADXL345-Adresse, 0x53(83)
# Leistungssteuerregister auswählen, 0x2D(45)
# 0x08(08) Auto-Sleep deaktivieren
bus.write_byte_data(0x53, 0x2D, 0x08)
# ADXL345-Adresse, 0x53(83)
# Datenformatregister auswählen, 0x31(49)
# 0x08(08) Selbsttest deaktiviert, 4-Draht-Schnittstelle
# Volle Auflösung, Bereich = +/-2g
bus.write_byte_data(0x53, 0x31, 0x08)
time.sleep(0.5)
# ADXL345-Adresse, 0x53(83)
# Daten von 0x32(50) zurücklesen, 2 Byte
# X-Achsen-LSB, X-Achsen-MSB
data0 = bus.read_byte_data(0x53, 0x32)
data1 = bus.read_byte_data(0x53, 0x33)
# Konvertieren Sie die Daten in 10-Bits
xAccl = ((Daten1 & 0x03) * 256) + Daten0
wenn xAccl > 511:
xAccl -= 1024
# ADXL345-Adresse, 0x53(83)
# Daten von 0x34(52), 2 Bytes zurücklesen
# Y-Achsen-LSB, Y-Achsen-MSB
data0 = bus.read_byte_data(0x53, 0x34)
data1 = bus.read_byte_data(0x53, 0x35)
# Konvertieren Sie die Daten in 10-Bits
yAccl = ((Daten1 & 0x03) * 256) + Daten0
wenn yAccl > 511:
yAccl -= 1024
# ADXL345-Adresse, 0x53(83)
# Daten von 0x36(54), 2 Bytes zurücklesen
# Z-Achse LSB, Z-Achse MSB
data0 = bus.read_byte_data(0x53, 0x36)
data1 = bus.read_byte_data(0x53, 0x37)
# Konvertieren Sie die Daten in 10-Bits
zAccl = ((Daten1 & 0x03) * 256) + Daten0
wenn zAccl > 511:
zAccl -= 1024
# Daten auf den Bildschirm ausgeben
print "Beschleunigung in X-Achse: %d" %xAccl
print "Beschleunigung in Y-Achse: %d" %yAccl
print "Beschleunigung in Z-Achse: %d" %zAccl
Schritt 4: Anwendungen:
ADXL345 ist ein kleiner, dünner 3-Achsen-Beschleunigungsmesser mit extrem geringem Stromverbrauch, der in Handsets, medizinischen Instrumenten usw. eingesetzt werden kann. Seine Anwendung umfasst auch Spiel- und Zeigegeräte, industrielle Instrumente, persönliche Navigationsgeräte und Festplattenschutz (HDD).