العمل مع الرقاقة الصينية ADC Hx711

سبب كتابة هذا المنشور هو الرغبة في التعامل مع وحدة ADC 24 bit delta sigma ADC استنادًا إلى شريحة Hx711. يتم تجميع المحول نفسه في شكل وحدة جاهزة وفقًا لدائرة التبديل الموصى بها من قبل الشركة المصنعة (؟؟؟؟). هناك تعليقات على تشغيل هذه الوحدة على هذا الموقع في مدونة Andrey Gerasimenko "ADC NX711 من 3.3V - لا تصدق الوثائق الصينية وليس فقط ..." .

لاختبار هذه الوحدة ، تم تجميع دائرة تعتمد على متحكم ATmega16 ، ووحدة ADC ، وشاشة LCD ذات سطرين BC1602 ، استنادًا إلى وحدة تحكم HD44780 ، أربعة أزرار. كبيئة تطوير ، استخدمنا برنامج Code Vision AVR ، الإصدار 1.25.9 Professional ، AVR Studio 4 ، الإصدار 4.09.0.338 ، مبرمج USB AVR JTAG ، والذي لا يسمح فقط ببرمجة البلورة ، ولكن أيضًا تتبع خطوة بخطوة ، إذا لزم الأمر ، تنفيذ البرنامج في وحدة التحكم الدقيقة ، تقريبًا في الوقت الفعلي.



تم اختيار خلية تحميل صينية الصنع بحد أقصى للوزن يبلغ 40 كجم كمصدر إشارة لـ ADC. ووحدة إدخال المستشعر القياسية. وتجدر الإشارة إلى أن استخدام وحدات التكامل "الأصلية" يسمح لك بالحصول على جميع بيانات المخرجات المفترضة من مقياس سلالة أحادي النقطة ، طراز CZL A6. لذلك ، تم تصميم مقاييس الضغط من نوع نقطة واحدة ، عند استخدام الحجم المحدد في المواصفات الفنية للمنصة لموقع الحمل الموزون ، بحيث لا تعتمد إشارة اختلال مقياس الضغط على موضع الحمل على المنصة. إنها الخصائص الميكانيكية لجسم المستشعر: الأبعاد الهندسية ، وموقع أفلام قياس الإجهاد الملصقة ، وخاصة قطع "العظم" في منتصف جسم المستشعر ، وحجم المنصة التي تؤثر على عزم الدوران المطبق على جسم المستشعر يحدد هذا الاستقلال.



حسنًا ، المصدر الأخير هو "GOST 29329-92. موازين للوزن الساكن. المتطلبات التقنية العامة ". يحدد GOST خصائص أدوات قياس الوزن. من المهم أيضًا العمل مع برنامج EXCEL المكتبي. أنا أستخدم EXCEL 2003 XP3. يتيح لك هذا معالجة النتائج بسرعة باستخدام طرق جاهزة.

آمل أن يتم إعطاء جميع المعلومات اللازمة لتكرار تجربتي بالكامل.

الآن البرنامج نفسه الذي أستخدمه للعمل مع الوحدة النمطية. يركز البرنامج على التحقق ، وبالكاد مباشر ، أي بدون تغييرات ، يمكن تطبيقه على بعض الاحتياجات المطبقة. على الرغم ، كما يقولون ، "اعتمادا على مكان تقديم الطلب".

البرنامج نفسه هو هيكل كتلة. وهو يتألف من 4 إجراءات والخامس الرئيسي الرئيسي. الروتين الأول: ReadCount ، يقرأ البيانات من وحدة ADC وينشئها في العدد المتغير.

يخلق CreatInput صفيف إدخال من بيانات التحويل من 32 قيمة.

يخلق CreatOutput صفيف إخراج من بيانات تحويل ADC من خلال تنظيم متوسط ​​متحرك بحجم نافذة يبلغ 16 بيانات.

مفاتيح ، برنامج بسيط للرد على ضربات المفاتيح.

هذا كل شيء. المتغيرات كلها في الأساس عالمية ، خاصة وأن الموارد الضخمة مسموح بها.



يبدأ البرنامج الرئيسي عن طريق إنشاء صفيف الإدخال CreatInput ، ثم يتم تصفية بيانات الإدخال باستخدام طريقة المتوسط ​​المتحرك. يعتمد اختيار هذا الفلتر على ما يلي. عند تشغيل البرنامج ، تغير البيانات الموجودة على الشاشة قيمته في نطاق كبير إلى حد ما. لقد أخذت قيم ADC بدون جهد على المنصة وجدولتها. تم الحصول على القيم باستخدام مصحح أخطاء JATAG USB في بيئة AVR Studio.



