راه اندازی سنسور فشار بارومتریک BMP180 در میکروکنترلر STM32

BMP180 BOSCH یک سنسور فشار بارومتریک با دقت بالا و جریان مصرفی پایین است. این سنسور می تواند فشار بین ۳۰۰ تا ۱۱۰۰ هکتوپاسکال را با دقت مطلق ۰٫۰۳ هکتوپاسکال اندازه گیری نماید. هر هکتوپاسکال معادل ۱۰۰ پاسکال است. سنسور BMP180 بر اساس تکنولوژی مقاومت پیزوالکتریک یا Piezo-resistive طراحی و تولید شده. استفاده از این تکنولوژی دقت بالا، خطی بودن و پایداری طولانی مدت را برای این سنسور فراهم نموده است.

ولتاژ تغذیه سنسور بین ۱٫۸ تا ۳٫۶ ولت است. خروجی سنسور بصورت دیجیتال و با رابط I2C است و برای ارتباط مستقیم با میکروکنترلر طراحی شده است.

مشخصات:

  • رنج گسترده در اندازه گیری فشار بارو متریک
  • خروجی دیجیتال با اینترفیس I2C
  • رنج گسترده ولتاژ تغذیه قابل قبول
  • نویز پایین در اندازه گیری
  • کاملا کالیبره شده
  • قابلیت اندازه گیری دما
  • تولید شده در قالب LLC بسیار باریک
  • ۵ × ۵ میلیمتر با ارتفاع ۱٫۲ میلیمتر

BMP180 یک سنسور فشار بسیار ساده است که فشار هوا را حس می کند. از این فشار می توان برای محاسبه ارتفاع از سطح دریا استفاده کرد. BMP180 همچنین دارای یک سنسور دما یکپارچه است. از I2C برای برقراری ارتباط استفاده می کند.

نمودار اندازه گیری جریان در تصویر زیر آورده شده است:

اتصالات

اتصال BMP180 بسیار ساده است. فقط SCL را به SCL و SDA به SDA وصل کنید و خوب است که بروید.

آدرس I2C  مطابق با دیتاشیت ۰xEE  است. که در زیر نشان داده شده است:

چگونه اندازه گیری کنیم

جواب برای هر سوال این است که “چگونه ارتباط دهیم” در دیتاشیت این سنسور در صفحه ۱۵ BMP180 نگاه کنید؛ الگوریتمی برای انجام کلیه محاسبات لازم ارائه شده است. در زیر تصویر

در اینجا ، اول از همه ، باید مقادیر کالیبراسیون را از EEPROM با آدرس شروع از ۰xAA بخوانیم.

هر مقدار یعنی AC1 ، AC2 ، AC3 و غیره اندازه ۱۶ بیت دارد. این مقادیر برای هر سنسور BMP180 متفاوت است ، اما برخی از پیش فرض های داده شده در دیتاشیت وجود دارد.

هر مقدار کالیبراسیون شما ، باید کمی در حدود این مقادیر پیش فرض باشند. آنها مطابق شکل زیر نشان داده شده اند:

پس از خواندن کالیبراسیون ، start the reading for UT  (دمای غیرقابل تحمل) شروع خواهیم کرد. برای این کار ، باید رجیستر ۰xF6 و ۰xF7 را بخوانیم.

خط بعدی UP  (فشار غیر قابل جبران) است. برای خواندن UP ، باید رجیسترهای ۰xF6 ، ۰xF7  و ۰xF8  را بخوانیم.

و در آخر ما محاسبات را مطابق با دیتاشیت انجام دهیم تا دما و فشار حاصل شود.

 

محاسبه ارتفاع

در اینجا ما باید ابتدا فشار اتمسفر استاندارد را تعریف کنیم ، زیرا در محاسبه به آن نیاز خواهد بود. ارتفاع را می توان از فشار با استفاده از فرمول مطابق شکل زیر محاسبه کرد:



جهت دانلود این پروژه ب لینک زیر مراجعه کنید:

BMP180 Sensor in STM32