تحلیل OpenScale؛ از لودسل و HX711 تا یک ترازوی USB
در طراحی OpenScale، مسیر تغذیه، فیلتر ورودی و زمانبندی خواندن لودسل تعیین میکنند عدد وزن چقدر قابل اعتماد باشد. شماتیک و کد پروژه را بررسی میکنیم و چند اصلاح مشخص پیشنهاد میدهیم.
فهرست مطالب
برای اینکه یک ترازو وزن را روی کامپیوتر نشان بدهد، فقط به حسگر نیاز نداریم. باید تغییر بسیار کوچک خروجی حسگر را بخوانیم، آن را به عدد قابل استفاده تبدیل کنیم و اثر نصب، تغذیه و کالیبراسیون را هم بشناسیم. پروژهٔ متنباز OpenScale از SparkFun این مراحل را در یک برد جمع کرده است. با دنبالکردن شماتیک و کد آن میتوان دید چرا انتخاب چند مقاومت و مسیر تغذیه، بهاندازهٔ برنامهنویسی در نتیجهٔ اندازهگیری اثر دارد.
مبنای این بررسی، نسخهٔ مشخص پروژه در گیتهاب با شناسهٔ 7c0e0191c6e8، مربوط به ۱۵ مه ۲۰۱۹ است؛ سازندهٔ پروژه SparkFun Electronics است. اعداد مثالها محاسبات فرضیاند. کد بدون تغییر کامپایل شده، اما این بررسی شامل ساخت برد یا آزمایش فیزیکی ترازو نیست.
خرید برد و قطعه؛ این دو را جای هم نگیریم
| محصول دقیق | لینک و وضعیت مشاهدهشده | تفاوت مهم |
|---|---|---|
| برد کامل SparkFun OpenScale، کد SEN-13261 | صفحهٔ سازنده و همین برد در Digi-Key، با شمارهٔ 13261. در صفحهٔ سازنده هم عبارت موجود و هم گزینهٔ سفارشِ با تأخیر دیده شد؛ زمان تحویل قطعی نیست. فروشندهٔ ایرانی با صفحهٔ مستقیمِ منطبق برای این برد تأیید نشد. | برد شامل خوانشگر لودسل، پردازنده و ارتباط USB است؛ خودِ لودسل جداست. |
| تراشهٔ خام HX711، پکیج SOP-16 | آفتاب رایانه، صفحهٔ HX711؛ صفحه در ۲۴ اکتبر ۲۰۲۶ موجودی ۳۴ عدد نشان میداد. | این کالا نه برد OpenScale است و نه ماژول آماده؛ برای استفاده به مدار و مونتاژ نیاز دارد. |
وضعیت فروشگاهها در ۲۴ اکتبر ۲۰۲۶ بررسی شده است؛ نمایش موجودی، تضمین موجودی یا اصالت نیست. برای فهم تحلیل، خرید قطعه لازم نیست.

مسئله چیست و لودسل دقیقاً چه چیزی را حس میکند؟
فرض کنید میخواهیم کاهش مواد داخل یک مخزن کوچک را در طول روز ثبت کنیم. حسگر باید زیر سازه قرار بگیرد تا نیروی واردشده از آن عبور کند. لودسل یک قطعهٔ مکانیکی حساس به نیرو است: بار، فلز آن را اندکی تغییر شکل میدهد و اجزای مقاومتیِ چسبیده به فلز، این تغییر شکل را به تغییر ولتاژ تبدیل میکنند. این ولتاژ همان «سیگنال» مورد نظر ماست؛ یعنی مقدار الکتریکیای که اطلاعات نیرو را حمل میکند.
در لودسل پلکامل، چهار مقاومت به شکل یک پل به هم متصلاند. دو سیم به پل برق میرسانند و دو سیم دیگر اختلاف ولتاژ کوچکی را برای اندازهگیری بیرون میآورند. این اختلاف معمولاً در حد میلیولت است؛ هر میلیولت یکهزارم ولت است. پردازنده، قطعهٔ برنامهپذیری است که دستورهای نرمافزار را اجرا میکند؛ اتصال مستقیم این دو سیم به یک پردازندهٔ معمولی، وزن دقیق به دست نمیدهد. ابتدا HX711 اختلاف ولتاژ را تقویت و به عدد دیجیتال تبدیل میکند؛ چنین مبدلی را ADC مینامند. سپس پردازنده با صفر و ضریب کالیبراسیون، عدد را به جرم تخمینی تبدیل میکند. کالیبراسیون در اینجا یعنی تنظیم همین تبدیل با یک جرم معلوم.
ترازو در اصل نیرو را حس میکند؛ نمایش کیلوگرم پس از کالیبراسیون با جرم معلوم و در شرایط نصب انجام میشود. وزن سینی هم از ظرفیت مکانیکی حسگر کم میکند، حتی اگر نمایشگر را با سینی خالی صفر کنیم. برای سیمبندی و ساخت یک نمونهٔ ساده، آموزش لودسل و HX711 را کنار این تحلیل ببینید.

