ماژول های مبدل آنالوگ به دیجیتال از ابزارهای کاربردی در پروژه های مختلف به شمار می روند. به کمک این ماژول های می توانید سیگنال های آنالوگ را به دیجیتال تبدیل نمایید. ماژول HX711 یکی از ماژول های پرکاربرد در تبدیل سیگنال های آنالوگ به دیجتال است. از عمده کاربردهای این ماژول می توان به راه اندازی سنسورهای لود سل(وزن) اشاره نمود. این سنسور قابلیت ایجاد پل واتستون را برای راه اندازی سنسور لود سل در خود جای داده است. از طرف دیگر این سنسور دارای رابط سریال I2C جهت ارتباط با میکروکنترلرهاست. جهت راه اندازی و کار با این سنسور کتابخانه تحت آردوینو توسعه یافته است. بدین ترتیب به سادگی و در کوتاهترین زمان ممکن می توانیم این ماژول را راه اندازی کنیم. در این آموزش به تحلیل و بررسی این کتابخانه می پردازیم. در ادامه با مرجع تخصصی آردوینو به زبان فارسی ، دیجی اسپارک همراه باشید.
نصب کتابخانه HX711
به منظور استفاده از کتابخانه HX711.h، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه سنسور شتاب سنج با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.
مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارت hx711 را تایپ کنید. پس از چند لحظه با تصویر زیر رو به رو می شوید. در این مرحله، کتابخانه مشخص شده با کادر قرمز رنگ را با کلیک بر روی گزینه install، نصب کنید.
الزامات و نکات فنی در راه اندازی کتابخانه
کتابخانه HX711 برای برد های آردوینو توسعه یافته است؛ اما به نظر می رسد که این کتابخانه برای بردهای ESP نیز قابلیت استفاده داشته باشد. در این کتابخانه توابعی جهت اندازه گیری وزن در نظر گرفته شده است. از طرفی دیگر، این کتابخانه دارای توابعی جهت محاسبه قیمت برای وزن است. بدین ترتیب به کمک این کتابخانه شما می توانید به سادگی ترازوی دیجیتال با قابلیت محاسبه قیمت، طراحی و پیاده سازی کنید. در ادامه، دو جدول زیر وضعیت پایه های ماژول HX7411 را در مدل های مختلف، نشان می دهد.
HX711 Pin | Color |
E+ | red |
E- | black |
A- | white |
A+ | green |
B- | not connected |
B+ | not connected |
HX711 Pin | Color |
E+ | red |
E- | black |
A- | blue |
A+ | white |
B- | not connected |
B+ | not connected |
در رابطه با سنسور HX711، توجه داشته باشید که A+ و A- دارای گین ۱۲۸ یا ۶۴ و B+ و B- دارای گین ۳۲ هستند. پس از بررسی نکات فنی، نوبت به شرح و تحلیل توابع کلیدی می رسد. قسمت بعدی مختص این موضوع است.
تحلیل توابع کلیدی کتابخانه hx711
در این قسمت به تحلیل و بررسی توابع کلیدی کتابخانه hx711 می پردازیم. جدول زیر شرح این توابع را نمایش می دهد. در این جدول، ورودی ها از سمت چپ به راست ورودی اول، دوم، سوم …. خوانده می شوند.
شرح | ورودی ها | تابع |
به کمک این تابع مبدل ADC راه اندازی می گردد. در ورودی اول پایه sda (دیتا) و ورودی دوم scl (کلاک)ارتباط سریال I2C برقرار می شود. | ورودی اول از نوع بدون علامت ۸ بیتی
ورودی دوم از نوع بدون علامت ۸ بیتی |
void begin(uint8_t dataPin, uint8_t clockPin) |
این تابع آمادگی سنسور لود سل جهت خواندن داده را کنترل م یکند. در صورت آماده بودن، خروجی true خواهد شد. | بدون ورودی | bool is_ready() |
به کمک این تابع مدت زمان انتظار برای آماده شدن سنسور لود سل تعیین می گردد. مقدار پیشفرض(در صورت عدم تعیین ورودی) صفر است. | ورودی از نوع بدون علامت ۳۲ بیتی | void wait_ready(uint32_t ms = 0) |
به کمک این تابع مدت زمان انتظار و تعداد دفعات جهت انتظار تعیین می گردد. به عنوان مثال در صورتیکه ورودی نخست ۵ و ورودی دوم ۱۰۰۰ تعیین شود، برنامه برای ۵ بار و برای مدت ۱۰۰۰ میلی ثانیه(یک ثانیه) منتظر پاسخ باقی می ماند.
در صورتیکه برای این تابع ورودی تعیین نشود، ورودی نخست ۳ و ورودی دوم ۰ خواهد شد. |
ورودی اول از نوع بدون علامت ۸ بیتی
ورودی دوم از نوع بدون علامت ۳۲ بیتی |
bool wait_ready_retry(uint8_t retries = 3, uint32_t ms = 0) |
به کمک این تابع مقدار آنالوگ خوانده شده و در خروجی قرار می گیرد. | بدون ورودی | float read() |
به کمک این تابع می توانیم ورودی آنالوگ را به تعداد مشخص شده در ورودی خوانده و میانگین آن را در خروجی تابع داشته باشیم. تعداد فعالت خواندن در ورودی تعیین می گردد. در صورت عدم تعیین ورودی، مقدار ۱۰ فرض خواهد شد. | ورودی از نوع بدون علامت ۸ بیتی | float read_average(uint8_t times = 10) |
خاموش کردن ماژول HX711 و قرار دادن آن در حالت کم مصرف | بدون ورودی | void power_down() |
روشن کردن ماژول و قرار دادن در حالت کاری عادی | بدون ورودی | void power_up() |
به کمک این تابع می توان مقیاس اندازه گیری را تعیین نمود. مقدار پیشفرض بدون قرار دادن ورودی ۱ خواهد بود. برای سنسور وزن تا ۵ کیلو این مقدار ۴۲۰٫۰۹۸۳ و برای ۲۰ کیلو این مقدار باید ۱۲۷٫۱۵ تعیین گردد. | ورودی از نوع float | void set_scale(float scale = 1.0) |
به کمک این تابع می توان وزن جسم را اندازه گیری شده را بدست آورد. ورودی این تابع تعداد دفعات جهت خواندن و میانگین گیری از وزن را نشان می دهد. مقدار پیشفرض ورودی ۱ بوده که در صورت عدم تعیین ورودی، این عدد لحاظ خواهد شد. | ورودی از نوع بدون علامت ۸ بیتی | float get_units(uint8_t times = 1) |
به کمک این تابع آفست در اندازه گیری صفر خواهد شد. این تابع پس از set_scale فراخوانی می شود. ورودی این تابع تعداد دفعات در خواندن وزن را تعیین می نماید. | وردی از نوع ۸ بیتی بدون علامت | void tare(uint8_t times = 10) |
پس از مشاهده و تحلیل توابع کلیدی و کاربردی، نوبت به اجرای یک نمونه برنامه می رسد. در قسمت بعدی به این موضوع می پردازیم.
اجرای یک نمونه برنامه
در این قسمت به اجرای یک نمونه برنامه با کتابخانه HX711 می پردازیم. در این نمونه برنامه وزن اندازه گیری شده و در سریال مانیتور نمایش داده می شود.
#include "HX711.h" HX711 scale; //ایجاد یک شی از کلاس کتابخانه uint8_t dataPin = 6; //تعیین پایه ۶ به عنوان پایه دیتا ارتباط I2C uint8_t clockPin = 7; //تعیین پایه ۷ به عنوان پایه کلاک ارتباط I2C volatile float f; void setup() { Serial.begin(115200); scale.begin(dataPin, clockPin); //راه اندازی سنسور scale.set_scale(420.0983); //تنظیم مقیاس scale.tare(); //به کمک این تابع } void loop() { f = scale.get_units(5);// به کمک این تابع وزن را ۵ بار خوانده و میانگین آن را محاسبه می کنیم. Serial.println(f); delay(250); }
لوازم مورد نیاز
جمع بندی
در این آموزش به تحلیل و بررسی کتابخانه HX711.h جهت راه اندازی و کار با ماژول مبدل ADC با همین نام پرداختیم. ماژول مبدل آنالوگ به دیجیتال HX711، یک ماژول کاربردی جهت تبدیل سیگنال های آنالوگ به دیجیتال است. از این ماژول به طور خاص در راه اندازی سنسورهای لود سل استفاده می شود، چراکه این ماژول دارای پل واتستون داخلی جهت راه اندزای و کار با این سنسور است. در این آموزش به تحلیل و بررسی کتابخانه این ماژول پرداختیم؛ توابع کلیدی را بررسی کردیم و یک نمونه برنامه جهت آشنایی با توابع، اجرا نمودیم.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام وقت بخیر. بنده پروزه را بسته و وقتی وزن خوانده میشود درحد ۲۰ تا ۵۰ گرم خطا و دستور tale خروجی وزن را کاملا صفر نمیکند.
سلام و متشکرم
آیا پیش از اندازه گیری کالیبراسیون را انجام داده اید؟
با کلیک بر روی این لینک آموزش آن را مطالعه کنید.
سلام این ماژول را میشه با stm 32 f103 بلو پیل در محیط اردینو ide راه اندازی کرد
سلام
این مورد را امتحان نکرده ام، تقاضا داریم سایر دوستان تجربه خود را به اشتراک بگذارند