في ملف Excel "الحصول على البيانات" ، في علامة التبويب "المتوسط ​​المتحرك" ، تظهر نتيجة تصفية بيانات المدخلات المتقلبة InputBuff (التذبذب 436 وحدة) مع نافذة متوسط ​​3.12.16 الفواصل الزمنية. يتم عرض النتيجة في خلايا A37-A40. من خلالها يتبين أن الأكثر فعالية ، في هذه الحالة ، هو المتوسط ​​المتحرك مع نافذة من 16 عينة.

تظهر الرسوم البيانية المضمنة هذا بوضوح. يتم أخذ البيانات من وحدة تحكم عاملة ، يتم إيقافها في لحظة الانتقال إلى إجراء عرض البيانات. وتظهر أمثلة توضيحية لمثل هذه البيانات في الصور.



لا توجد طرق لتصفية البيانات ، من خلال استخدام مرشحات رقمية مختلفة ، يمكن بأي حال من الأحوال "ترويض" تقلبات المدخلات. إذا نظرت إلى الرسم البياني لبيانات الإدخال ، فإن توزيع Gaussian هنا لا "يشم" حتى. كما أكد المستخدم Nikopol_86 في مدونة "... لا أصدق الوثائق الصينية"

Nikopol_86 5 فبراير 2019 الساعة 09:27 0


لنكون صادقين ، لديه ضوضاء كافية في جميع النسب. لقد أجريت بعض الأبحاث حول توزيع كثافة رموز ADC الصادرة مع دوائر الإدخال التي تم تقصيرها ، وبالتالي هناك انتشار يصل إلى 1000 1_5V و nifiga ليس قانونًا للتوزيع العادي ، مما يشير إلى أن أسلاك اللوحة في مشكلة ، أو مع ADC ، أو كلها مجتمعة . لاحظت أيضًا أنه ليس لديه أيضًا استقرار في درجة الحرارة ، وأن درجة حرارة التشغيل المزعومة لا تتوافق مع الواقع. إذا فقط لأنه عند توصيل مقياس سلالة 5 كجم بـ ADC ، فإن تغيير درجة الحرارة في الغرفة بمقدار درجة واحدة سيستغرق قراءات بمقدار 2 جرامًا ، وإذا قمت بتسخين الدائرة المصغرة بإصبعك ، فستطير القراءات إلى 5-7 جرامًا. بشكل عام ، خلصت لنفسي أنه لا يمكن عمل سوى موزع طعام القطط على هذا الجهاز ،حيث الدقة في محطة ترام واحدة ستكون أكثر من كافية. وللأسف ، الحلول العادية ليست رخيصة ، لأنه يجب عليك استخدام ADC عالية الجودة من AO أو T1.

كما ترون ، تم تأكيد الاستنتاجات. صحيح ، نفس الشيء صحيح:
jushabrauser 4 فبراير 2019 الساعة 12:52 مساءً
مع نسبة الإشارة إلى الضوضاء <1 ، لن يساعد هذا أبدًا.
حتى مع دارة الجسر.

لذلك ، في ظل الظروف العادية (بدون رياضيات و / أو دوائر خاصة) على الأقل 8 بتات منخفضة الترتيب تعطي هراء (على الأرجح).

24 بتة صادقة صادقة لـ 350 روبل؟ لا تخبر شبشباتي.
إذا كانت المكواة نفسها "كاذبة" - ماذا يمكنك أن تفعل حيال ذلك؟
هنا ، حتى المرشح غير الخطي من الدرجة الثالثة لن يساعد ، لأن البيانات المصدر ليست كعكة.

من هذا المكان ، أردت أن ألقي نظرة على ما يمكن لهذه الوحدة النمطية تكوينه في المقاييس. البحث في الشبكة عن مشاكل مع ارتعاش الأجزاء الأخيرة من ADC ، أدى إلى المنتدى kazus.ru/forums/showthread.php؟t=105320&page=4. هنا مناقشة كاملة حول استقرار القراءات. ومع ذلك ، لم تهدأ أي من الأساليب الرياضية المقترحة البيانات المدخلة التي أتلقىها. من "الأجهزة" نفسها ، لتحقيق الاستقرار في القراءات ، تم تقديمه: توصيل الأرض الرقمية والتناظرية ، بالإضافة إلى دائرة قصيرة من المدخلات B على الأرض. استخدمنا التدريع الكامل للوحدة وتشغيلها من بطارية 6 فولت (متبوعًا بمثبت 7805) بشكل منفصل عن دوائر التحكم. لا توجد نتيجة ، تتأرجح بيانات الإدخال ...

