فهرست مطالب:
تصویری: آموزش سنسور آردوینو نانو - MPL3115A2 ارتفاع سنج دقیق: 4 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
MPL3115A2 از سنسور فشار MEMS با رابط I2C برای ارائه اطلاعات دقیق فشار/ارتفاع و دما استفاده می کند. خروجی های سنسور با ADC 24 بیتی با وضوح بالا دیجیتالی می شوند. پردازش داخلی وظایف جبران خسارت را از سیستم MCU میزبان حذف می کند. این دستگاه قادر به تشخیص تغییر در 0.05 کیلو پاسکال است که معادل 0.3 متر ارتفاع است. در اینجا نمایش آن با آردوینو نانو است.
مرحله 1: آنچه شما نیاز دارید..
1. آردوینو نانو
2. MPL3115A2
3. کابل I²C
4. I²C Shield برای آردوینو نانو
مرحله 2: اتصالات:
یک سپر I2C برای آردوینو نانو بگیرید و آن را به آرامی روی پین های نانو فشار دهید.
سپس یک سر کابل I2C را به سنسور MPL3115A2 و سر دیگر را به سپر I2C وصل کنید.
اتصالات در تصویر بالا نشان داده شده است.
مرحله 3: کد:
کد آردوینو MPL3115A2 را می توانید از مخزن github-DCUBE Store ما بارگیری کنید.
در اینجا پیوند مربوط به آن است:
github.com/DcubeTechVentures/MPL3115A2/blob/master/Arduino/MPL3115A2.ino
ما کتابخانه Wire.h را برای تسهیل ارتباط I2c سنسور با برد آردوینو قرار می دهیم.
همچنین می توانید کد را از اینجا کپی کنید ، به صورت زیر آمده است:
// با مجوز اراده آزاد توزیع می شود.
// از آن به هر نحوی که می خواهید استفاده کنید ، سودمند یا رایگان ، مشروط بر اینکه در مجوز آثار مربوط به آن متناسب باشد.
// MPL3115A2
// این کد برای کار با ماژول کوتاه MPL3115A2_I2CS I2C طراحی شده است
#عبارتند از
// آدرس MPL3115A2 I2C 0x60 (96) است
#تعریف Addr 0x60
void setup ()
{
// راه اندازی ارتباط 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 بایت داده
سیم. درخواست از (Addr، 6)؛
// خواندن 6 بایت داده از آدرس 0x00 (00)
// وضعیت ، tHeight msb1 ، tHeight msb ، tHeight lsb ، temp msb ، temp lsb
if (Wire.available () == 6)
{
داده [0] = Wire.read ()؛
داده [1] = Wire.read ()؛
داده [2] = Wire.read ()؛
داده [3] = Wire.read ()؛
داده [4] = Wire.read ()؛
داده [5] = Wire.read ()؛
}
// تبدیل داده ها به 20 بیت
int tHeight = (((طولانی) (داده [1] * (طولانی) 65536) + (داده [2] * 256) + (داده [3] & 0xF0)) / 16) ؛
int temp = ((داده [4] * 256) + (داده [5] & 0xF0)) / 16؛
ارتفاع شناور = tHeight / 16.0 ؛
float cTemp = (temp / 16.0) ؛
float fTemp = cTemp * 1.8 + 32 ؛
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// کنترل ثبت را انتخاب کنید
Wire.write (0x26) ؛
// حالت فعال ، OSR = 128 ، حالت فشارسنج
Wire.write (0x39)؛
// توقف انتقال I2C
Wire.endTransmission ()؛
تاخیر (1000) ؛
// شروع انتقال I2C
Wire.beginTransmission (Addr)؛
// ثبت داده را انتخاب کنید
Wire.write (0x00) ؛
// توقف انتقال I2C
Wire.endTransmission ()؛
// درخواست 4 بایت داده
سیم. درخواست از (Addr، 4)؛
// خواندن 4 بایت داده
// وضعیت ، pres msb1 ، pres msb ، pres lsb
if (Wire.available () == 4)
{
داده [0] = Wire.read ()؛
داده [1] = Wire.read ()؛
داده [2] = Wire.read ()؛
داده [3] = Wire.read ()؛
}
// تبدیل داده ها به 20 بیت
pres pres = (((طولانی) داده [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 برای خدمات اضطراری ، کمک نقشه ، ناوبری و همچنین تجهیزات ایستگاه هواشناسی گنجانید.
توصیه شده:
ولت متر دقیق و دقیق آردوینو (0-90V DC): 3 مرحله
متر ولتاژ دقیق و دقیق آردوینو (0-90V DC): در این قسمت ، من یک ولت متر برای اندازه گیری ولتاژهای بالا DC (0-90v) با دقت و دقت نسبی با استفاده از آردوینو نانو ساخته ام. اندازه گیری های آزمایشی که من انجام دادم به اندازه کافی دقیق بود ، بیشتر در 0.3 ولت از ولتاژ واقعی اندازه گیری شده با
ارتفاع سنج (متر ارتفاع) بر اساس فشار اتمسفر: 7 مرحله (همراه با تصاویر)
ارتفاع سنج (متر ارتفاع) بر اساس فشار اتمسفر: [ویرایش] ؛ نسخه 2 را در مرحله 6 با ورودی ارتفاع به صورت دستی مشاهده کنید. این توصیف ساختمان یک ارتفاع سنج (ارتفاع متر) بر اساس آردوینو نانو و سنسور فشار اتمسفر Bosch BMP180 است. طراحی ساده است ، اما اندازه گیری
آموزش آردوینو نانو-MMA8452Q 3 محور 12 بیت/8 بیت دیجیتال شتاب سنج: 4 مرحله
Arduino Nano-MMA8452Q 3-Axis 12-bit/8-bit Digital Accelerometer: MMA8452Q یک شتاب سنج هوشمند ، کم توان ، سه محوری ، خازنی ، میکرو ماشین با 12 بیت وضوح است. گزینه های قابل برنامه ریزی کاربر قابل انعطاف با کمک توابع تعبیه شده در شتاب سنج ، قابل تنظیم در دو فاصله
PropVario ، یک متغیر سنج/ارتفاع سنج DIY با خروجی صدا برای هواپیماهای بادبانی RC: 7 مرحله (همراه با تصاویر)
PropVario ، یک DIY Variometer/Altimeter DIY با صدای خروجی برای RC Sailplanes: این دستورالعمل ها به شما نشان می دهد که چگونه می توانید یک Vario ارزان قیمت بسازید ، که می تواند ارتفاع را بیان کند و البته هنگام تغییر ارتفاع هواپیمای بادبانی شما ، تن های مختلف را ارسال می کند. برخی از ویژگی ها: - صدا و لحن - از نمونه های خود (موج) در محل کار خود استفاده کنید
آردوینو نانو: شتاب سنج ژیروسکوپ قطب نما MPU9250 I2C سنسور با Visuino: 11 مرحله
آردوینو نانو: شتاب سنج ژیروسکوپ قطب نما MPU9250 I2C Sensor With Visuino: MPU9250 یکی از پیشرفته ترین سنسورهای شتاب سنج ، ژیروسکوپ و قطب نما با اندازه کوچک است که در حال حاضر موجود است. آنها دارای بسیاری از ویژگی های پیشرفته هستند ، از جمله فیلترینگ کم گذر ، تشخیص حرکت و حتی یک پردازنده تخصصی قابل برنامه ریزی