راهنمای کاربر ماژول ADC سنسورهای توزین ARDUINO HX711
برنامه کاربردیample با Arduino Uno:
اکثر لودسل ها دارای چهار سیم هستند: قرمز، سیاه، سبز و سفید. در برد HX711 اتصالات E+/E-، A+/A- و B+/B را خواهید یافت. طبق جدول زیر لودسل را به برد سنسور HX711 وصل کنید:
برد سنسور بار HX711 | سیم سلول بار |
E+ | قرمز |
E- | مشکی |
A+ | سبز |
A- | سفید |
B- | استفاده نشده |
B+ | استفاده نشده |
سنسور HX711 | آردوینو اونو |
GND | GND |
DT | D3 |
SCK | D2 |
VCC | 5V |
ماژول HX711 با ولتاژ 5 ولت کار می کند و ارتباط با استفاده از پین های سریال SDA و SCK انجام می شود.
کجا روی لودسل وزن اعمال کنیم؟
شما می توانید ببینید که یک فلش در سلول بار نشان داده شده است. این فلش جهت نیروی وارد بر لودسل را نشان می دهد. با استفاده از نوارهای فلزی می توانید ترتیبی را که در شکل نشان داده شده است ایجاد کنید. نوار فلزی را با استفاده از پیچ و مهره روی لودسل وصل کنید.
برنامه نویسی Arduino UNO برای اندازه گیری وزن در کیلوگرم:
شماتیک را همانطور که در شکل 1 در بالا نشان داده شده است وصل کنید.
برای اینکه این ماژول حسگر با بردهای آردوینو کار کند، به کتابخانه HX711 نیاز داریم که بتواند بارگذاری را از https://github.com/bogde/HX711.
قبل از اینکه بتوان از HX711 برای اندازه گیری دقیق وزن یک جسم استفاده کرد، ابتدا باید کالیبره شود. مرحله زیر نحوه انجام کالیبراسیون را به شما نشان می دهد.
1 مرحله: طرح کالیبراسیون
طرح زیر را در Arduino Uno Board آپلود کنید
/* فناوری Handson www.handsontec.com
* 29 دسامبر 2017
* رابط ماژول سلول HX711 را با آردوینو برای اندازه گیری وزن بر حسب کیلوگرم بارگذاری کنید
آردوینو
سنجاق
2 -> HX711 CLK
3 -> DOUT
5 ولت -> VCC
GND -> GND
اکثر پین های Arduino Uno با DOUT/CLK سازگار خواهند بود.
برد HX711 می تواند از 2.7 ولت تا 5 ولت تغذیه شود، بنابراین برق 5 ولت آردوینو باید خوب باشد.
*/
#include "HX711.h" //شما باید این کتابخانه را در پوشه کتابخانه آردوینو خود داشته باشید
#تعریف DOUT 3
#تعریف CLK 2
مقیاس HX711 (DOUT، CLK)؛
//این ضریب کالیبراسیون را طبق لودسل خود تغییر دهید، وقتی پیدا شد که خیلی به آن نیاز دارید
آن را در هزاران تغییر دهید
float calibration_factor = -96650; //-106600 برای تنظیم حداکثر 40 کیلوگرم مقیاس من کار کرد
//================================================ =======================================
// برپایی
//================================================ =======================================
void setup() {
Serial.begin(9600);
Serial.println("کالیبراسیون HX711");
Serial.println ("حذف تمام وزن از ترازو");
Serial.println ("پس از شروع خواندن، وزن شناخته شده را روی ترازو قرار دهید");
Serial.println(برای افزایش ضریب کالیبراسیون 10,100,1000,10000 a,s,d,f را فشار دهید
به ترتیب")؛
Serial.println(برای کاهش ضریب کالیبراسیون 10,100,1000,10000 z,x,c,v را فشار دهید
به ترتیب")؛
Serial.println("برای تاره t را فشار دهید");
scale.set_scale();
scale.tare(); //مقیاس را روی 0 بازنشانی کنید
طولانی zero_factor = scale.read_average(); //یک خواندن پایه دریافت کنید
Serial.print("ضریب صفر: "); //این می تواند برای رفع نیاز به پارگی مقیاس استفاده شود.
مفید در پروژه های مقیاس دائمی.
Serial.println(factor_zero);
}
//================================================ =======================================
// حلقه
//================================================ =======================================
حلقه خالی() {
scale.set_scale(calibration_factor); //این فاکتور کالیبراسیون را تنظیم کنید
Serial.print("Reading: ");
Serial.print(scale.get_units(), 3);
Serial.print ("kg"); //این را به کیلوگرم تغییر دهید و در صورت تمایل ضریب کالیبراسیون را مجدداً تنظیم کنید
مانند یک فرد عاقل از واحدهای SI پیروی کنید
Serial.print(" calibration_factor: ");
Serial.print(calibration_factor);
Serial.println ()؛
if (Serial.available())
{
char temp = Serial.read();
if(temp == '+' || temp == 'a')
ضریب_کالیبراسیون += 10;
else if(temp == '-' || temp == 'z')
ضریب_کالیبراسیون -= 10;
else if(temp == 's')
ضریب_کالیبراسیون += 100;
else if(temp == 'x')
ضریب_کالیبراسیون -= 100;
else if(temp == 'd')
ضریب_کالیبراسیون += 1000;
else if(temp == 'c')
ضریب_کالیبراسیون -= 1000;
else if(temp == 'f')
ضریب_کالیبراسیون += 10000;
else if(temp == 'v')
ضریب_کالیبراسیون -= 10000;
else if(temp == 't')
scale.tare(); //مقیاس را به صفر برگردانید
}
}
//================================================ ======================================
هرگونه بار را از سنسور بار بردارید. مانیتور سریال را باز کنید پنجره زیر باید باز شود که نشان می دهد ماژول با موفقیت به Arduino Uno متصل شده است.
یک جسم وزن شناخته شده را روی لودسل قرار دهید. در این مورد نویسنده از وزن شناخته شده 191 گرم با لودسل 10 کیلوگرمی استفاده کرده است. مانیتور سریال مقداری وزن را مطابق شکل زیر نمایش می دهد:
در اینجا باید کالیبراسیون انجام دهیم:
- حروف "a, s, d, f" را در فضای فرمان سریال مانیتور وارد کنید و دکمه "ارسال" را فشار دهید تا ضریب کالیبراسیون به ترتیب 10، 100، 1000، 10000 افزایش یابد.
- حرف z، x، c، v را وارد فضای فرمان سریال مانیتور کنید و دکمه «ارسال» را بزنید تا فاکتور کالیبراسیون به ترتیب ۱۰، ۱۰۰، ۱۰۰۰، ۱۰۰۰۰ کاهش یابد.
تنظیم را ادامه دهید تا زمانی که قرائت وزن واقعی روی لودسل را نشان دهد. مقدار "calibration_factor" را ثبت کنید، در این مورد "-239250" در وزن نویسنده 191 گرم مرجع با 10 کیلوگرم لودسل. برای اندازه گیری واقعی به این مقدار نیاز داریم تا به طرح دوم خود متصل شویم.
مرحله دوم: کد نهایی برای اندازه گیری وزن واقعی
قبل از آپلود طرح، باید «ضریب کالیبراسیون» را که در مرحله اول به دست آمده است وصل کنیم:
پس از اصلاح ضریب مقیاس، طرح زیر را در Arduino Uno Board آپلود کنید:
/* فناوری Handson www.handsontec.com
* 29 دسامبر 2017
* رابط ماژول سلول HX711 را با آردوینو برای اندازه گیری وزن بر حسب کیلوگرم بارگذاری کنید
آردوینو
سنجاق
2 -> HX711 CLK
3 -> DOUT
5 ولت -> VCC
GND -> GND
اکثر پین های Arduino Uno با DOUT/CLK سازگار خواهند بود.
برد HX711 می تواند از 2.7 ولت تا 5 ولت تغذیه شود، بنابراین برق 5 ولت آردوینو باید خوب باشد.
*/
#include "HX711.h" //شما باید این کتابخانه را در پوشه کتابخانه آردوینو خود داشته باشید
#تعریف DOUT 3
#تعریف CLK 2
مقیاس HX711 (DOUT، CLK)؛
//این فاکتور کالیبراسیون را بر اساس لودسل خود تغییر دهید، به محض اینکه پیدا شد، باید آن را در هزاران تغییر دهید.
float calibration_factor = -96650; //-106600 برای تنظیم حداکثر 40 کیلوگرم مقیاس من کار کرد
//================================================ =============================================
// برپایی
//================================================ =============================================
void setup() {
Serial.begin(9600);
Serial.println("T to tare را فشار دهید");
scale.set_scale(-239250); //فاکتور کالیبراسیون به دست آمده از اولین طرح
scale.tare(); //مقیاس را روی 0 بازنشانی کنید
}
//================================================ =============================================
// حلقه
//================================================ =============================================
حلقه خالی() {
Serial.print ("وزن: ");
Serial.print(scale.get_units(), 3); //تا 3 نقطه اعشار
Serial.println("kg"); //این را به کیلوگرم تغییر دهید و اگر از پوند پیروی می کنید، ضریب کالیبراسیون را دوباره تنظیم کنید
if (Serial.available())
{
char temp = Serial.read();
if(temp == 't' || temp == 'T')
scale.tare(); //مقیاس را به صفر برگردانید
}
}
//================================================ =============================================
پس از آپلود موفقیت آمیز طرح، مانیتور سریال را باز کنید. پنجره زیر باید نمایان شود که مقدار واقعی اندازه گیری را نشان می دهد:
میتوانید با وارد کردن «t» یا «T» در فضای فرمان، وزن را به 0.000 کیلوگرم (بدون بار») تنظیم کنید و دکمه «ارسال» را فشار دهید. در زیر صفحه نمایش مقدار اندازه گیری 0.000 کیلوگرم را نشان می دهد.
یک شی را روی لودسل قرار دهید، وزن واقعی باید نمایش داده شود. در زیر نمایشگر وزن هنگام قرار دادن جسم 191 گرمی (در مرحله اول برای کالیبراسیون استفاده می شود) نشان داده شده است.
هورا! شما یک ترازو با دقت سه اعشار ساخته اید!
اسناد / منابع
![]() |
ماژول ADC سنسورهای توزین ARDUINO HX711 [pdf] دفترچه راهنمای کاربر سنسورهای توزین HX711 ماژول ADC، HX711، ماژول ADC سنسورهای توزین، ماژول ADC سنسورها، ماژول ADC، ماژول |