باستخدام ACS712 لعرض التيار على شاشة LCD1602 أو LCD2004 عبر I2C

باستخدام ACS712 لعرض التيار على شاشة LCD1602 أو LCD2004 عبر I2C

في هذا الدرس سنتعلم كيفية استخدام مستشعر التيار Allegro ACS712 لقياس كل من التيار المتردد (AC) والتيار المستمر (DC) وعرض القراءات على شاشتي LCD1602 أو LCD2004 عبر واجهة I2C. هذا المشروع مفيد بشكل خاص لمراقبة التيار في تطبيقات متعددة، حيث يوفر عرضًا بصريًا لبيانات التيار في الوقت الحقيقي. بنهاية هذا الدرس سيكون لديك إعداد عملي يعمل يمكنه عرض قراءات التيار بدقة على شاشة LCD.

LCD1602-I2C display module with 4 wires

لمزيد من التوضيح حول التوصيلات والكود، تأكد من الاطلاع على الفيديو عند الطوابع الزمنية المحددة (في الفيديو عند :00).

شرح الأجهزة

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

تتصل شاشة LCD1602 أو LCD2004 عبر I2C، مما يسهّل التوصيل والتحكم باستخدام دبّوسَي بيانات فقط (SDA وSCL) بالإضافة إلى مزود الطاقة والأرضي. هذا يجعل من السهل عرض القراءات الحالية دون ازدحام الأسلاك بتوصيلات متعددة.

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

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

  • تأكد من تبديد الحرارة بشكل مناسب للتيارات التي تزيد عن 20A.
  • استخدم مقطع سلك مناسب (12 AWG لـ 30A) لتجنب السخونة الزائدة.
  • وصل VCC إلى 5V و GND إلى الأرض لضمان التشغيل السليم.
  • تأكد من أن دبوس OUT متصل بدبوس إدخال تناظري على لوحة الأردوينو (مثلاً A0).
  • كن على علم بفروق الحساسية بين طرازات ACS712 المختلفة.
  • استخدم مكثفات لإلغاء الاقتران كما هو محدد في ورقة البيانات.

تعليمات التوصيل الكهربائي

Arduino wiring for Allegro ACS712 current sensor with LCD

لأسلاك حساس التيار ACS712 مع الأردوينو وشاشة LCD، ابدأ بتوصيل دبوس VCC الخاص بالـ ACS712 بدبوس 5V في الأردوينو. بعد ذلك، وصل دبوس GND الخاص بالـ ACS712 بدبوس أرضي في الأردوينو. يجب توصيل دبوس OUT الخاص بالـ ACS712 بالدبوس التناظريA0على الأردوينو، حيث ستُقرأ إشارة الجهد.

بالنسبة لشاشة LCD1602 أو LCD2004، قم بتوصيل دبوس VCC بدبوس 5V ودبوس GND بالأرضي. يجب توصيل دبوس SDA في الـ LCD بدبوس SDA على الـ Arduino (عادةًA4على لوحة UNO)، ويجب توصيل دبوس SCL بدبوس SCL على لوحة Arduino (عادةًA5على لوحة UNO). تأكد من أن جميع التوصيلات آمنة لضمان الأداء السليم.

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

في الكود، نحدد دبوس الإدخال التماثلي لقراءة خرج المستشعر باستخدام#define VIN A0. يتيح لنا ذلك بسهولة الإشارة إلى الدبوس الذي يتصل به المستشعر طوال البرنامج.

#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.

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

const int model = 2; // enter the model number (0, 1, or 2 for 5A, 20A, or 30A)
float sensitivity[] = {0.185, 0.100, 0.066}; // sensitivity values for each model

في الـsetup()في الدالة، نقوم بتهيئة المراقب التسلسلي وشاشة LCD. هذا يتيح لنا عرض القراءات الحالية على شاشة LCD وعبر المراقب التسلسلي لتصحيح الأخطاء.

void setup() {
    Serial.begin(9600); // initialize serial monitor
    lcd.begin(); // initialize the LCD
    lcd.backlight(); // turn on the backlight
    lcd.print("Robojax ACS712"); // display initial text
    delay(2000); // wait for 2 seconds
}

الloop()تقرأ الدالة الجهد من المستشعر، وتحسب التيار بناءً على الحساسية، وتعرض النتائج وفقًا لذلك. إذا تجاوز التيار حد القطع المحدد، تعرض القيمة؛ وإلا فتشير إلى أنه لم يتم اكتشاف تيار.

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

عند تشغيل الدائرة، يجب أن تعرض شاشة LCD "Robojax ACS712" متبوعة بـ"التيار: " مع قيمة التيار المقاسة بالأمبير. إذا كان التيار أقل من حد القطع، ستعرض الشاشة "لا يوجد تيار." كن حذراً عند الاختبار بتيارات عالية، فقد يسخن المستشعر (في الفيديو عند 12:00).

لاختبار الإعداد، زد التيار عبر ACS712 تدريجيًا وراقب التغيّر على شاشة LCD وفي المراقب التسلسلي. تأكد من أن التيار لا يتجاوز الحدود المصنّفة للمستشعر لتجنب التلف.

الصور

مستشعر تيار AC/DC Allegro ACS712 مع LCD1602/LCD2004 I2C مع كود Arduino
مستشعر تيار AC/DC Allegro ACS712 مع LCD1602/LCD2004 I2C مع كود Arduino
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
LCD1602-I2C display module with 4 wires
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
Arduino wiring for Allegro ACS712 current sensor with LCD
Arduino wiring for Allegro ACS712 current sensor with LCD
131-Allegro ACS712 DC/AC current sensor with LCD1602/LCD2004 I2C and Arduino code
اللغة: C++
تم النسخ!

الأشياء التي قد تحتاجها

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

ملفات📁

مكتبات أردوينو (ملف مضغوط)

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

Fritzing File