استخدام حساس التيار Allegro ACS712 للتيار المستمر/المتردد مع كود أردوينو

استخدام حساس التيار Allegro ACS712 للتيار المستمر/المتردد مع كود أردوينو

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

سنقوم ببناء دائرة بسيطة تربط حساس ACS712 بالأردوينو، ثم نكتب برنامجًا لقراءة خرج الحساس. النتيجة المتوقعة هي عرض قراءات التيار في الوقت الحقيقي على نافذة المراقبة التسلسلية. للتوضيح حول التنفيذ، تأكد من مشاهدة الفيديو (في الفيديو عند 02:00).

شرح الأجهزة

مستشعر التيار Allegro ACS712 هو وحدة مدمجة تستطيع قياس تيارات تصل حتى 30A، اعتمادًا على الإصدار الذي تختاره. يحتوي على ثلاث دبابيس: VCC للطاقة، GND للأرضي، ودبوس إخراج يوفر الجهد المقابل للتيار المقاس. يستخدم المستشعر مبدأ تأثير هول، حيث يولد التيار المار عبر موصل مجالًا مغناطيسيًا. يتم اكتشاف هذا المجال وتحويله إلى جهد، ثم يُرسل إلى الأردوينو.

تتوفر الوحدة بتصنيفات تيار مختلفة (5A و20A و30A) وتخرج مستويات جهد قدرها 185 mV/A و100 mV/A و66 mV/A على التوالي. هذا يعني أنه مقابل كل أمبير من التيار المار عبر المستشعر ستحصل على خرج جهد مطابق يمكنك قراءته ومعالجته. تتيح هذه الميزة مرونة الاستخدام في تطبيقات متنوعة.

تفاصيل ورقة البيانات

المصنّعأليغرو مايكروسيستمز
رقم القطعةACS712ELCTR-30A-T
جهد المنطق/الإدخال والإخراج4.5-5.5 فولت
جهد التغذية5 فولت
تيار الخرج (لكل قناة)30 A كحد أقصى
إرشادات تردد PWMغير قابل للتطبيق
عتبات منطقية للإدخالغير متوفر
هبوط الجهد / RDS(عند التشغيل)/ التشبع1.2 مللي أوم
الحدود الحرارية150 °C كحد أقصى
حزمةتو-220
ملاحظات / متغيراتمتوفر بـ5A و20A و30A

  • تأكد من توصيل الأسلاك بشكل صحيح لتجنّب القصر الكهربائي.
  • استخدم سلكًا بالمقاس المناسب لتصنيفات التيار (12 AWG لتيار 30A).
  • راقب درجة حرارة الوحدة أثناء التشغيل.
  • ضع في اعتبارك إضافة مشتت حراري للتطبيقات ذات التيار العالي.
  • قم بمعايرة إخراج المستشعر وفقًا لتطبيقك الخاص.

تعليمات الأسلاك

Arduino wiring for Allegro ACS712 current sensor

لتوصيل حساس Allegro ACS712 بـ Arduino، ابدأ بتوصيل دبوس VCC في ACS712 إلى دبوس 5V على الـ Arduino. بعد ذلك، وصل دبوس GND في الحساس إلى أحد دبابيس GND على الـ Arduino. يجب توصيل دبوس الخرج في ACS712 إلى المدخل التناظري A0 على الـ Arduino.

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

أمثلة على الكود وشرح تفصيلي خطوة بخطوة

يقوم مقطع الشيفرة التالي بتهيئة الدبوس التناظري وإعداد المراقب التسلسلي:

#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const float VCC = 5.0; // supply voltage is from 4.5 to 5.5V. Normally 5V.

هنا، نعرّفVINكدبوس الدخل التماثلي الذي يتصل به خرج المستشعر. كما نضبط جهد التغذية.VCCإلى 5V.

في دالة الحلقة، نقرأ الجهد من حساس ACS712 ونحسب التيار:

float voltage_raw = (5.0 / 1023.0) * analogRead(VIN); // Read the voltage from sensor
float current = voltage / sensitivity[model]; // Calculate current based on sensitivity

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

أخيرًا، نطبع القراءات الحالية في المراقب التسلسلي:

if (abs(current) > cutOffLimit) {
    Serial.print("V: ");
    Serial.print(voltage, 3); // print voltage with 3 decimal places
    Serial.print("V, I: ");
    Serial.print(current, 2); // print the current with 2 decimal places
    Serial.println("A");
} else {
    Serial.println("No Current");
}

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

للحصول على الشيفرة الكاملة، يُرجى الرجوع إلى الشيفرة الموجودة أسفل المقالة.

العرض التوضيحي / ما الذي تتوقعه

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

الصور

Arduino wiring for Allegro ACS712 current sensor
Arduino wiring for Allegro ACS712 current sensor
ACS712_in_series_with_load
ACS712_in_series_with_load
allegro_ACS712_module-1
allegro_ACS712_module-1
allegro_ACS712_module-2
allegro_ACS712_module-2
allegro_ACS712_module-4
allegro_ACS712_module-4
allegro_ACS712_module-0
allegro_ACS712_module-0
130-Allegro ACS712 DC/AC current sensor with Arduino code
اللغة: C++
تم النسخ!

الموارد والمراجع

لا توجد موارد حتى الآن.

ملفات📁

ورقة البيانات (pdf)

Fritzing File