جدول المحتويات:
فيديو: اردوينو نانو - MPL3115A2 البرنامج التعليمي لمستشعر مقياس الارتفاع الدقيق: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:36
يستخدم MPL3115A2 مستشعر ضغط MEMS بواجهة I2C لتوفير بيانات دقيقة للضغط / الارتفاع ودرجة الحرارة. يتم ترقيم مخرجات المستشعر بدقة عالية 24 بت ADC. تزيل المعالجة الداخلية مهام التعويض من نظام MCU المضيف. إنه قادر على اكتشاف تغيير في 0.05 كيلو باسكال فقط وهو ما يعادل تغيرًا بمقدار 0.3 متر في الارتفاع. هذا هو العرض التوضيحي مع Arduino Nano.
الخطوة 1: ماذا تحتاج..
1. اردوينو نانو
2. MPL3115A2
3. كابل I²C
4. I²C Shield لـ Arduino Nano
الخطوة الثانية: التوصيلات:
خذ درع I2C لـ Arduino Nano وادفعه برفق فوق دبابيس Nano.
ثم قم بتوصيل أحد طرفي كابل I2C بمستشعر MPL3115A2 والطرف الآخر بالدرع I2C.
تظهر الاتصالات في الصورة أعلاه.
الخطوة الثالثة: الكود:
يمكن تنزيل كود اردوينو الخاص بـ MPL3115A2 من مستودع جيثب- DCUBE Store.
هنا هو الرابط لنفسه:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
نقوم بتضمين مكتبة Wire.h لتسهيل اتصال I2c للمستشعر بلوحة Arduino.
يمكنك أيضًا نسخ الكود من هنا ، ويُعطى على النحو التالي:
// موزعة بترخيص الإرادة الحرة.
// استخدمها بالطريقة التي تريدها ، سواء كانت ربحًا أو مجانًا ، شريطة أن تتناسب مع تراخيص الأعمال المرتبطة بها.
// MPL3115A2
// تم تصميم هذا الرمز للعمل مع الوحدة النمطية الصغيرة MPL3115A2_I2CS I2C
#يشمل
// عنوان MPL3115A2 I2C هو 0x60 (96)
#define Addr 0x60
الإعداد باطل()
{
// تهيئة اتصال I2C
Wire.begin () ؛
// تهيئة الاتصال التسلسلي ، اضبط معدل الباود = 9600
Serial.begin (9600) ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل التحكم
Wire.write (0x26) ؛
// الوضع النشط ، OSR = 128 ، وضع مقياس الارتفاع
Wire.write (0xB9) ؛
// إيقاف انتقال I2C
Wire.endTransmission () ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل تكوين البيانات
Wire.write (0x13) ؛
// تم تمكين حدث جاهز للبيانات للارتفاع والضغط ودرجة الحرارة
Wire.write (0x07) ؛
// إيقاف انتقال I2C
Wire.endTransmission () ؛
تأخير (300) ؛
}
حلقة فارغة()
{
بيانات int غير الموقعة [6] ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل التحكم
Wire.write (0x26) ؛
// الوضع النشط ، OSR = 128 ، وضع مقياس الارتفاع
Wire.write (0xB9) ؛
// إيقاف انتقال I2C
Wire.endTransmission () ؛
تأخير (1000) ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل البيانات
Wire.write (0x00) ؛
// إيقاف انتقال I2C
Wire.endTransmission () ؛
// طلب 6 بايت من البيانات
Wire.request From (Addr، 6) ؛
// قراءة 6 بايت من البيانات من العنوان 0x00 (00)
// status، tHeight msb1، tHeight msb، tHeight lsb، temp msb، temp lsb
إذا (Wire.available () == 6)
{
البيانات [0] = Wire.read () ،
البيانات [1] = Wire.read () ،
البيانات [2] = Wire.read () ؛
البيانات [3] = Wire.read () ؛
البيانات [4] = Wire.read () ؛
البيانات [5] = Wire.read () ؛
}
// تحويل البيانات إلى 20 بت
int tHeight = (((long) (data [1] * (long) 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16) ؛
int temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16 ؛
ارتفاع تعويم = tHeight / 16.0 ؛
تعويم cTemp = (temp / 16.0) ؛
تعويم fTemp = cTemp * 1.8 + 32 ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل التحكم
Wire.write (0x26) ؛
// الوضع النشط ، OSR = 128 ، وضع البارومتر
Wire.write (0x39) ؛
// إيقاف انتقال I2C
Wire.endTransmission () ؛
تأخير (1000) ؛
// بدء نقل I2C
Wire.beginTransmission (العنوان) ؛
// حدد سجل البيانات
Wire.write (0x00) ؛
// إيقاف انتقال I2C
Wire.endTransmission () ؛
// طلب 4 بايت من البيانات
Wire.request From (Addr، 4) ؛
// قراءة 4 بايت من البيانات
// status، pres msb1، pres msb، pres lsb
إذا كان (Wire.available () == 4)
{
البيانات [0] = Wire.read () ،
البيانات [1] = Wire.read () ،
البيانات [2] = Wire.read () ؛
البيانات [3] = Wire.read () ؛
}
// تحويل البيانات إلى 20 بت
الضغط الطويل = ((طويلة) البيانات [1] * (طويلة) 65536) + (البيانات [2] * 256) + (البيانات [3] & 0xF0)) / 16 ؛
ضغط الطفو = (pres / 4.0) / 1000.0 ؛
// إخراج البيانات إلى الشاشة التسلسلية
Serial.print ("الارتفاع:") ؛
Serial.print (ارتفاع) ؛
Serial.println ("m") ؛
Serial.print ("الضغط:") ؛
Serial.print (الضغط) ؛
Serial.println ("kPa") ؛
Serial.print ("درجة الحرارة بالدرجة المئوية:") ؛
Serial.print (cTemp) ؛
Serial.println ("C") ؛
Serial.print ("درجة الحرارة بالفهرنهايت:") ؛
Serial.print (fTemp) ؛
Serial.println ("F") ؛
تأخير (500) ؛
}
الخطوة 4: التطبيقات:
تشمل التطبيقات المختلفة لـ MPL3115A2 قياس الارتفاع عالي الدقة ، والهواتف الذكية / الأجهزة اللوحية ، والإلكترونيات الشخصية لقياس الارتفاع وما إلى ذلك ، ويمكن أيضًا دمجها في GPS Dead Reckoning ، وتحسين GPS لخدمات الطوارئ ، ومساعدة الخرائط ، والملاحة بالإضافة إلى معدات محطة الطقس.
موصى به:
Arduino Nano - TSL45315 البرنامج التعليمي لمستشعر الضوء المحيط: 4 خطوات
Arduino Nano - TSL45315 البرنامج التعليمي لمستشعر الإضاءة المحيطة: TSL45315 هو مستشعر رقمي للضوء المحيط. إنه يقترب من استجابة عين الإنسان في ظل مجموعة متنوعة من ظروف الإضاءة. تحتوي الأجهزة على ثلاث أوقات تكامل قابلة للتحديد وتوفر إخراجًا مباشرًا يبلغ 16 بت لوكس عبر واجهة ناقل I2C. شارك الجهاز
مقياس الارتفاع (مقياس الارتفاع) بناءً على الضغط الجوي: 7 خطوات (بالصور)
مقياس الارتفاع (مقياس الارتفاع) بناءً على الضغط الجوي: [تحرير]؛ انظر الإصدار 2 في الخطوة 6 مع إدخال خط الأساس يدويًا للارتفاع. هذا هو وصف المبنى لمقياس الارتفاع (مقياس الارتفاع) استنادًا إلى مستشعر الضغط الجوي من Arduino Nano و Bosch BMP180. التصميم بسيط ولكن القياسات
Arduino Nano - HTS221 البرنامج التعليمي لمستشعر الرطوبة النسبية ودرجة الحرارة: 4 خطوات
Arduino Nano - HTS221 الرطوبة النسبية ومستشعر درجة الحرارة البرنامج التعليمي: HTS221 هو مستشعر رقمي سعوي مدمج للغاية للرطوبة النسبية ودرجة الحرارة. يتضمن عنصر استشعار ودائرة متكاملة خاصة بتطبيق إشارة مختلطة (ASIC) لتوفير معلومات القياس من خلال التسلسل الرقمي
اردوينو نانو - SI7050 البرنامج التعليمي لمستشعر درجة الحرارة: 4 خطوات
برنامج Arduino Nano - SI7050 لمستشعر درجة الحرارة: SI7050 عبارة عن مستشعر درجة حرارة رقمي يعمل على بروتوكول اتصال I2C ويوفر دقة عالية على نطاق جهد التشغيل ودرجة الحرارة بالكامل. تُعزى هذه الدقة العالية للمستشعر إلى معالجة الإشارات الجديدة والتحليل الشرجي
Arduino Nano - STS21 البرنامج التعليمي لمستشعر درجة الحرارة: 4 خطوات
Arduino Nano - STS21 برنامج تعليمي لمستشعر درجة الحرارة: يوفر مستشعر درجة الحرارة الرقمي STS21 أداءً فائقًا وبصمة موفرة للمساحة. يوفر إشارات خطية معايرة بتنسيق رقمي I2C. يعتمد تصنيع هذا المستشعر على تقنية CMOSens ، والتي تنسب إلى