ساخت ترازو دیجیتالی با آردوینو (اندازه گیری وزن)

محتویات
سلام. پروژه ساخت ترازو دیجیتالی با آردوینو (اندازه گیری وزن با Arduino) را آماده کردیم.
آموزش راه اندازی ترازو با آردوینو و لود سل
در این پروژه آردوینو میخواهیم با اتصال لود سل و HX711 به آردوینو وزن را انداره گیری کنیم. ما در بسیاری از مغازه ها و سکو های توزین دیده ایم که با قرار دادن جسم بر روی سکو، وزن به سرعت نشان داده میشود. ما در این پروژه Arduino با استفاده از Load Cell در حال ساخت همان نوع دستگاه توزین هستیم که میتواند تا 40 کیلو را وزن کند. همچنین در صورت استفاده از Load cell های قوی تر میتوانید وزن های بسیار بیشتری را اندازه گیری کنید.
نحوه کار پروژه اندازه گیری وزن Arduino ساده است. قبل از شروع جزئیات ، ابتدا باید این سیستم را برای اندازه گیری صحیح وزن کالیبره کنیم. وقتی کاربر آن را خاموش کند ، سیستم به طور خودکار شروع به کالیبراسیون می کند. و اگر کاربر می خواهد آن را به صورت دستی کالیبره کند، دکمه را باید فشار دهد. ما برای کالیبراسیون یک تابع void calibrate () ایجاد کرده ایم.
فیلم زیر به شما در درک نحوه کار این پروژه کمک میکند.
برای کالیبره کردن این ترازو، بعد از روشن کردن دستگاه منتظر باشید تا پیام 100g بر روی ال سی دی نمایش داده شود سپس یک وزنه 100 گرمی را روی لودسل قرار دهید. پس از چند ثانیه کالیبراسیون انجام میشود و میتوانید با توجه به ظرفیت Load Cell خود وزنه دلخواه را قرار دهید.
در این پروژه از آردوینو برای کنترل کل فرآیند استفاده کرده ایم. Cell Load وزن را حس می کند وو ولتاژ آنالوگ الکتریکی را به ماژول تقویت کننده بار HX711 وارد می کند. HX711 یک آنالوگ به دیجیتال 24bit است که باعث تقویت و تبدیل خروجی سلول Load به دیجیتالی می شود. سپس این مقدار تقویت شده به آردوینو تغذیه می شود. اکنون آردوینو خروجی HX711 را محاسبه کرده و آن را به مقادیر وزن بر حسب گرم تبدیل کرده و آن را بر روی LCD نشان می دهد. از دکمه برای کالیبراسیون سیستم استفاده می شود.
فیلم عملکرد پروژه در انتهای صفحه قرار داده شده است.
پروژه های دیگر ما با لودسل :
- پروژه ظرف هوشمند رزبری پای با هشدار ایمیل و نمایش در اینترنت
- پروژه باز شدن اتوماتیک درب با سنسور وزن و رزبری پای پایتون
ماژول سنسور وزن Load Cell و HX711
Load Cell مبدل است که نیرو یا فشار را به خروجی الکتریکی تبدیل می کند. بزرگی این خروجی الکتریکی به طور مستقیم با نیرویی که اعمال می شود متناسب است. مقاومت مؤثر این سنسور ها در اثر افزایش فشار و نیروی وارده تغییر می کند. سلول بار (Load Cell) در محدوده های مختلفی از قبیل 5 کیلوگرم ، 10 کیلوگرم ، 100 کیلوگرم و … وجود دار ، در اینجا ما برای تست پروژه از یک لودسل با قابلیت وزن 40 کیلو گرم استفاده میکنیم.
سیگنال های الکتریکی تولید شده توسط سلول بار در چند میلی ولت است، بنابراین آنها باید توسط تقویت کننده، تقویت شوند و به همین دلیل از ماژول HX711 استفاده میکنیم. ماژول حسگر توزین HX711 دارای تراشه HX711 است که یک مبدل آنالوگ به دیجیتال با دقت بالای 24 بیت است. HX711 دارای دو کانال ورودی آنالوگ است و با برنامه نویسی این کانال ها می توانیم به 128 دست پیدا کنیم.
لودسل با استفاده از چهار سیم به HX711 متصل میشود.
- سیم قرمز به E + وصل شده است
- سیم سیاه به E وصل شده است
- سیم سفید به A- وصل شده است
- سیم سبز یا آبی به A + وصل شده است
فیکس کردن سطح و لودسل
برای اینکه پروژه ما به خوبی کار کند، باید لودسل را در زیر زمین کنار درب نصب کنیم تا به خوبی وزن شخص را حس کند. ما در اینجا در حال تست پروژه هستیم بنابراین Load Cell را در زیر یک مقوای سخت قرار میدهیم. مقوای سخت در اینجا به عنوان یک سکو در نظر گرفته میشود که وزن را حس میکند.
توضیحات مدار ترازو با آردوینو
اتصالات این پروژه آسان است و شماتیک مدار در تصویر زیر آورده شده است. پین های RS ، EN ، d4 ، d5 ، d6 و d7 ال سی دی کاراکتری به ترتیب به پین شماره 8 ، 9 ، 10 ، 11 ، 12 و 13 آردوینو متصل شده اند. پین DT و SCK ماژول HX711 مستقیما به پین های A0 و A1 آردوینو متصل می شوند.
قطعات مورد نیاز
- آردوینو اونو
- سلول بار (40kg)
- ماژول تقویت کننده سلول بار HX711
- LCD 16×2
- اتصال سیمها
- کابل یو اس بی
- تخته نان
- پیچ و مهره ، قاب و پایه
برنامه نویسی ترازو با آردوینو
بخشی از برنامه نویسی این پروژه برای مبتدیان کمی پیچیده است. در این پروژه از هیچ کتابخانه ای برای ارتباط حسگر بار HX711 با آردوینو استفاده نکردیم. اگرچه برخی از کتابخانه ها برای این منظور وجود دارند. کد کامل پروژه در انتهای صفحه در فایل دانلودی قرار گرفته است. در اینجا بعضی از قسمت های کد را توضیح میدهیم.
در ابتدا کتابخانه کریستال مایل را برای پیکربندی ال سی دی کاراکتری فراخوانی میکنیم و سپس پین های HX711 را تعیین میکنیم. پین دکمه و برخی متغیر ها نیز تعریف میشوند.
#include <LiquidCrystal.h> // کتابخانه ال سی دی کاراکتری LiquidCrystal lcd(8, 9, 10, 11, 12, 13); // پین های ال سی دی کاراکتری #define DT A0 // پین های HX711 #define SCK A1 #define sw 2 long sample=0; // تعریف متغیر ها float val=0; long count=0;
پس از آن ، ما عملکرد زیر را برای خواندن داده ها از ماژول HX711 ایجاد کرده ایم.
unsigned long readCount(void) { unsigned long Count; unsigned char i; pinMode(DT, OUTPUT); digitalWrite(DT,HIGH); digitalWrite(SCK,LOW); Count=0; pinMode(DT, INPUT); while(digitalRead(DT)); for (i=0;i<24;i++) { digitalWrite(SCK,HIGH); Count=Count<<1; digitalWrite(SCK,LOW); if(digitalRead(DT)) Count++; } digitalWrite(SCK,HIGH); Count=Count^0x800000; digitalWrite(SCK,LOW); return(Count); }
سپس ما ال سی دی را تنظیم میکنیم و نوع پین ها را تعیین میکنیم.
void setup() { Serial.begin(9600); pinMode(SCK, OUTPUT); pinMode(sw, INPUT_PULLUP); lcd.begin(16, 2); lcd.print(" Weight "); lcd.setCursor(0,1); lcd.print(" Measurement "); delay(1000); lcd.clear(); calibrate(); }
در مرحله بعدی (void loop)، داده هایی از ماژول HX711 را میخوانیم و این داده ها را به وزن (گرم) تبدیل کرده و به LCD ارسال می کنیم.
void loop() { count= readCount(); int w=(((count-sample)/val)-2*((count-sample)/val)); Serial.print("weight:"); Serial.print((int)w); Serial.println("g"); lcd.setCursor(0,0); lcd.print("Weight "); lcd.setCursor(0,1); lcd.print(w); lcd.print("g "); if(digitalRead(sw)==0) { val=0; sample=0; w=0; count=0; calibrate(); } }
ما یک تابع کالیبراسیون ایجاد میکنیم که با قرار دادن وزنه 100 گرمی بر روی Load Cell ، سیستم را کالیبره میکند.
void calibrate() { lcd.clear(); lcd.print("Calibrating..."); lcd.setCursor(0,1); lcd.print("Please Wait..."); for(int i=0;i<100;i++) { count=readCount(); sample+=count; Serial.println(count); } ..... .... ..... .....
در اینجا ما برای اندازه گیری وزن از لودسل و Hx711 و آردوینو استفاده کردیم.
موارد موجود در فایل : شماتیک کامل مدار ، سورس کامل
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
سلام مهندس، ممنون از مطالب مفیدتون
امکانش هست این پروژه را بدون hx711 انجام داد و سیگنال های لودسل را با آردوئینو به سیگنال دیجیتال تبدیل کنیم؟
در صورت امکان شماره تماس را کانال ارتباطی به ایمیل من ارسال فرمائید تا با شما تماس بگیرم.
تشکر
سلام عزیز
در انجمن در ارتباط باشید
سلام. تشکر از توضیحات عالی در مورد پروژه.
من میخوام یکبار کالیبره کنم و با هر بار روشن شدن دستگاه نیاز به کالیبره نباشه. لطفا راهنمایی می فرمائید؟
سلام وخسته نباشید
من نیاز به پروژه ای دارم که نزدیک به همین پروژه هست
لطفا شماره تماس به ایمیلم ارسال کنید تا باهاتون تماس بگیرم
هزینش هم برام مهم نیست ، چون میخام یک سازه صنعتی بسازم میخام براش هزینه کنم
ممنونم
یه سوال داشتم استاد
ایا امکان این هست که یک ترازو بسازیم که ۹ وزن مختلف را در حافظش ذخیره کند؟
مثلا وزن ۱ کیلو در زمین ۱ کیلو است ولی در مریخ و زهره و سایر کرات منظومه فرق داره امکانش هست چنین وسیله ای بسازم برای آموزش دانش آموزان؟
سلام وقت بخیر
بله میتونید امکانش هست
درود وقت به خیر مدار به صورت کامل بسته شده ولی خروجی روی مانیتور نداریم اتصالات چک شده احتمالا برنامه از اردینو پریده برای نصب چه کاری باید انجام بدم
سلام عزیز
مدار را چک کنید در صورت نیاز دوباره کابل را به برد متصل کنید و کد را آپلود کنید.
سلام عرض ادب من این پروژه رو انجام دادم دقیق هستش برای آموزش خوبه ،متشکرم جناب رحیمی ،
سلام عزیز
خوشحالم که این مقاله براتون مفید بوده
سلام.لطفا در واتساپ یا تلگرام به من پیام بدید درباره این پروژه سوال داشتم 090*1420
سلام عزیز
سوالات را در انجمن مطرح کنید.
سلام
خسته نباشید
ممنون از مطالب خوبتمن
یه سوالی دارم
این وروژه ترازو را چه شکلی با آردوینو مگا درست کنم ؟
مدارش یکي؟
کد برنامه نویسی ش فرق داره یانه؟
سلام عزیز
ممکنه نیاز به تغییرات جزئی باشه
سلام مهندس رحیمی عزیز ممنون اززحماتتون در راه اموزش جوانان قابل تقدیر وتشکراست
سئوالی داشتم اینکه میشه رو ترازوی ۳کیلویی لودسل ۵کیلو بست . چون لودسل ۳کیلو گیرم نمیاد ممنون میشم پاسخم را لطف کنیدهمیشه تندرست باشی
سلام.ممنون از آموزش خوبتون.یک سوال داشتم اگه بخوام ترازو بسیار حساس باشه و وزنهای خیلی پایین نشون بده برای طلا و زعفران باید کدوم قسمتو تغییر بدم.
سلام عزیز، باید سنسور وزن رو تغییر بدید و برنامه نویسی رو هم برای سنسور جدید انجام بدید
سلام ما می تونیم به جای ال سی دی کاراکتری مانیتور بزاریم
سلام خسته نباشيد، يه سوال داشتم من اين ترازو رو اماده كردم همه چيش درسته اما ال سي دي روي حالتي كه ميزنه وزنه ١٠٠ گرمي رو براي كاليبره قرار بديد ميمونه و با اينكه وزنه ١٠٠ گرمي رو ميزارم اما تغييري نميكنه، ممنون ميشم راهنماييم كنيد
ممنون میشم در صورت امکان راهنماییم بفرمایید…
سلام خسته نباشید بنده یک ترازوی دیجیتالی دارم که پایه های پلاستیکی که مربوط به کرنش سنج هست یه خورده در اثر وزن زیاد ساییده شدن به همین دلیل وزن دقیق رو نشون نمیده چه طور میتونم چهارتا پایه یک اندازه جایگزین کنم ممنون از اطلاعات خوبتون
سلام و وقت بخیر ممنون از اموزش بسیار خوبتون
یه سوال داشتم؛ چجوری میتونیم هم زمان روی ال سی دی اندازه ی وزنه ها رو هم به گرم , هم به کیلوگرم مشاهده کنیم؟
ممنون میشم راهنماییم کنید.
سلام عزیز، بسیار ساده هست فقط از دستور پرینت باید استفاده کنید و تبدیل واحد رو انجام بدید. دوره آموزش آردوینو به شما در انجام این کار کمک زیادی میکنه.
سلام من بعداز قراردادن وزنه 100گرمی بازهم همون پیغامput100g&wait. روی ال سی دی نمایش میده
منم دقیقا مشکلم همینمه ممنون میشم راهنمایی بفرمایید…
با سلام. من مدار رو مثل شماتیک بستم و دقیقا مثل این پروژه انجام دادم ولی فقط عدد صفر رو نشون میده. علتش چیه. ممنون از ارائه ی خوب تون
سلام، میتونید از ال سی دی استفاده نکنید، نشان دادن عدد صفر میتونه به دلیل اتصالات اشتباه یا مشکل در قطعات باشه
سلام استاد رحیمی ممنون در اموزش خوبتون
اگر بخوام از 4 تا لودسل 50k استفاده کنم ک بتونم تا 200k نمایش بدم باید برای هر 4 تا ی دونه ماژول hx711 قرار بدم؟ یعنی جمعا 4 تا ماژول؟ اصلا کلا باید چ تغییراتی اعمال کنم به شماتیک؟
ممنون از پاسخگوییتون
سلام وقت بخیر. ممنون از اموزش خوبتون. من از آموزش شما استفاده کردم فقط یه مشکلی دارم، نمایشگر در حالت بی بار هم عدد نشون میده و خود به خود کم یا زیاد میشه، شما راه حلی برای این مشکل دارین؟ ممنون میشم اگه راهنمایم کنید.
سلام
خدمت استاد رحیمی
تشکر وقدردان زحمات شما هم وطن عزیزم که دانش خودرا به رایگان درخدمت هم وطن ها قرار داده اید بسیار سپاسگذارم
امیدوارم درتمام مراحل زنگی موفق باشید
ارادمند س.س
سلام جناب. خوشحالم که راضی بودین.
سلام من این مدار رو بستم اما چیزی رو نشون نمیده مدار هم طبق شما تیک بسته شده
سلام جناب. چه چیزی در LCD مشاهده میکنید؟
سلام خسته نباشيد اين پروژه رو ساختم و از چهار لود سل استفاده كردم كه جمعا١٨٠كيلو رو ميكشه فقط يه مشكل داشتم كه عدد وزن منفى نشان ميده و دقيق هم نيست به نظرتون مشكل از كجا هست
سلام جناب. از یک لودسل استفاده کنید و دقیقا مشابه با شماتیک پروژه رو انجام بدید بعد بررسی کنید.
برای منفی نشون دادن احتمالا لودسل رو زیر و رو نصب کردید
با سلام
مطالب موجود در سایت جالب و کاربردی هستند
ضمن تشکر میخاستم ببینم این مدارها تست شده هستند؟
میخاستم از یکی از این مدارات به عنوان یک قسمت از ست سنسورهای اموزشی دانشگاهی استفاده کنم از تظر شما منعی نداره؟
با تشکر فراوان
سلام جناب. ممنونم از لطفتون. بله مدار ها تست شده هستند. هیچ مشکلی نداره میتونید استفاده کنید. همچنین در صورتی که مایل باشید میتونیم در زمینه تولید محتوای آموزشی و در کل حوزه الکترونیک با هم همکاری داشته باشیم. موفق باشید.