سهسیم و چهارسیم بودن را فقط از روی نام «سنسور وزن» یکی نگیرید. بعضی حسگرهای سهسیم، بخشی از یک پلاند و باید با قطعات دیگر پل کامل بسازند. رنگ سیمها هم استاندارد مشترک همهٔ سازندگان نیست؛ نقشهٔ همان حسگر تعیینکننده است.
از لودسل تا USB؛ هر بخش چه کاری انجام میدهد؟
تراشه، مجموعهای از اجزای الکترونیکی کوچک در یک بسته است. در شماتیک، هر جزء با شناسهای مثل U1 یا R3 مشخص میشود. مقاومت، عبور جریان را محدود میکند؛ خازن بار الکتریکی ذخیره میکند و در برابر تغییر ولتاژ واکنش نشان میدهد؛ سلف در برابر تغییر جریان واکنش نشان میدهد. ترانزیستور هم امکان کنترل عبور جریان را میدهد. در ادامه «ریل تغذیه» یعنی خط مشترکی که برق چند جزء را تأمین میکند و «بهره» میزان تقویت سیگنال است.
| جزء در شماتیک | نقش در حل مسئله | نکتهٔ طراحی |
|---|---|---|
| تراشهٔ U1: HX711، شانزدهپایه | تقویت اختلاف ولتاژ پل و تبدیل آن به عدد ۲۴ بیتی. | بهرهٔ کانال A برابر ۱۲۸ یا ۶۴ و کانال B برابر ۳۲ است؛ ۲۴ بیت بهتنهایی دقت ترازو را تعیین نمیکند. |
| تراشهٔ U4: ATmega328P، پکیج TQFP-32 | اجرای برنامهٔ خواندن، کالیبراسیون، منو و گزارش. | در این برد با مرجع کلاک ۱۶ مگاهرتز کار میکند؛ یعنی مبنای زمانبندی اجرای دستورها. |
| تراشهٔ U6: FT231XS، پکیج SSOP-20 | تبدیل ارتباط سریال پردازنده به USB برای کامپیوتر؛ در ارتباط سریال، بیتهای داده پشتسرهم فرستاده میشوند. | دادهٔ HX711 مستقیماً USB نیست؛ این دو مرحلهٔ ارتباطی جدا هستند. |
| تراشهٔ U3: TMP102، پکیج SOT563 | خواندن دمای محل برد. | در مدار روی ریل ۳٫۳ ولت است؛ کد دما را گزارش میکند، نه اینکه خودکار وزن را جبران کند. |
| ترانزیستور Q3 و مقاومتهای R16/R17 | ساخت تغذیهٔ آنالوگِ تنظیمشده برای بخش خوانش و تحریک پل. | ولتاژ خروجی به نسبت مقاومتها و فضای لازم بین ورودی و خروجی وابسته است. |
| مقاومتهای R3/R4 و خازن C8 | تضعیف بخشی از اختلالهای سریعِ ورودی تفاضلی. | این فیلتر بهتنهایی حذفکنندهٔ نویز ۵۰ هرتز نیست. |
این جدول از شماتیک همین نسخه خوانده شده است. فایل PCB متناظر هم در دسترس است؛ PCB همان بردی است که قطعات و مسیرهای مسی اتصال روی آن قرار میگیرند.
تغذیهٔ لودسل چرا حدود ۴٫۳ ولت است؟
در شماتیک، HX711 با کمک ترانزیستور PNP مدل MMBT4403، تغذیهٔ آنالوگ را تنظیم میکند. دو مقاومت ۲۰ کیلواهم و ۸٫۲ کیلواهم مقدار اسمی را تعیین میکنند. با مرجع معمول ۱٫۲۵ ولتِ دیتاشیت، محاسبه چنین است:
Vanalog ≈ 1.25 V × (1 + 20 kΩ / 8.2 kΩ)
Vanalog ≈ 4.299 V
این عدد مقدار اسمیِ محاسبهشده است؛ تلرانس قطعات، بار پل و افت ورودی میتوانند مقدار واقعی را تغییر بدهند. خروجی تنظیمشده بعد از سلف L1 با مقدار ۳٫۳ میکروهانری به تحریک لودسل میرسد. در فایل شماتیک، نام ریل قبل از سلف RIPUP@ و نام ریل تحریک بعد از آن AVDD است؛ نام یک شبکه را با نام پایهٔ تراشه اشتباه نگیریم.
نکتهٔ مهم این است که منبع آنالوگِ مبدل و تحریک پل از همین زنجیره تغذیه میشوند. اگر نسبت خروجی پل به ولتاژ تحریک ثابت بماند، تغییر مشترک تغذیه میتواند تا حدی در نسبت اندازهگیری خنثی شود؛ به این روش اندازهگیری نسبتی میگویند. این مزیت جای تغذیهٔ سالم را نمیگیرد: افت شدید، اشباع، اختلاف افت کابل و نویز غیرمشترک همچنان مسئله میسازند. رابطه و شرایط مدار تنظیمکننده در دیتاشیت HX711 آمده است.
یک مثال عددی: ۱۰ کیلوگرم چگونه به چند میلیولت تبدیل میشود؟
برای یک مثال فرضی، لودسلِ ۲۰ کیلوگرمی با حساسیت 2 mV/V و تحریک ۴٫۳۰ ولت را در نظر بگیریم. معنی حساسیت این است که در بار نامی و با هر یک ولت تحریک، خروجی پل حدود دو میلیولت تغییر میکند. با فرض خطیبودن و صرفنظر از آفست اولیه، یعنی خروجیِ بدون بار:
Full load: 2 mV/V × 4.30 V = 8.60 mV
At 10 kg: (10 / 20) × 8.60 mV = 4.30 mV
در بهرهٔ ۱۲۸، حد اسمیِ ورودی تفاضلی HX711 با تغذیهٔ آنالوگ ۴٫۳۰ ولت از رابطهٔ ±0.5 × AVDD / gain حدود مثبت و منفی ۱۶٫۸ میلیولت میشود. پس دامنهٔ ۸٫۶ میلیولتِ این مثال داخل محدوده است؛ البته ولتاژ مشترک دو ورودی و آفست حسگر هم باید در محدودهٔ دیتاشیت بمانند. داخل بودن دامنه، به معنی رسیدن به دقت مشخص بر حسب گرم نیست.
اگر سینی به قاب گیر کند، بخشی از نیرو اصلاً به لودسل نمیرسد. اگر لودسل با گرمشدن تغییر کند، صفر جابهجا میشود. هیچکدام با اضافهکردن رقم اعشار حل نمیشوند. تفاوت دقت، تفکیکپذیری و کالیبراسیون در انتخاب انتظار واقعی از ترازو مهم است.
فیلتر ورودی واقعاً چه چیزی را حذف میکند؟
در هر خط ورودی یک مقاومت ۱۰۰ اهم و بین دو خط یک خازن ۰٫۱ میکروفاراد قرار دارد. برای سیگنال تفاضلی، جریان از مجموع دو مقاومت عبور میکند. اگر فعلاً مقاومت داخلی لودسل را نادیده بگیریم، فرکانس قطع تقریبی این فیلتر چنین میشود:
fc ≈ 1 / [2π × (100 Ω + 100 Ω) × 0.1 µF]
fc ≈ 7.96 kHz
فرکانس، تعداد تکرار یک تغییر در ثانیه است؛ ۵۰ هرتز یعنی ۵۰ بار در ثانیه. فرکانس قطع، مرز تقریبی شروع افت محسوسِ دامنه در یک فیلتر ساده است. عدد نزدیک ۸ کیلوهرتز نشان میدهد نباید این قطعات را بهتنهایی مسئول حذف برق شهرِ ۵۰ هرتز بدانیم. مقاومت خروجی پل هم در مدار واقعی به این محاسبه اضافه میشود. رد اختلال ۵۰/۶۰ هرتز، نرخ نمونهبرداری و فیلتر داخلی HX711 بحث جداگانهای است؛ مسیر زمین و نحوهٔ عبور کابل هم اثر دارند.
در PCB این نسخه، مسیرها روی لایههای مسی بالا و پایین دیده میشوند و برای زمین در هر دو لایه ناحیهٔ مسی تعریف شده است. این مشاهده، گواه عبور از آزمون نویز یا سازگاری الکترومغناطیسی نیست. برای بازطراحی، ورودی پل و قطعات فیلتر را نزدیک هم نگه میداریم و مسیر برگشت جریان USB و کلیدزنی را از حلقهٔ حساس ورودی دور میکنیم؛ پیوستگی زمین را هم بیدلیل با شکاف قطع نمیکنیم.
اتصالها؛ کدام سیم کجا میرود؟
در ترمینال لودسل JP11، پایهٔ ۱ تحریک مثبت، پایهٔ ۲ زمین یا تحریک منفی، پایهٔ ۳ سیگنال A−، پایهٔ ۴ سیگنال A+ و پایهٔ ۵ زمین است. اتصال پنجم میتواند برای شیلد کابل، یعنی پوشش رسانای محافظ آن، استفاده شود؛ این ورودی، زوجِ Sense یک لودسل ششسیم نیست. جای فیزیکی پایهٔ ۱ را از فایل برد یا علامت همان نسخه تشخیص بدهید؛ ترتیب این جدول اجازهٔ حدسزدن جهت ترمینال از روی عکس نیست.
رابط HX711 هم I2C نیست و آدرس ندارد. در شماتیک، دادهٔ DOUT به PD2 / D2 پردازنده و کلاک PD_SCK به PD3 / D3 میرود. فایل openscale.h همین اتصال را با DAT=2 و CLK=3 تعریف کرده است؛ اما توضیح بالای فایل اصلی، این دو را برعکس نوشته است. اینجا کد اجرایی و شماتیک با هم سازگارند و ایراد در توضیح سیمبندی است.
دمای TMP102 از مسیر I2C خوانده میشود؛ این رابطِ دوخطی با رابط دوخطی HX711 یکی نیست. ترانزیستورهای BSS138 بین بخش ۵ ولت پردازنده و بخش ۳٫۳ ولت حسگر دما، سطح خطوط I2C را تبدیل میکنند. اگر بخواهیم برد را به پردازندهٔ دیگری وصل کنیم، سازگاری سطح ولتاژ هر خط را جدا بررسی میکنیم؛ نام یک جامپرِ ۳٫۳ ولت، کل برد را خودکار سازگار با ESP32 نمیکند. آموزش تبدیل سطح منطقی این تفاوت را توضیح میدهد.
برنامه چطور عدد خام را به کیلوگرم تبدیل میکند؟
پردازنده در شروع، تنظیمات ذخیرهشده را از EEPROM میخواند؛ EEPROM حافظهای است که پس از قطع برق هم داده را نگه میدارد. سپس صفر و ضریب تبدیل را به کتابخانهٔ HX711 میدهد. در حلقهٔ اصلی، scale.get_units(setting_average_amount) میانگین چند خوانش را با همان صفر و ضریب تبدیل میکند. تنظیم پیشفرضِ تعداد خوانشها در کد، چهار است.
فرض کنیم عدد خامِ سینی خالی ۱۰۰٬۰۰۰ و با جرم مرجع ۵ کیلوگرم، ۵۳۰٬۰۰۰ باشد. ضریب فرضی و یک خوانش بعدی را میتوان بدون داشتن برد حساب کرد:
factor = (530000 - 100000) / 5 kg
factor = 86000 counts/kg
mass = (315000 - 100000) / 86000 = 2.5 kg
این اعداد دادهٔ ثبتشده از پروژه نیستند؛ فقط روش تبدیل را نشان میدهند. صفر باید با سینی خالی و پایدار تعیین شود. جرم مرجع باید معلوم و واحد آن مشخص باشد. بعد از کالیبراسیون با یک جرم، چند جرم دیگر و چند محل قرارگیری بار را هم امتحان میکنیم؛ درست خواندن فقط یک نقطه، خطیبودن کل بازه را ثابت نمیکند.
بخش گزارش خام، اگر فعال شود، دوباره read_average را فراخوانی میکند. بنابراین وزن تبدیلشده و عدد خامِ همان سطر لزوماً حاصل یک مجموعه نمونهٔ مشترک نیستند. برای ثبت دادهٔ دقیقتر، پیشنهاد بهتر این است که یک مجموعه خوانش گرفته شود و عدد خام، وزن، زمان و وضعیت اعتبار، همگی از همان مجموعه ساخته شوند.
نرخ گزارش با سرعت واقعی اندازهگیری یکی نیست
پایهٔ RATE در HX711 نرخ ۱۰ یا ۸۰ نمونه در ثانیه را تعیین میکند. در مدار، R7 این خط را بالا میکشد و جامپر بستهٔ SJ2 آن را به زمین وصل میکند؛ حالت پایین، ۱۰ نمونه در ثانیه است. تغییر تنظیم منو، بهتنهایی وضعیت فیزیکی این پایه را عوض نمیکند.
در ۱۰ نمونه در ثانیه، فاصلهٔ تبدیلهای تازه تقریباً ۱۰۰ میلیثانیه است. میانگین چهار نمونه، پنجرهای در حدود ۰٫۴ ثانیه میخواهد؛ زمان انتظار اولین نمونه، چاپ سریال و خواندن دما هم بر رفتار حلقه اثر دارند. اگر گزارش خام هم فعال باشد، خوانش دوباره زمان بیشتری مصرف میکند. برای دنبالکردن ضربهٔ سریع یا حلقهٔ کنترل تند، این تأخیر را نمیتوان نادیده گرفت.
طبق جدول دیتاشیت، پس از روشنشدن یا تغییر شرایط مرتبط، زمان نشست خروجی در نرخ ۱۰ نمونه حدود ۴۰۰ میلیثانیه و در نرخ ۸۰ نمونه حدود ۵۰ میلیثانیه است. این زمان با فاصلهٔ بین دو گزارش فرق دارد. افزایش میانگین هم پاسخ را آرامتر و کندتر میکند؛ درس فیلتر کردن دادهٔ حسگر به انتخاب این بدهبستان کمک میکند.
سه نکتهای که از کنار هم گذاشتن راهنما و کد روشن میشود
دو منبع ۵ ولت را همزمان وصل نکنیم
در شماتیک، برق USB پس از فیوز بازنشوندهٔ F1 به ریل ۵ ولت میرسد؛ پایهٔ ۵ ولتِ هدر خارجی هم به همین ریل وصل است. بین این دو ورودی، مدار انتخاب منبع یا جلوگیری از برگشت جریان دیده نمیشود. فیوز بازنشونده جریان زیاد را محدود میکند، اما دیود یکطرفه نیست. پس دو منبع همزمان میتوانند به یکدیگر جریان بدهند؛ مقدار و پیامد آن به منابع و کابلها وابسته است و در این بررسی اندازهگیری نشده است.
برای استفادهٔ معمول، یک منبع انتخاب میکنیم. اگر همزمانی USB و تغذیهٔ خارجی لازم باشد، بازطراحی مسیر تغذیه با مدار مناسب جلوگیری از برگشت جریان منطقی است. افزودن یک دیود بدون محاسبه هم راهحل کامل نیست: افت آن ممکن است فضای لازم برای تنظیم تغذیهٔ حدود ۴٫۳ ولت را کم کند. مقدار جریان نامی F1 در رکورد قطعهٔ همین فایل مشخص نشده؛ برای سفارش یا طراحی حفاظتی باید قطعهٔ واقعی و فهرست ساخت کامل شوند.
وجود حسگر دما به معنی جبران خودکار خطای وزن نیست
کد دمای برد و حسگر خارجی اختیاری DS18B20 را گزارش میکند، اما در فرمول تبدیل وزن از آنها استفاده نمیکند. برای جبران، باید خطای همان لودسل و نصب، در دماهای معلوم اندازهگیری و مدل مناسبی تعیین شود. نسبتدادن دقت بهتر به صرف وجود TMP102، از این کد نتیجه نمیشود.
در تابع دمای خارجی، بعد از شروع تبدیل DS18B20 فقط ۱۰۰ میلیثانیه صبر شده است. دیتاشیت این حسگر برای حالت پیشفرضِ ۱۲ بیتی، حداکثر ۷۵۰ میلیثانیه و برای ۹ بیت، ۹۳٫۷۵ میلیثانیه تعیین میکند. در این نسخه، فرمانی برای تنظیم حسگر روی ۹ بیت پیدا نشد. بنابراین تازگی نتیجه پس از ۱۰۰ میلیثانیه در همهٔ حالتها تضمین نیست؛ خوانش CRC هم بررسی نمیشود. CRC عدد کنترلیای است که برای تشخیص خرابی داده به کار میرود.
پیشنهاد اصلاح، انتظار متناسب با تفکیک انتخابشده یا بررسی پایان تبدیل با رعایت روش تغذیهٔ حسگر، سپس کنترل CRC و ثبت وضعیت خطاست. در مسیر TMP102 هم تعداد بایتهای دریافتشده باید قبل از تبدیل کنترل شود. دمای نامعتبر را نباید بیعلامت، صفر درجه یا یک نمونهٔ سالم فرض کرد.
کاهش مصرف وعدهدادهشده را باید در مسیر اجرای برنامه دید
راهنمای محصول از قطعووصل خوانشگر در گزارشهای با فاصلهٔ بیش از ۵۰۰ میلیثانیه صحبت میکند. در کد بررسیشده، تابع powerDownScale() تعریف شده، اما فراخوانی آن در مسیر برنامه دیده نمیشود؛ powerUpScale() در شروع اجرا فراخوانی میشود. پس نمیتوان مصرف یا رفتار قطعووصلِ توضیحدادهشده در راهنما را برای این نسخه قطعی دانست. برای پروژهٔ باتریخور، جریان و زمان نشست پس از بیدارشدن باید روی سختافزار همان نسخه اندازهگیری شوند.
راهاندازی و آزمون؛ از کجا شروع کنیم؟
- ابتدا مکانیک: ظرفیت لودسل را با وزن سینی و بار انتخاب کنید. نصب و جهت بار مطابق نقشهٔ همان حسگر باشد؛ سینی نباید به قاب تکیه کند و اضافهبار باید مهار شود.
- پیش از برق: چهار اتصال پل و جهت ترمینال را از سند حسگر و برد تطبیق دهید. اتصال کوتاه و سیم اشتباه را بررسی کنید؛ رنگ سیم، سند پایهبندی نیست.
- فقط یک منبع: برای شروع از USB مناسب استفاده کنید. قبل از تغییر منبع یا اتصال پردازندهٔ دیگر، ولتاژها و سطح خطوط را اندازه بگیرید.
- ارتباط: بردِ دارای همین firmware با تنظیم پیشفرض 9600 baud, 8-N-1 گزارش میدهد. پورت سریال و تنظیم درست را در کامپیوتر انتخاب کنید؛ با نویسهٔ
xمنوی تنظیمات باز میشود. تنظیم ذخیرهشده میتواند با پیشفرض فرق داشته باشد. - صفر و کالیبراسیون: واحد را انتخاب، سینی خالی را پایدار و صفر، سپس جرم مرجع معلوم را وارد کنید. آزمون را با جرمهای دیگری تکرار کنید.
- ثبت کیفیت: نوسان با بار ثابت، برگشت به صفر، اثر جابهجایی بار، گرمشدن و نزدیکشدن کابل به منبع نویز را جدا ثبت کنید. اینها آزمونهای پیشنهادیاند؛ نتیجهای برای این برد ساخته نشده است.
برای ساخت از روی فایلها، فقط داشتن شماتیک کافی نیست: مشخصات کامل قطعات، نسخهٔ PCB، کنترل اتصالها، فایلهای ساخت و محدودیتهای مکانیکی باید با هم تطبیق داده شوند. در کاربرد صنعتی، حفاظت ورودی کابل، شیلد، محفظه و شرایط محیطی نیز به نیاز واقعی پروژه بستگی دارند؛ بررسی این مقاله معادل تأیید ساخت یا گواهی صنعتی نیست.
نتیجهٔ کامپایل و راه بازتولید آن
firmware نسخهٔ ۱٫۲ در commit بالا، بدون تغییر کد، با Arduino CLI 1.5.1، هستهٔ arduino:avr 1.8.8 و هدف arduino:avr:uno کامپایل شد: ۱۵٬۹۰۰ بایت حافظهٔ برنامه و ۴۶۳ بایت متغیرهای سراسری. هشدارهای کامپایل وجود داشت؛ از جمله مقایسهٔ عددهای علامتدار و بدون علامت. این نتیجه نه آزمون اجراست، نه شبیهسازی و نه اندازهگیری نویز یا دقت.
وابستگیهای همین کامپایل، کتابخانهٔ HX711 نسخهٔ ۰٫۷٫۵ و OneWire نسخهٔ ۲٫۳٫۸ بودند. مخزن اصلی نسخهٔ دقیق کتابخانهها را قفل نکرده است؛ بنابراین این نتیجه مربوط به ترکیب ثبتشدهٔ ماست، نه اثبات بازتولید باینری اولیهٔ سازنده. دستور و شناسهها در یادداشت بازتولید کامپایل آمدهاند.
اگر قرار باشد یک نسخهٔ بهتر طراحی کنیم
اولویت اول، مشخصکردن خطای مجاز و سرعت پاسخ است. برای ثبت آرامِ مخزن، پایداری مکانیک و دما ممکن است مهمتر از نرخ بالاتر باشد؛ برای بررسی تغییر سریع، تأخیر چهار نمونه و خوانش دوباره مسئله میشود. سپس مسیر تغذیهٔ دو منبع، گزارش صریح خطای حسگر و همزمانبودن نمونههای وزن و دادهٔ خام را اصلاح میکنیم. اصلاح توضیح D2/D3 و ثبت نسخهٔ وابستگیها هم بازسازی پروژه را کمخطاتر میکند.
درس اصلی OpenScale این است که یک سامانهٔ اندازهگیری با انتخاب ADC تمام نمیشود. مسیر نیرو، ولتاژ تحریک، ورودی آنالوگ، زمانبندی و کالیبراسیون باید یک مسئلهٔ واحد را حل کنند. برای ادامه، از مسیر آموزش سنسورها و سپس درس عملی HX711 استفاده کنید؛ این بررسی، مطالعهٔ طراحی یک پروژهٔ مشخص است، نه جایگزین آزمون ترازوی ساختهشده.
منابع و فایلهای اصلی
پرسش و پاسخ مقاله
سوال فنی خود را مطرح کنید
پرسشها و پاسخها پس از بررسی مدیر منتشر میشوند. نویسنده، پیشنویس در انتظار بررسی را میبیند.
هنوز پرسش تاییدشدهای برای این مقاله ثبت نشده است.