Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-13 06:57
L'ADXL345 est un petit accéléromètre mince, ultrabasse consommation, à 3 axes avec une mesure haute résolution (13 bits) jusqu'à ±16 g. Les données de sortie numériques sont formatées en complément à deux de 16 bits et sont accessibles via l'interface numérique I2 C. Il mesure l'accélération statique de la gravité dans les applications de détection d'inclinaison, ainsi que l'accélération dynamique résultant d'un mouvement ou d'un choc. Sa haute résolution (3,9 mg/LSB) permet de mesurer des changements d'inclinaison inférieurs à 1,0°. Voici la démonstration avec raspberry pi en utilisant du code python.
Étape 1: Ce dont vous avez besoin.
1. Framboise Pi
2. ADXL345
3. Câble I²C
4. Bouclier I²C pour Raspberry Pi
5. Câble Ethernet
Étape 2: Connexion:
Prenez un shield I2C pour raspberry pi et poussez-le doucement sur les broches gpio de raspberry pi.
Connectez ensuite l'une des extrémités du câble I2C au capteur ADXL345 et l'autre extrémité au blindage I2C.
Connectez également le câble Ethernet au pi ou vous pouvez utiliser un module WiFi.
Les connexions sont montrées dans l'image ci-dessus.
Étape 3: Coder:
Le code python pour ADXL345 peut être téléchargé depuis notre référentiel GitHub - Dcube Store
Voici le lien pour le même:
github.com/DcubeTechVentures/ADXL345..
Nous avons utilisé la bibliothèque SMBus pour le code python, les étapes pour installer SMBus sur raspberry pi sont décrites ici:
pypi.python.org/pypi/smbus-cffi/0.5.1
Vous pouvez également copier le code d'ici, il est donné comme suit:
# Distribué avec une licence libre-arbitre.
# Utilisez-le comme vous le souhaitez, à profit ou gratuitement, à condition qu'il s'intègre dans les licences de ses œuvres associées.
# ADXL345
# Ce code est conçu pour fonctionner avec le mini module ADXL345_I2CS I2C disponible dans Dcube Store.
importer smbus
heure d'importation
# Obtenez le bus I2C
bus = smbus. SMbus(1)
# Adresse ADXL345, 0x53(83)
# Sélectionnez le registre de débit de bande passante, 0x2C(44)# 0x0A(10) Mode normal, Débit de données de sortie = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# Adresse ADXL345, 0x53(83)
# Sélectionnez le registre de contrôle de puissance, 0x2D(45)
# 0x08(08) Désactiver la veille automatique
bus.write_byte_data (0x53, 0x2D, 0x08)
# Adresse ADXL345, 0x53(83)
# Sélectionnez le registre de format de données, 0x31(49)
# 0x08(08) Autotest désactivé, interface 4 fils
# Pleine résolution, Portée = +/-2g
bus.write_byte_data (0x53, 0x31, 0x08)
temps.sommeil (0,5)
# Adresse ADXL345, 0x53(83)
# Lire les données à partir de 0x32(50), 2 octets
# LSB sur l'axe X, MSB sur l'axe X
data0 = bus.read_byte_data(0x53, 0x32)
data1 = bus.read_byte_data (0x53, 0x33)
# Convertir les données en 10 bits
xAccl = ((données1 & 0x03) * 256) + données0
si xAccl > 511:
xAccl -= 1024
# Adresse ADXL345, 0x53(83)
# Lire les données de 0x34(52), 2 octets
# Axe Y LSB, Axe Y MSB
data0 = bus.read_byte_data (0x53, 0x34)
data1 = bus.read_byte_data (0x53, 0x35)
# Convertir les données en 10 bits
yAccl = ((données1 & 0x03) * 256) + données0
si yAccl > 511:
yAccl -= 1024
# Adresse ADXL345, 0x53(83)
# Lire les données de 0x36(54), 2 octets
# LSB sur l'axe Z, MSB sur l'axe Z
data0 = bus.read_byte_data (0x53, 0x36)
data1 = bus.read_byte_data (0x53, 0x37)
# Convertir les données en 10 bits
zAccl = ((données1 & 0x03) * 256) + données0
si zAccl > 511:
zAccl -= 1024
# Données de sortie à l'écran
print "Accélération dans l'axe X: %d" %xAccl
print "Accélération dans l'axe Y: %d" %yAccl
print "Accélération dans l'axe Z: %d" %zAccl
Étape 4: Candidatures:
L'ADXL345 est un petit accéléromètre mince à très faible consommation d'énergie à 3 axes qui peut être utilisé dans les combinés, l'instrumentation médicale, etc. Son application comprend également les appareils de jeu et de pointage, l'instrumentation industrielle, les appareils de navigation personnels et la protection des disques durs (HDD).