MPS20N0040D یک سنسور اندازه گیری فشار سیالات با تکنولوژی MEMS می باشد . این سنسور قابلیت اندازه گیری فشار در محدوده 0 تا 8.5psi ( چهل کیلو پاسکال ) را دارد . قیمت ارزان و اطمینان پذیری بالا این سنسور را به یکی از مصرفی ترین سنسور های اندازه گیری فشار تبدیل کرده است . همچنین طراجی ای سنسور به گونه ای است که قابلیت اتصال تیوپ های 2.5 میلی متری را دارد . MPS20N0040D یک سنسور مقاومتی است که خروجی آن به صورت یک سیگنال آنالوگ بین 50 تا 100 میلی ولت می باشد . به دلیل دامنه کم سیگنال خروجی این سنسور ، می توانید از ADC های با دقت بالا برای اتصال سنسور به MCU ها استفاده کنید . در این آموزش ما از ماژول TM7711 استفاده می کنیم که شامل یک سنسور MPS20N0040D و چیپ TM7711 می باشد . TM7711 یک ADC با دقت 24 بیت است که خروجی آن به صورت سریال می باشد .
در تصویر زیر مدار داخلی MPS20N0040D نشان داده شده است :
در تصویر زیر پین های خروجی ماژول TM7711 نشان داده شده است :
ماژول TM7711 دارای 4 پین به شرح زیر است :
VCC پین تغذیه ماژول که باید به +5V متصل شود .
OUT پین خروجی دیتای ماژول .
SCK پین پالس ورودی ماژول .
GND پین زمین ماژول .
راه اندازی ماژول TM7711 :
در راه اندازی این ماژول ، پس اتصال تغذیه با هر لبه بالا رونده بر روی پین SCK ، یک بیت از داده بر روی پین OUT قرار می گیرد . مقادیر به ترتیب از MSB به LSB در خروجی قرار خواهند گرفت که در مجموع 24 بیت می باشد . پس از خواندن 24 بیت باید پین SCK تا پایان دوره زمانی در حالت LOW قرار بگیرد .درتصویر پایین سیگنال های SCK و OUT نشان داده شده اند :
برنامه آردوینو برای راه اندازی ماژول TM7711 :
#include "HX711.h" HX711 scale; void setup() { Serial.begin(38400); Serial.println("HX710B Demo with HX711 Library"); Serial.println("Initializing the scale"); // parameter "gain" is ommited; the default value 128 is used by the library // HX711.DOUT - pin #A1 // HX711.PD_SCK - pin #A0 scale.begin(A1, A0); Serial.println("Before setting up the scale:"); Serial.print("read: \t\t"); Serial.println(scale.read()); // print a raw reading from the ADC Serial.print("read average: \t\t"); Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC Serial.print("get value: \t\t"); Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight (not set yet) Serial.print("get units: \t\t"); Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight (not set) divided // by the SCALE parameter (not set yet) scale.set_scale(2280.f); // this value is obtained by calibrating the scale with known weights; see the README for details scale.tare(); // reset the scale to 0 Serial.println("After setting up the scale:"); Serial.print("read: \t\t"); Serial.println(scale.read()); // print a raw reading from the ADC Serial.print("read average: \t\t"); Serial.println(scale.read_average(20)); // print the average of 20 readings from the ADC Serial.print("get value: \t\t"); Serial.println(scale.get_value(5)); // print the average of 5 readings from the ADC minus the tare weight, set with tare() Serial.print("get units: \t\t"); Serial.println(scale.get_units(5), 1); // print the average of 5 readings from the ADC minus tare weight, divided // by the SCALE parameter set with set_scale Serial.println("Readings:"); } void loop() { Serial.print("one reading:\t"); Serial.print(scale.get_units(), 1); Serial.print("\t| average:\t"); Serial.println(scale.get_units(10), 1); scale.power_down(); // put the ADC in sleep mode delay(5000); scale.power_up(); }
در برنامه فوق از کتابخانه TM7711 استفاده شده است که می توانید آن را از لینک زیر دانلود کنید :
https://github.com/bogde/HX711/archive/master.zip
برای ارتباط ماژول TM7711 به آردوینو پین OUT را به A1 و پین SCK را به A0 آردوینو متصل کنید . همچنین تغذیه ماژول 5 ولت می باشد .
سلام وقت بخیر.بدون استفاده از آردوئینو هم میتوان ماژول را راه اندازی کرد؟
سلام خروجی این کد بر حسب کیلو پاسکال هست؟