תוכן עניינים:
וִידֵאוֹ: חלקיק פוטון - מדריך חיישן מד גובה MPL3115A2 מדריך: 4 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:14
ה- MPL3115A2 משתמש בחיישן לחץ MEMS עם ממשק I2C כדי לספק נתוני לחץ/גובה וטמפרטורה מדויקים. יציאות החיישן ממוגנות באמצעות ADC ברזולוציה גבוהה של 24 סיביות. עיבוד פנימי מסיר משימות פיצוי ממערכת ה- MCU המארחת. הוא מסוגל לזהות שינוי ב- 0.05 kPa בלבד שמשווה לשינוי של 0.3 מ 'גובה. להלן ההדגמה שלה עם פוטון חלקיקים.
שלב 1: מה שאתה צריך..
1. פוטון חלקיקים
2. MPL3115A2
3. כבל I²C
4. מגן I²C לפוטון חלקיקים
שלב 2: חיבורים:
קח מגן I2C עבור פוטון חלקיקים ודחוף אותו בעדינות על סיכות פוטון החלקיקים.
לאחר מכן חבר את הקצה האחד של כבל I2C לחיישן MPL3115A2 והקצה השני למגן I2C.
חיבורים מוצגים בתמונה למעלה.
שלב 3: קוד:
ניתן להוריד את קוד החלקיקים עבור MPL3115A2 מחנות Github-DCUBE שלנו.
הנה הקישור.
השתמשנו בשתי ספריות לקוד חלקיקים, שהם application.h ו- spark_wiring_i2c.h. ספריית Spark_wiring_i2c נדרשת על מנת להקל על תקשורת I2C עם החיישן.
אתה יכול גם להעתיק את הקוד מכאן, הוא ניתן כדלקמן:
// מופץ ברישיון רצון חופשי.
// השתמש בו בכל דרך שתרצה, ברווח או בחינם, בתנאי שהוא מתאים לרישיונות של העבודות הקשורות בו.
// MPL3115A2
// קוד זה נועד לעבוד עם מודול מיני MPL3115A2_I2CS I2C
#לִכלוֹל
#לִכלוֹל
// כתובת MPL3115A2 I2C היא 0x60 (96)
#define Addr 0x60
צף cTemp = 0.0, fTemp = 0.0, לחץ = 0.0, גובה = 0.0;
int temp = 0, tHeight = 0; pres long = 0;
הגדרת חלל ()
{
// הגדר משתנה
Particle.variable ("i2cdevice", "MPL3115A2");
Particle.variable ("cTemp", cTemp);
Particle.variable ("לחץ", לחץ);
Particle.variable ("גובה", גובה);
// אתחול תקשורת I2C
Wire.begin ();
// אתחל תקשורת סדרתית, הגדר קצב שידור = 9600
Serial.begin (9600);
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// בחר רשום בקרה
Wire.write (0x26);
// מצב פעיל, OSR = 128, מצב מד גובה
Wire.write (0xB9);
// עצור את שידור I2C
Wire.endTransmission ();
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// בחר את רשימת תצורת הנתונים
Wire.write (0x13);
// אירוע מוכן לנתונים מופעל לגובה, לחץ, טמפרטורה
Wire.write (0x07);
// עצור את שידור I2C
Wire.endTransmission ();
עיכוב (300);
}
לולאת חלל ()
{
נתוני int ללא חתום [6];
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// בחר רשום בקרה
Wire.write (0x26);
// מצב פעיל, OSR = 128, מצב מד גובה
Wire.write (0xB9);
// עצור את שידור I2C
Wire.endTransmission ();
עיכוב (1000);
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// בחר רישום נתונים
Wire.write (0x00);
// עצור את שידור I2C
Wire.endTransmission ();
// בקש 6 בתים של נתונים
Wire.requestFrom (Addr, 6);
// קרא 6 בתים של נתונים מהכתובת 0x00 (00)
// סטטוס, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
אם (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 ();
}
// המר את הנתונים ל- 20 סיביות
tHeight = ((((()) נתונים [1] * (ארוך) 65536) + (נתונים [2] * 256) + (נתונים [3] & 0xF0)) / 16);
temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
גובה = גובה / 16.0;
cTemp = (טמפ ' / 16.0);
fTemp = cTemp * 1.8 + 32;
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// בחר רשום בקרה
Wire.write (0x26);
// מצב פעיל, OSR = 128, מצב ברומטר
Wire.write (0x39);
// עצור את שידור I2C
Wire.endTransmission ();
// התחל את שידור I2C
Wire.beginTransmission (Addr);
// בחר רישום נתונים
Wire.write (0x00);
// עצור את שידור I2C
Wire.endTransmission ();
עיכוב (1000);
// בקש 4 בתים של נתונים
Wire.requestFrom (אדר, 4);
// קרא 4 בתים של נתונים
// status, pres msb1, pres msb, pres lsb
אם (Wire.available () == 4)
{
data [0] = Wire.read ();
data [1] = Wire.read ();
data [2] = Wire.read ();
data [3] = Wire.read ();
}
// המר את הנתונים ל- 20 סיביות
pres = (((ארוך) נתונים [1] * (ארוך) 65536) + (נתונים [2] * 256) + (נתונים [3] & 0xF0)) / 16;
לחץ = (pres / 4.0) / 1000.0;
// נתוני פלט ללוח המחוונים
Particle.publish ("גובה:", מחרוזת (גובה));
פרסום Particle.publish ("לחץ:", מחרוזת (לחץ));
Particle.publish ("טמפרטורה בסלסיוס:", מחרוזת (cTemp));
Particle.publish ("טמפרטורה בפרנהייט:", מחרוזת (fTemp));
עיכוב (1000);
}
שלב 4: יישומים:
יישומים שונים של MPL3115A2 כוללים מדדי דיוק גבוהים, סמארטפונים/טאבלטים, אלטימטריה של אלקטרוניקה אישית וכו '. ניתן לשלב אותה גם בחישוב מתים GPS, שיפור GPS לשירותי חירום, מפת עזרה, ניווט וכן ציוד תחנת מזג אוויר.
מוּמלָץ:
מד גובה (מד גובה) בהתבסס על לחץ אטמוספרי: 7 שלבים (עם תמונות)
מד גובה (מד גובה) בהתבסס על לחץ אטמוספרי: [עריכה]; ראה גירסה 2 בשלב 6 עם קלט גובה בסיסי באופן ידני. זהו תיאור הבניין של מד גובה (מד גובה) המבוסס על Arduino Nano וחיישן לחץ אטמוספרי Bosch BMP180. העיצוב פשוט אך המדידות
תחנת מזג אוויר אישית של חלקיק פוטון IoT: 4 שלבים (עם תמונות)
תחנת מזג אוויר אישית של חלקיק פוטון IoT:
חלקיק פוטון - TCN75A חיישן טמפרטורה הדרכה: 4 שלבים
פוטון חלקיקים-חיישן טמפרטורה TCN75A מדריך: TCN75A הוא חיישן טמפרטורה סדרתי דו חוטי המשולב עם ממיר טמפרטורה לדיגיטל. הוא משולב עם רישומים הניתנים לתכנות למשתמשים המספקים גמישות ליישומים לחישת טמפרטורה. הגדרות הרישום מאפשרות למשתמשים
Raspberry Pi - MPL3115A2 חיישן מד גובה מדויק Java הדרכה: 4 שלבים
Raspberry Pi - חיישן מד מד גובה MPL3115A2 מדויק לג'אווה הדרכה: ה- MPL3115A2 משתמש בחיישן לחץ MEMS עם ממשק I2C כדי לספק נתוני לחץ/גובה וטמפרטורה מדויקים. יציאות החיישן ממוגנות באמצעות ADC ברזולוציה גבוהה של 24 סיביות. עיבוד פנימי מסיר משימות פיצוי מה
חלקיק פוטון - TMP100 חיישן טמפרטורה הדרכה: 4 שלבים
חלקיק פוטון-TMP100 חיישן טמפרטורה מדריך: TMP100 מודול I2C MINI בעל דיוק גבוה, צריכת חשמל נמוכה. TMP100 אידיאלי למדידת טמפרטורה ממושכת. מכשיר זה מציע דיוק של ± 1 ° C ללא צורך בכיול או מיזוג אות רכיב חיצוני. הוא