قياس التيار باستخدام مستشعر التيار Allegro ACS758 مع شاشة OLED طراز SSD1306 لأردوينو

قياس التيار باستخدام مستشعر التيار Allegro ACS758 مع شاشة OLED طراز SSD1306 لأردوينو

سيرشدك هذا البرنامج التعليمي خلال عملية قياس التيار باستخدام مستشعر التيار Allegro ACS758 وعرض النتائج على شاشة OLED من طراز SSD1306. سيشمل المشروع قراءة التيار المتدفق عبر دائرة وتمثيل تلك البيانات بصريًا على شاشة الـOLED، مما يتيح مراقبة سهلة. ستتعلم كيفية توصيل المكونات، وكتابة الشيفرة، وفهم كيفية عمل كل شيء معًا.

SSD1306 OLED display

إذا كنت ترغب في فهم الشفرة ووظيفتها، فتأكد من مشاهدة الفيديو للحصول على شروحات أكثر تفصيلاً (في الفيديو عند 02:45).

شرح الأجهزة

المكونات الأساسية لهذا المشروع تشمل مستشعر التيار Allegro ACS758 وشاشة OLED من نوع SSD1306. يعتبر ACS758 مستشعر تيار بتأثير هول يقيس التيار المار عبر موصل بدقة عالية ويعطي جهد خرج متناسبًا مع هذا التيار. يمكنه التعامل مع تيارات تصل إلى 200A ويعمل عند 3.3V أو 5V.

شاشة OLED من نوع SSD1306 هي شاشة مدمجة ومنخفضة الطاقة تتواصل عبر واجهة I2C. تُستخدم عادةً في مشاريع Arduino بسبب سهولة دمجها وقدرتها على عرض الرسوميات والنصوص بوضوح. معًا، تُشكّل هذه المكونات أداة قوية لمراقبة التيار في تطبيقات متنوعة.

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

المصنّعأليجرو مايكروسيستمز
رقم القطعةACS758ECB-200U
جهد المنطق/المداخل والمخارج3.3 فولت / 5 فولت
جهد التغذية5 فولت
تيار الخرج (لكل قناة)200 أمبير
تيار الذروة (لكل قناة)200 أمبير
إرشادات تردد PWMغير متوفر
عتبات منطق الإدخال0.3 فولت (منخفض)، 2.7 فولت (مرتفع)
هبوط الجهد / Rالمصرف-المصدر (في حالة التشغيل)/ التشبع0.05 فولت
الحدود الحرارية-40 إلى 125 °C
حزمةحزمة SOIC ذات 8 أطراف
ملاحظات / تنويعاتنماذج ثنائية الاتجاه وأحادية الاتجاه متاحة

  • تأكد من التوجيه الصحيح لمستشعر ACS758 لضمان قراءات دقيقة.
  • استخدم مشتت حرارة إذا كنت تعمل بالقرب من حدود التيار القصوى لتجنّب السخونة الزائدة.
  • عزل مصدر التغذية للمستشعر لضمان تشغيل مستقر
  • تحقق من توصيلات الأسلاك لتجنب المداخل العائمة التي قد تؤدي إلى قراءات غير صحيحة.
  • قم بمعايرة خرج المستشعر لضمان قياسات تيار دقيقة.

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

Arduino wriing for Allegro ACS758 current sensor with OLED SSD1306 128x32 and 128x64
Arduino wriing for Allegro ACS758 current sensor with OLED SSD1306 128x32 and 128x64

لتوصيل حساس التيار Allegro ACS758 وشاشة OLED من نوع SSD1306، ابدأ بتوصيل الطاقة. وصل دبوس VCC الخاص بـ ACS758 بمخرج 5V في لوحة Arduino، ووصل دبوس GND بالأرضي (GND) في لوحة Arduino. يجب توصيل دبوس إشارة الخرج (Vout) من ACS758 بدبوس الإدخال التماثلي A0 في لوحة Arduino.

بعد ذلك، بالنسبة لشاشة OLED طراز SSD1306، قم بتوصيل دبوس VCC بمخرج 5V في الأردوينو ودبوس GND بالأرض. قم بتوصيل دبوس SDA في الشاشة إلى دبوس SDA في الأردوينو (A4 في معظم لوحات الأردوينو) ودبوس SCL في الشاشة إلى دبوس SCL (A5 في معظم اللوحات). تأكد من أن جميع التوصيلات محكمة لضمان عمل موثوق.

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

#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const float VCC = 5.0; // supply voltage 5V or 3.3V
const int model = 2; // enter the model (see below)

في الكود، المتغيرVINتم تعيينه إلى الدبوس التناظري A0، الذي سيقرأ الجهد من مستشعر ACS758. الـVCCالمتغير يضبط جهد الإمداد، وmodelالمتغير يحدد أي طراز من ACS758 يتم استخدامه، مما يؤثر على الحساسية وحسابات جهد الخرج.

void loop() {
  float voltage_raw = (5.0 / 1023.0) * analogRead(VIN); // Read the voltage from sensor
  float current = voltage / FACTOR; // Calculate the current based on voltage
}

ضمن الـloop()في الدالة، يقرأ الكود الجهد الخام من المستشعر باستخدامanalogRead(VIN)ويُحوَّل إلى قيمة تيار بناءً على الحساسية المحددة. هذا يتيح مراقبة التيار المتدفق عبر الدائرة في الوقت الفعلي.

if(abs(voltage) > cutOff) {
    display.clearDisplay();
    robojaxText("Current:", 0, 22, 2, false);
}

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

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

عند تشغيل البرنامج، ستعرض شاشة OLED التيار قيد القياس في الوقت الحقيقي. إذا لم يتدفق تيار، ستعرض الشاشة عبارة لا يوجد تيار. تأكد من أن الوصلات صحيحة لتجنب مشاكل مثل عكس القطبية، والتي قد تؤدي إلى قراءات غير دقيقة (في الفيديو عند 05:30).

الصور

SSD1306 OLED displaying text
SSD1306 OLED displaying text
SSD1306 OLED display
SSD1306 OLED display
ACS758-sensor-6-pins
ACS758-sensor-6-pins
ACS758-sensor-0
ACS758-sensor-0
ACS758-sensor-1
ACS758-sensor-1
ACS758-sensor-4
ACS758-sensor-4
Arduino wriing for Allegro ACS758 current sensor with OLED SSD1306 128x32 and 128x64
Arduino wriing for Allegro ACS758 current sensor with OLED SSD1306 128x32 and 128x64
110-Allegro ACS758 current sensor with SSD1306 OLED display for Arduino
اللغة: C++
تم النسخ!

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

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

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

ملفات📁

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

Fritzing File

دليل المستخدم