جدول المحتويات:
2025 مؤلف: John Day | [email protected]. آخر تعديل: 2025-01-13 06:56
ADXL345 هو مقياس تسارع صغير ورفيع وقوي للغاية وثلاثة محاور بدقة عالية (13 بت) قياس يصل إلى ± 16 جم. يتم تنسيق بيانات الإخراج الرقمية كمكمل ثنائي 16 بت ويمكن الوصول إليها من خلال الواجهة الرقمية I2 C. يقيس التسارع الثابت للجاذبية في تطبيقات استشعار الميل ، وكذلك التسارع الديناميكي الناتج عن الحركة أو الصدمة. تتيح الدقة العالية (3.9 مجم / LSB) قياس تغيرات الميل أقل من 1.0 درجة. ها هو توضيح مع Raspberry Pi باستخدام كود Python.
الخطوة 1: ماذا تحتاج..
1. Raspberry Pi
2. ADXL345
3. كابل I²C
4. I²C Shield لـ Raspberry Pi
5. كابل إيثرنت
الخطوة الثانية: التوصيل:
خذ درع I2C لـ Raspberry Pi وادفعه برفق فوق دبابيس gpio الخاصة بـ Raspberry Pi.
ثم قم بتوصيل أحد طرفي كابل I2C بمستشعر ADXL345 والطرف الآخر بدرع I2C.
قم أيضًا بتوصيل كبل Ethernet بـ pi أو يمكنك استخدام وحدة WiFi.
تظهر الاتصالات في الصورة أعلاه.
الخطوة الثالثة: الكود:
يمكن تنزيل كود python لـ ADXL345 من مستودع GitHub - Dcube Store
هنا هو الرابط لنفسه:
github.com/DcubeTechVentures/ADXL345..
لقد استخدمنا مكتبة SMBus لرمز Python ، يتم وصف خطوات تثبيت SMBus على Raspberry Pi هنا:
pypi.python.org/pypi/smbus-cffi/0.5.1
يمكنك أيضًا نسخ الكود من هنا ، ويُعطى على النحو التالي:
# موزعة بترخيص الإرادة الحرة.
# استخدمها بالطريقة التي تريدها ، سواء كانت ربحًا أو مجانًا ، بشرط أن تتناسب مع تراخيص الأعمال المرتبطة بها.
# ADXL345
# تم تصميم هذا الرمز للعمل مع الوحدة النمطية ADXL345_I2CS I2C المصغرة المتوفرة في Dcube Store.
استيراد smbus
وقت الاستيراد
# احصل على حافلة I2C
الحافلة = smbus. SMBus (1)
# ADXL345 عنوان ، 0x53 (83)
# حدد تسجيل معدل النطاق الترددي ، 0x2C (44) # 0x0A (10) الوضع العادي ، معدل بيانات الإخراج = 100 هرتز
bus.write_byte_data (0x53 ، 0x2C ، 0x0A)
# ADXL345 عنوان ، 0x53 (83)
# حدد سجل التحكم في الطاقة ، 0x2D (45)
# 0x08 (08) تعطيل وضع السكون التلقائي
bus.write_byte_data (0x53 ، 0x2D ، 0x08)
# ADXL345 عنوان ، 0x53 (83)
# حدد تسجيل تنسيق البيانات ، 0x31 (49)
# 0x08 (08) الاختبار الذاتي معطل ، واجهة بأربعة أسلاك
# دقة كاملة ، النطاق = +/- 2g
bus.write_byte_data (0x53 ، 0x31 ، 0x08)
وقت النوم (0.5)
# ADXL345 عنوان ، 0x53 (83)
# قراءة البيانات مرة أخرى من 0x32 (50) ، 2 بايت
# X-Axis LSB ، X-Axis MSB
data0 = bus.read_byte_data (0x53، 0x32)
data1 = bus.read_byte_data (0x53، 0x33)
# تحويل البيانات إلى 10 بت
xAccl = ((data1 & 0x03) * 256) + data0
إذا كان xAccl> 511:
xAccl - = 1024
# ADXL345 عنوان ، 0x53 (83)
# قراءة البيانات مرة أخرى من 0x34 (52) ، 2 بايت
# Y- المحور LSB ، المحور Y MSB
data0 = bus.read_byte_data (0x53، 0x34)
data1 = bus.read_byte_data (0x53، 0x35)
# تحويل البيانات إلى 10 بت
yAccl = ((data1 & 0x03) * 256) + data0
إذا كان yAccl> 511:
yAccl - = 1024
# ADXL345 عنوان ، 0x53 (83)
# قراءة البيانات مرة أخرى من 0x36 (54) ، 2 بايت
# Z- المحور LSB ، Z- المحور MSB
data0 = bus.read_byte_data (0x53، 0x36)
data1 = bus.read_byte_data (0x53، 0x37)
# تحويل البيانات إلى 10 بت
zAccl = ((data1 & 0x03) * 256) + data0
إذا كان zAccl> 511:
zAccl - = 1024
# إخراج البيانات إلى الشاشة
طباعة "تسريع في المحور X:٪ d"٪ xAccl
طباعة "تسريع في المحور ص:٪ d"٪ yAccl
طباعة "تسريع في المحور Z:٪ d"٪ zAccl
الخطوة 4: التطبيقات:
ADXL345 عبارة عن مقياس تسارع صغير ورفيع للغاية ومنخفض السرعة ثلاثي المحاور يمكن استخدامه في الهواتف والأجهزة الطبية وما إلى ذلك. ويشمل تطبيقه أيضًا أجهزة الألعاب والتأشير والأجهزة الصناعية وأجهزة الملاحة الشخصية وحماية محرك الأقراص الثابتة (HDD).