داغ ترین ها

ورود / عضویت

Arduino Tech

عضویت در سایت

فراموشی رمز عبور

این بار قصد داریم پروزه راه اندازی ماژول فشار سنج BMP085 را به شما دوستان فناوری آردوینو ارائه دهیم. با ما همراه باشید.

اندازه گیری فشار دما در دو مورد  میتواند مفید واقع شود.مورد اول در اندازه گیری ارتفاع می باشد.هنگامی که از سطح دریا به ارتفاعات سفر میکنیم فشار هوا کاهش می یابد و این بدان معناست که با اندازه گیری فشار میتوان ارتفاع را نیز اندازه گیری نمود.مورد دوم هنگامی است که از تغییرات فشار  برای پیش بینی وضعیت آب و هوا استفاده کرد.

ماژول BMP085  قابلیت اندازه گیری فشار هوا در محدوده  ی  ۳۰۰ الی ۱۱۰۰ هکتوپاسکال (۵۰۰- الی ۹۰۰۰ متر از سطح دریا)  با ررزولوشن ۰٫۰۳hP /0.25 m  را دارد می باشد.همچنین BMP085 قابلیت اندازه گیری دما در محدوده ی ۴۰- الی ۸۰ درجه سانتی گراد را دارا میباشد.ماژول بر اساس پروتوکل I2C  راه اندازی میشود.

سخت افزار مورد نیاز

ماژول فشار سنج BMP085

ماژول آردوینو Uno

طریقه ی اتصال پایه ها

VCC به ۳٫۳ ولت

GND به  GND مدار

SDA به پایه ی SDA آردوینو

SCL به پایه ی SCL آردوینو

XCLR نیاز به اتصال ندارد(این پایه برای ریست کردن ماژول کاربرد دارد)

EOC نیاز به اتصال ندارد (این پایه برای سریع کردن عملیات انجام میشود، به طوری که پس از هر بار محاسبه مقادیر ، یک وقفه به آردوینو میدهد)

برنامه نویسی

برای برنامه نویسی ابتدا کتابخانه  Adafruit_BMP085 را دالنود و سپس به برنامه اضافه می‌کنیم.

 

#include <Adafruit_BMP085.h>
#include <Wire.h>
/*
میسازیمbmpیک شی به نام Adafruit_BMP085از کلاس
*/
Adafruit_BMP085 bmp;
double temp, pressure, altitude, realAltitude;
void setup ()
{
Wire.begin();
Serial.begin (9600);
//چک میکنیم که اگر سنسور شروع به کار نکرد ،
//اروری در سریال مانیتور نمایش داده شود و برنامه موقف میشود
// if ( !bmp.begin () )
// {
// Serial.println ("Could not find a valid BMP085 sensor, check wiring!");
// while ( 1 )
// {
// }
// }
}
void loop ()
{
temp = bmp.readTemperature (); //اندازه گیری دما
pressure = bmp.readPressure (); //اندازه گیری فشار
altitude = bmp.readAltitude (); //اندازه گیری ارتفاع از سطح دریا
realAltitude = bmp.readAltitude (101700);//اندازه گیری فشار از سطح دریا بعد از
//کالیبره شدن با شرایط جوی در آن منطقه
/*
altitude = bmp.readAltitude();
با استفاده از این تابع میتوانید مقدار ارتفاع از سطح دریا را محاسبه کنید،
ولی این تابع اگر دارای پارامتر ورودی نباشد
ممکن است مقدار اشتباهی را برگرداند.
با ذکر مثالی به تشریح اینن موضوع میپردازیم
فرض کنید توسط این ماژول مقادیر زیر را دریافت کرده ایم
Dama = 25'c
Pheshar =101592
tertefa az sath e darya= -23
خودمان میدانیم در زیر سطح دریا قرار نداریم ،
پس عدد -۲۳ از کجا به وجود آمده؟!!!! آیا سنسور ما ایراد دارد؟
خیر!!
مشکل اینجاست که فشار در سطحح دریا با تغییرات جوی ، تغییر میکند.
بنا بر این ما باید سنسور را کالیبره کنیم و به صورت طبیعی تنظیمش کنیم.
http://www.worldweatheronline.com/برای این منظور وارد سایت
میشویم و مکانی که در آن مستقر هستیم را پیدا میکنیم
و مقدار فشار آم مان را بر حسب بار به آرگمان ورودی تابع میدهیم
*/
Serial.print ("Dama = ");
Serial.print (temp);
Serial.print (" 'C");
Serial.print ("tPheshar =");
Serial.print (pressure);
Serial.print ("Pa");
Serial.print ("tertefa az sath e darya= ");
Serial.print (altitude);
Serial.print ("m");
Serial.print ("tErtefa haghghi az sath e darya=");
Serial.print (realAltitude);
Serial.println ("m");
delay (500);
}
مجید امانی

مجید امانی

توی زمینه رباتیک، الکترونیک، میکروکنترلر و IT فعالیت می کنم...

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *