جدول المحتويات:

قياسات مستشعر التيار ACS724 باستخدام Arduino: 4 خطوات
قياسات مستشعر التيار ACS724 باستخدام Arduino: 4 خطوات

فيديو: قياسات مستشعر التيار ACS724 باستخدام Arduino: 4 خطوات

فيديو: قياسات مستشعر التيار ACS724 باستخدام Arduino: 4 خطوات
فيديو: Измерение 5A-30A переменного и постоянного тока с использованием ACS712 с библиотекой Robojax 2024, يوليو
Anonim
Image
Image
صورة
صورة

في هذا الدليل ، سنقوم بتجربة توصيل مستشعر تيار ACS724 بأردوينو لإجراء القياسات الحالية. في هذه الحالة ، يكون المستشعر الحالي من مجموعة +/- 5A ينتج 400 مللي فولت / أمبير.

يحتوي Arduino Uno على ADC 10 بت ، لذا فإن الأسئلة الجيدة هي: ما مدى دقة القراءة الحالية التي يمكننا الحصول عليها وما مدى استقرارها؟

سنبدأ فقط بتوصيل المستشعر بمقياس الفولتميتر ومقياس التيار وإجراء قراءات تمثيلية لمعرفة مدى جودة عمل المستشعر ، ثم سنقوم بتوصيله بمسمار Arduino ADC ونرى كيف يعمل بشكل جيد.

اللوازم

1 - Breadboard2 - إمدادات الطاقة Benchtop 2 - DVM's1 - مستشعر ACS724 +/- 5A1 - Arduino Uno1 - LM78053 - مقاومات 10 أوم ، 10 وات 1 - 1nF cap1 - غطاء 10nF1 - غطاء 0.1 فائق التوهج

الخطوة 1:

دائرة الاختبار كما هو موضح في الرسم التخطيطي. الاتصال من دبوس Arduino 5V إلى سكة LM7805 + 5V اختياري. قد تحصل على نتائج أفضل مع هذا الموصل في مكانه ولكن كن حذرًا بشأن الأسلاك الخاصة بك إذا كنت تستخدمه لأن Arduino متصل بجهاز الكمبيوتر الخاص بك وسوف يتجاوز مصدر الطاقة الثاني 5 فولت عند تشغيله لزيادة التيار من خلال المستشعر.

إذا قمت بتوصيل مصادر الطاقة معًا ، فسيكون لمزود طاقة المستشعر ومزود طاقة Arduino نفس النقطة المرجعية + 5V بالضبط وستتوقع نتائج أكثر اتساقًا.

لقد فعلت ذلك بدون هذا الاتصال ورأيت قراءة أعلى للصفر الحالي على المستشعر الحالي (2.530 فولت بدلاً من 2.500 فولت المتوقعة) وقراءة ADC أقل من المتوقع عند نقطة الصفر الحالية. كنت أحصل على قراءة ADC رقمية من حوالي 507 إلى 508 بدون تيار من خلال المستشعر ، بالنسبة لـ 2.500V يجب أن ترى قراءة ADC تبلغ حوالي 512. لقد قمت بتصحيح ذلك في البرنامج.

الخطوة 2: اختبار القياسات

قياسات الاختبار
قياسات الاختبار

أشارت القياسات التناظرية باستخدام مقياس الفولتميتر والتيار الكهربائي إلى أن المستشعر دقيق للغاية. في التيارات الاختبارية 0.5 أمبير ، 1.0 أمبير ، 1.5 أمبير كانت صحيحة تمامًا للميلي فولت.

لم تكن قياسات ADC باستخدام Arduino دقيقة تقريبًا. كانت هذه القياسات محدودة بدقة 10 بت من Arduino ADC ومشكلات الضوضاء (انظر الفيديو). نظرًا للضوضاء ، كانت قراءة ADC تقفز حول أسوأ حالة تصل إلى 10 خطوات أو أكثر مع عدم وجود تيار من خلال المستشعر. بالنظر إلى أن كل خطوة تمثل حوالي 5 مللي فولت ، فإن هذا يمثل تقلبًا بمقدار 50 مللي فولت ومع مستشعر 400 مللي فولت / أمبير يمثل تذبذبًا قدره 50 مللي فولت / 400 مللي فولت / أمبير = 125 مللي أمبير! الطريقة الوحيدة التي يمكنني من خلالها الحصول على قراءة ذات مغزى هي أخذ 10 قراءات متتالية ثم متوسطها.

مع 10 بت ADC أو 1024 مستوى ممكن و 5 V Vcc يمكننا حل حوالي 5/1023 ~ 5mv لكل خطوة. يخرج المستشعر 400mv / Amp. لذلك في أحسن الأحوال لدينا دقة 5mv / 400mv / amp ~ 12.5ma.

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

الخطوة الثالثة: الاستنتاجات

الاستنتاجات
الاستنتاجات

الاستنتاجات:

-ACS724 القراءات التناظرية دقيقة للغاية.

يجب أن يعمل -ACS724 بشكل جيد جدًا مع الدوائر التناظرية. على سبيل المثال ، التحكم في تيار إمداد الطاقة بحلقة تغذية مرتدة تناظرية.

-هناك مشاكل في الضوضاء والدقة باستخدام ACS724 مع Arduino 10 بت ADC.

-جيد بما يكفي لمجرد مراقبة متوسط التيار لدوائر التيار العالي ولكن ليس جيدًا بما يكفي للتحكم في التيار المستمر.

-قد يحتاج إلى استخدام شريحة ADC خارجية 12 بت أو أكثر للحصول على نتائج أفضل.

الخطوة 4: كود اردوينو

هذا هو الكود الذي استخدمته لقياس قيمة Arduino A0 pin ADC والرمز لتحويل جهد المستشعر إلى تيار وأخذ متوسط 10 قراءات. الكود هو شرح ذاتي إلى حد ما وعلق على رمز التحويل والتوسيط.

موصى به: