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 ولت می باشد .




سلام وقت بخیر.بدون استفاده از آردوئینو هم میتوان ماژول را راه اندازی کرد؟
سلام خروجی این کد بر حسب کیلو پاسکال هست؟