תוכן עניינים:

מדידת האצה באמצעות BMA250 ו- Arduino Nano: 4 שלבים
מדידת האצה באמצעות BMA250 ו- Arduino Nano: 4 שלבים

וִידֵאוֹ: מדידת האצה באמצעות BMA250 ו- Arduino Nano: 4 שלבים

וִידֵאוֹ: מדידת האצה באמצעות BMA250 ו- Arduino Nano: 4 שלבים
וִידֵאוֹ: על הבר: מדידת אפקטיביות כמנוף להגדלת האימפקט // לבנה שיפמן וקרול ביבס ברקן 2024, יולי
Anonim
Image
Image

BMA250 הוא מד תאוצה קטן, דק, אולטרה-נמוך, בעל 3 צירים עם מדידה ברזולוציה גבוהה (13 סיביות) עד ± 16 גרם. נתוני הפלט הדיגיטליים מעוצבים כהשלמה של 16 סיביות ונגישים באמצעות ממשק דיגיטלי I2C. הוא מודד את האצת הכובד הסטטית ביישומי חישת הטיה, כמו גם האצה דינמית הנובעת מתנועה או הלם. הרזולוציה הגבוהה שלה (3.9 מ ג/LSB) מאפשרת מדידה של שינויי הנטייה הנמוכים מ -1.0 °.

במדריך זה אנו הולכים למדוד את ההאצה בכל שלושת הצירים הניצבים באמצעות BMA250 ו- Arduino Nano.

שלב 1: חומרה נדרשת:

חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת

החומרים הדרושים לנו להגשמת מטרתנו כוללים את רכיבי החומרה הבאים:

1. BMA250

2. ארדואינו ננו

3. כבל I2C

4. מגן I2C עבור Arduino Nano

שלב 2: חיבור חומרה:

חיבור חומרה
חיבור חומרה
חיבור חומרה
חיבור חומרה

סעיף חיבור החומרה בעצם מסביר את חיבורי החיווט הנדרשים בין החיישן לארדואינו. הבטחת חיבורים נכונים היא ההכרח הבסיסי בעת עבודה על כל מערכת לתפוקה הרצויה. אז, החיבורים הנדרשים הם כדלקמן:

ה- BMA250 יעבוד על I2C. להלן תרשים החיווט לדוגמה, המדגים כיצד לחבר כל ממשק של החיישן.

הלוח מחוץ לקופסה מוגדר לממשק I2C, ולכן אנו ממליצים להשתמש בחיבור זה אם אתה אגנוסטי אחרת. כל מה שאתה צריך זה ארבעה חוטים!

רק ארבעה חיבורים נדרשים סיכות Vcc, Gnd, SCL ו- SDA ואלו מחוברים בעזרת כבל I2C.

קשרים אלה מודגמים בתמונות למעלה.

שלב 3: קוד ארדואינו למדידת האצה:

קוד ארדואינו למדידת האצה
קוד ארדואינו למדידת האצה
קוד ארדואינו למדידת האצה
קוד ארדואינו למדידת האצה

נתחיל עם הקוד של Arduino עכשיו.

בעת השימוש במודול החיישנים עם Arduino, אנו כוללים את ספריית Wire.h. ספריית "Wire" מכילה את הפונקציות המאפשרות תקשורת i2c בין החיישן ללוח ה- Arduino.

קוד Arduino כולו ניתן להלן לנוחות המשתמש:

#לִכלוֹל

// כתובת BMA250 I2C היא 0x18 (24)

#define Addr 0x18

הגדרת חלל ()

{

// אתחל תקשורת I2C כ- MASTER

Wire.begin ();

// אתחל תקשורת סדרתית, הגדר קצב שידור = 9600

Serial.begin (9600);

// התחל את שידור I2C

Wire.beginTransmission (Addr);

// בחר את רשימת בחירת הטווח

Wire.write (0x0F);

// הגדר טווח +/- 2 גרם

Wire.write (0x03);

// עצור את שידור I2C

Wire.endTransmission ();

// התחל את שידור I2C

Wire.beginTransmission (Addr);

// בחר מרשם רוחב פס

Wire.write (0x10);

// הגדר רוחב פס 7.81 הרץ

Wire.write (0x08);

// עצור את שידור I2C

Wire.endTransmission (); עיכוב (300);}

לולאת חלל ()

{

נתוני int ללא חתום [0];

// התחל את שידור I2C

Wire.beginTransmission (Addr);

// בחר רישומי נתונים (0x02 - 0x07)

Wire.write (0x02);

// עצור את שידור I2C

Wire.endTransmission ();

// בקש 6 בתים

Wire.requestFrom (Addr, 6);

// קרא את ששת הבייטים

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

אם (Wire.available () == 6)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

data [3] = Wire.read ();

data [4] = Wire.read ();

data [5] = Wire.read ();

}

עיכוב (300);

// המר את הנתונים ל -10 סיביות

float xAccl = ((data [1] * 256.0) + (data [0] & 0xC0)) / 64;

אם (xAccl> 511)

{

xAccl -= 1024;

}

float yAccl = ((נתונים [3] * 256.0) + (נתונים [2] & 0xC0)) / 64;

אם (yAccl> 511)

{

yAccl -= 1024;

}

float zAccl = ((נתונים [5] * 256.0) + (נתונים [4] & 0xC0)) / 64;

אם (zAccl> 511)

{

zAccl -= 1024;

}

// נתוני פלט למסך הטורי

Serial.print ("האצה בציר X:");

Serial.println (xAccl);

Serial.print ("האצה בציר Y:");

Serial.println (yAccl);

Serial.print ("האצה בציר Z:");

Serial.println (zAccl);

}

בספריית תיל Wire.write () ו- Wire.read () משמשים לכתיבת הפקודות וקריאת פלט החיישן. Serial.print () ו- Serial.println () משמשים להצגת פלט החיישן על הצג הטורי של ה- Arduino IDE.

פלט החיישן מוצג בתמונה למעלה.

שלב 4: יישומים:

יישומים
יישומים

מדי תאוצה כמו BMA250 מוצאים בעיקר את היישום שלה במשחקים ומחליפים פרופיל תצוגה. מודול חיישן זה מועסק גם במערכת ניהול החשמל המתקדמת ליישומים ניידים. BMA250 הוא חיישן האצה דיגיטלי טריאקסיאלי המשולב עם בקר מפסק תנועה מופעל על שבב.

מוּמלָץ: