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


لمزيد من التوضيح حول التوصيلات والكود، تأكد من الاطلاع على الفيديو عند الطوابع الزمنية المحددة (في الفيديو عند :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 المختلفة.
- استخدم مكثفات لإلغاء الاقتران كما هو محدد في ورقة البيانات.
تعليمات التوصيل الكهربائي

لأسلاك حساس التيار 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 وفي المراقب التسلسلي. تأكد من أن التيار لا يتجاوز الحدود المصنّفة للمستشعر لتجنب التلف.
الصور
الأشياء التي قد تحتاجها
-
أمازوناشترِ LCD1602-I2C من أمازونamzn.to
-
أمازون
-
إي بايشراء LCD1602-I2C من eBayebay.us
-
علي إكسبريسشراء 10 قطع من LCD1602-I2C من علي إكسبريسs.click.aliexpress.com
الموارد والمراجع
-
خارجي
ملفات📁
مكتبات أردوينو (ملف مضغوط)
-
مكتبة LCD1602 لـ Arduino من Robojax
robojax-LCD1602-I2C-library-master.zip0.01 MB
ورقة البيانات (pdf)
-
مستشعر التيار Allegro ACS712 AC/DC 4A، 20A، 30A ورقة بيانات
robojax-allegro_ACS712_current_sensor.pdf0.65 MB
Fritzing File
-
وحدة LCD LCD1602-I2C مع 4 أسلاك
LCD1602-I2C.fzpz0.01 MB -
مستشعر التيار Allegre ACS712
Allegreo ACS712 Current Sensor.fzpz0.03 MB