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

Arduino Nano-MMA8452Q 3 צירים 12 סיביות/8 סיביות מד תאוצה דיגיטלי: 4 שלבים
Arduino Nano-MMA8452Q 3 צירים 12 סיביות/8 סיביות מד תאוצה דיגיטלי: 4 שלבים

וִידֵאוֹ: Arduino Nano-MMA8452Q 3 צירים 12 סיביות/8 סיביות מד תאוצה דיגיטלי: 4 שלבים

וִידֵאוֹ: Arduino Nano-MMA8452Q 3 צירים 12 סיביות/8 סיביות מד תאוצה דיגיטלי: 4 שלבים
וִידֵאוֹ: Arduino Nano MMA8452Q with 8x8 Dot Matrix 2024, נוֹבֶמבֶּר
Anonim
Image
Image

ה- MMA8452Q הוא מד תאוצה חכם, בעל הספק נמוך, תלת ציר, קיבולי, מיקרומכני עם 12 סיביות רזולוציה. אפשרויות לתכנות גמישות למשתמש ניתנות בעזרת פונקציות מוטבעות במד התאוצה, הניתנות להגדרה לשני סיכות הפסקה. יש לו קנה מידה מלא לבחירה של ± 2g/± 4g/± 8g עם נתונים מסוננים במעבר גבוה כמו גם נתונים שאינם מסוננים בזמן אמת. הנה ההדגמה שלו עם ננו Arduino.

שלב 1: מה שאתה צריך..

מה אתה צריך..!!
מה אתה צריך..!!

1. ארדואינו ננו

2. MMA8452Q

3. כבל I²C

4. מגן I²C עבור Arduino Nano

שלב 2: חיבור:

חיבור
חיבור
חיבור
חיבור
חיבור
חיבור
חיבור
חיבור

קח מגן I2C עבור Arduino Nano ודחוף אותו בעדינות מעל סיכות הננו.

לאחר מכן חבר את הקצה האחד של כבל I2C לחיישן MMA8452Q והקצה השני למגן I2C.

חיבורים מוצגים בתמונה למעלה.

שלב 3: קוד:

קוד
קוד

ניתן להוריד את קוד הארדואינו ל- MMMA8452Q ממאגר github שלנו- חנות DCUBE.

הנה הקישור.

אנו כוללים את ספריית Wire.h כדי להקל על תקשורת I2c של החיישן עם לוח Arduino.

אתה יכול גם להעתיק את הקוד מכאן, הוא ניתן כדלקמן:

// מופץ ברישיון רצון חופשי.

// השתמש בו בכל דרך שתרצה, ברווח או בחינם, בתנאי שהוא מתאים לרישיונות של העבודות הקשורות בו.

// MMA8452Q

// קוד זה נועד לעבוד עם מודול מיני MMA8452Q_I2CS I2C.

#לִכלוֹל

// כתובת MMA8452Q I2C היא 0x1C (28)

#define Addr 0x1C

הגדרת חלל ()

{

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

Wire.begin ();

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

Serial.begin (9600);

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

Wire.beginTransmission (Addr);

// בחר רשום בקרה

Wire.write (0x2A);

// מצב המתנה

Wire.write (0x00);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// בחר רשום בקרה

Wire.write (0x2A);

// מצב פעיל

Wire.write (0x01);

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

Wire.endTransmission ();

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

Wire.beginTransmission (Addr);

// בחר רשום בקרה

Wire.write (0x0E);

// הגדר את הטווח ל- +/- 2g

Wire.write (0x00);

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

Wire.endTransmission ();

עיכוב (300);

}

לולאת חלל ()

{

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

// בקש 7 בתים של נתונים

Wire.requestFrom (אדר, 7);

// קראו 7 בתים של נתונים

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

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

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

data [3] = Wire.read ();

data [4] = Wire.read ();

data [5] = Wire.read ();

data [6] = Wire.read ();

}

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

int xAccl = ((נתונים [1] * 256) + נתונים [2]) / 16;

אם (xAccl> 2047)

{

xAccl -= 4096;

}

int yAccl = ((נתונים [3] * 256) + נתונים [4]) / 16;

אם (yAccl> 2047)

{

yAccl -= 4096;

}

int zAccl = ((נתונים [5] * 256) + נתונים [6]) / 16;

אם (zAccl> 2047)

{

zAccl -= 4096;

}

// נתוני פלט לצג הסדרתי

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

Serial.println (xAccl);

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

Serial.println (yAccl);

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

Serial.println (zAccl);

עיכוב (500);

}

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

ל- MMA8452Q יש יישומים שונים הכוללים יישומי E-Compass, זיהוי כיוון סטטי הכולל דיוקן/נוף, מעלה/מטה, שמאל/ימין, זיהוי מיקום אחורי/קדמי, מחברת, קורא אלקטרוני וגילוי נפילות ונפילה של מחשב נייד, בזמן אמת. זיהוי אוריינטציה כולל מציאות מדומה ומשוב משוב על מיקום המשתמש בתלת מימד, ניתוח פעילויות בזמן אמת כגון ספירת צעדים מד צעדים, זיהוי נפילה חופשית ל- HDD, גיבוי GPS מתחשב ועוד ועוד.

מוּמלָץ: