2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
ADXL345, kiçik, nazik, ultralow gücü, ± 16 q-a qədər yüksək qətnamə (13-bit) ölçüsü olan 3 oxlu akselerometrdir. Rəqəmsal çıxış məlumatları 16 bitlik ikili tamamlayıcı olaraq formatlanır və I2 C rəqəmsal interfeys vasitəsilə əldə edilə bilər. Tilt algılama tətbiqlərində cazibənin statik sürətlənməsini, həmçinin hərəkət və ya şok nəticəsində yaranan dinamik sürətlənməni ölçür. Yüksək qətnaməsi (3.9 mg/LSB), meyl dəyişikliklərinin 1.0 ° -dən aşağı ölçülməsinə imkan verir. Python kodu istifadə edərək moruq pi ilə nümayişdir.
Addım 1: Nə Lazımdır..
1. Moruq Pi
2. ADXL345
3. I²C Kabel
4. Raspberry Pi üçün I²C Qalxanı
5. Ethernet Kabeli
Addım 2: Bağlantı:
Moruq pi üçün bir I2C qalxanı götürün və moruq pi gpio sancaqlarının üzərinə yumşaq bir şəkildə itələyin.
Sonra I2C kabelinin bir ucunu ADXL345 sensoruna, digər ucunu isə I2C ekranına bağlayın.
Ayrıca Ethernet kabelini pi -yə qoşun və ya WiFi modulundan istifadə edə bilərsiniz.
Bağlantılar yuxarıdakı şəkildə göstərilmişdir.
Addım 3: Kod:
ADXL345 üçün python kodu GitHub depomuzdan yükləyə bilərsiniz- Dcube Mağazası
İşdə bunun üçün bağlantı:
github.com/DcubeTechVentures/ADXL345..
Python kodu üçün SMBus kitabxanasından istifadə etmişik, moruq pi üzərində SMBus quraşdırma addımları burada təsvir edilmişdir:
pypi.python.org/pypi/smbus-cffi/0.5.1
Kodu buradan da kopyalaya bilərsiniz, belə verilir:
# Sərbəst iradə lisenziyası ilə paylandı.
# Əlaqədar əsərlərinin lisenziyalarına uyğun olması şərtilə, mənfəət və ya pulsuz olaraq istədiyiniz şəkildə istifadə edin.
# ADXL345
# Bu kod, Dcube Store -da mövcud olan ADXL345_I2CS I2C Mini Modulu ilə işləmək üçün hazırlanmışdır.
smbus idxal edin
idxal vaxtı
# I2C avtobusu alın
avtobus = smbus. SMBus (1)
# ADXL345 ünvanı, 0x53 (83)
# Bant genişliyi dərəcəsi qeydini seçin, 0x2C (44)# 0x0A (10) Normal rejim, Çıxış məlumat sürəti = 100 Hz
bus.write_byte_data (0x53, 0x2C, 0x0A)
# ADXL345 ünvanı, 0x53 (83)
# Güc idarəetmə qeydini seçin, 0x2D (45)
# 0x08 (08) Avtomatik Yuxu deaktiv edin
bus.write_byte_data (0x53, 0x2D, 0x08)
# ADXL345 ünvanı, 0x53 (83)
# Məlumat formatı qeydini seçin, 0x31 (49)
# 0x08 (08) Self test əlil, 4 telli interfeys
# Tam qətnamə, Aralıq = +/- 2g
bus.write_byte_data (0x53, 0x31, 0x08)
vaxt.yuxu (0.5)
# ADXL345 ünvanı, 0x53 (83)
# 0x32 (50), 2 baytdan məlumatları geri oxuyun
# X-Axis LSB, X-Axis MSB
data0 = bus.read_byte_data (0x53, 0x32)
data1 = bus.read_byte_data (0x53, 0x33)
# Məlumatı 10 bitə çevirin
xAccl = ((data1 & 0x03) * 256) + data0
əgər xAccl> 511:
xAccl -= 1024
# ADXL345 ünvanı, 0x53 (83)
# 0x34 (52), 2 baytdan məlumatları geri oxuyun
# Y-Axis LSB, Y-Axis MSB
data0 = bus.read_byte_data (0x53, 0x34)
data1 = bus.read_byte_data (0x53, 0x35)
# Məlumatı 10 bitə çevirin
yAccl = ((data1 & 0x03) * 256) + data0
yAccl> 511 olarsa:
yAccl -= 1024
# ADXL345 ünvanı, 0x53 (83)
# 0x36 (54), 2 baytdan məlumatları geri oxuyun
# Z-Axis LSB, Z-Axis MSB
data0 = bus.read_byte_data (0x53, 0x36)
data1 = bus.read_byte_data (0x53, 0x37)
# Məlumatı 10 bitə çevirin
zAccl = ((data1 & 0x03) * 256) + data0
zAccl> 511 olarsa:
zAccl -= 1024
# Ekrana məlumat çıxarın
çap "X Eksenində Sürətləndirmə: %d" %xAccl
çap "Y Eksenində Sürətləndirmə: %d" %yAccl
çap "Z Eksenində Sürətləndirmə: %d" %zAccl
Addım 4: Tətbiqlər:
ADXL345, kiçik, nazik, ultralow güc, 3 oxlu akselerometrdir ki, bu da Telefonlar, Tibbi alətlər və s. İstifadəsinə Oyun və işarə cihazları, Sənaye alətləri, Fərdi naviqasiya cihazları və Sabit disk sürücüsü (HDD) qorunması daxildir.