لذا ، لا يمكن الحصول على الفئة الرابعة والعشرين "النظيفة" ويبدو لي أن السبب هنا هو دائرة / دائرة ذات نوعية رديئة. لذلك تحتاج إلى قطع نطاق التحويل الناتج. لهذا ، في برنامج ReadCount ، تم إدخال خط بقسمة البيانات على 100. 100 أقل بقليل من 2 إلى 8 درجات. إلى. يأتي تحويل AD في 16 بت. ومع ذلك ، حتى هذا القيد لم يجعل الشهادة موثوقة. والسبب هنا هو خصائص مقياس الضغط.

لذلك ، بعد تطبيق عملية المعايرة (ربط قيمة ADC والوزن على المنصة) ، يتم عرض الوزن بالجرام. يعرض 500 جرام كرقم 500 ، كيلوجرام واحد 1000. سعر القسمة 1 جرام. أولئك. نحصل على مستشعر 40 كجم 40.000 قسم. وفقًا للبيانات الفنية لخلية الحمل ، يمكننا الحصول على 3000 قسم فقط من المستشعر (الرمز C3 باسم المستشعر). لذا يجب أن يكون سعر القسمة (40000/3000) = 13.3 جرام. ومع ذلك ، وفقًا لـ GOST 29329 ، لا تعمل مقاييس الوزن مع الرقم 3. يجب استخدام الأرقام:

2.1.3 يجب تحديد قيمة قسمة المعايرة (e) وسعر تقسيم المقياس (d) ودقة القراءة (dd) في وحدات الكتلة من التالي: 1X10a ؛ 2 × 10 أ ؛ 5X10a ، حيث a هو عدد صحيح موجب أو سالب أو صفر.

إلى. سعر تقسيم هذا المستشعر ، مضمون من قبل الشركة المصنعة 10 جرام. بمعنى ، يجب أن يكون تنسيق الإخراج 0.0x كجم. حيث س = 1،2،3 ، ... .0. دعونا نحاول أن نجعل سعر القسمة 5 جرام. يتم سرد الإجراءات البرنامجية ذات الصلة. بعد هذا التقييد ، "نأخذ" من المستشعر 40.000 / 5 = 8000 قسم ، أي 2.6 مرة أكثر من المسموح به. بعد هذه الافتراضات ، تعمل المقاييس الناتجة بثبات.

لا تسمح لنا الملاحظة أعلاه حول خلية التحميل المطبقة و "درجة الدقة" الخاصة بها أن نذكر بشكل قاطع أن هذه الوحدة لا يمكنها إنتاج تحويل 24 بت. ومع ذلك ، لقد اختبرت هذا المستشعر للتشغيل بدقة 1 جرام ، على جهاز آخر ، باستخدام محول AD مختلف. على هذا الجهاز ، يمكن اعتبار تشغيل المستشعر والتحويل مرضياً ، لأن تقلب الوزن لم يكن أكثر من 3 جرام.

ما الذي لا يسمح باستخدام ADC هذا في التجارة؟ حسنًا ، أول وأهم شيء هو اعتماد القياس على درجة الحرارة. ثانيًا ، باستخدام عمليات القسمة والضرب المدمجة في ATMEGA ، خاصة لـ 8 بتات ، من الصعب معايرة المقاييس على نطاق الوزن بالكامل في ظل هذه الظروف. يجب أن يوضع في الاعتبار أن البرنامج لا يتفاعل بأي شكل من الأشكال مع الحمل الزائد للمستشعر.

كيفية التغلب على هذه المضايقات. أولاً ، أدخل مستشعر درجة الحرارة واضبط قراءة الوزن من قيمة درجة الحرارة. وهو أمر معقد للغاية. "أرخص" هو إدخال خيار المعايرة ، للأحمال المختلفة ، واعتمادًا على الخطأ الناتج عن درجة الحرارة ، قم بمعايرة الوزن المستخدم في العمل.

والثاني أصعب. استبدال إجراء الضرب والقسمة بواسطة عمليات الجدول والقص. أعتقد أن هذه هي أفضل طريقة لاستخدام هذه الوحدة في ممارسة بناء الأوزان.

لاستكمال وصف متطلبات إنشاء برنامج للمقاييس ، من الضروري استخدام "برنامج معايرة المقاييس (التصديق) للمقاييس" المرفق بكل ميزان.

الخلاصة:إنشاء المقاييس على أساس M / s Hx711 ممكن خاضع لجميع المتطلبات المترولوجية للمقاييس. يجب تقديم إدخال تصحيحات لاعتماد درجة الحرارة على التحويل في إجراء منفصل. يتطلب استخدام وحدة نمطية بدقة تزيد عن 16 بت نهجًا وتحكمًا منفصلين.

Source: https://habr.com/ru/post/undefined/


All Articles