תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
ה- ADXL345 הוא מד תאוצה קטן, דק, אולטרה-נמוך, בעל 3 צירים עם מדידה ברזולוציה גבוהה (13 סיביות) עד ± 16 גרם. נתוני הפלט הדיגיטליים מעוצבים כהשלמה של 16 סיביות ונגישים באמצעות ממשק דיגיטלי I2 C. הוא מודד את האצת הכובד הסטטית ביישומי חישת הטיה, כמו גם האצה דינמית הנובעת מתנועה או הלם. הרזולוציה הגבוהה שלה (3.9 מ ג/LSB) מאפשרת מדידה של שינויי הנטייה הנמוכים מ -1.0 °. להלן הדגמה עם פטל פאי באמצעות קוד פייתון.
שלב 1: מה שאתה צריך..
1. פטל פטל
2. ADXL345
3. כבל I²C
4. מגן I²C עבור פטל פטל
5. כבל אתרנט
שלב 2: חיבור:
קח מגן I2C לפאי פטל ודחוף אותו בעדינות מעל סיכות ה- gpio של פטל פאי.
לאחר מכן חבר את הקצה האחד של כבל I2C לחיישן ADXL345 והקצה השני למגן I2C.
חבר גם את כבל ה- Ethernet ל- pi או שאתה יכול להשתמש במודול WiFi.
חיבורים מוצגים בתמונה למעלה.
שלב 3: קוד:
ניתן להוריד את קוד הפיתון ל- ADXL345 ממאגר GitHub שלנו- חנות Dcube
להלן הקישור לאותו דבר:
github.com/DcubeTechVentures/ADXL345..
השתמשנו בספריית SMBus לקוד פייתון, השלבים להתקנת SMBus על פטל פאי מתוארים כאן:
pypi.python.org/pypi/smbus-cffi/0.5.1
אתה יכול גם להעתיק את הקוד מכאן, הוא ניתן כדלקמן:
# מופץ ברישיון רצון חופשי.
# השתמש בו בכל דרך שתרצה, ברווח או בחינם, בתנאי שהוא מתאים לרישיונות של העבודות הקשורות בו.
# ADXL345
# קוד זה נועד לעבוד עם מודול מיני ADXL345_I2CS I2C הזמין בחנות Dcube.
יבוא 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) בדיקה עצמית מושבתת, ממשק בעל 4 חוטים
# רזולוציה מלאה, טווח = +/- 2 גרם
bus.write_byte_data (0x53, 0x31, 0x08)
time.sleep (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-Axis LSB, Y-Axis 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-Axis LSB, Z-Axis 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
-"האצה בציר Y: %d" %yAccl
-"האצה בציר Z: %d" %zAccl
שלב 4: יישומים:
ADXL345 הוא מד קטן, דק, אולטרה-נמוך, מד תאוצה בעל 3 צירים, שניתן להשתמש בו במכשירי טלפון, מכשור רפואי וכו '. יישומו כולל גם מכשירי משחק והצבעה, מכשור תעשייתי, התקני ניווט אישיים והגנה על כונן קשיח (HDD).