الوصف
وحدة مستشعر تيار ACS712 بمدى 5A
تستخدم هذه الوحدة مستشعر ACS712 بتأثير Hall لقياس التيار المار عبر الموصل الموجود عليها. وتنتج جهدًا تناظريًا يتغير مع التيار المقاس، وتدعم قياس AC وDC ضمن النطاق المذكور.
🔧 المواصفات المذكورة
- جهد التغذية: 4.5–5.5 V DC
- نطاق القياس: من −5 A إلى +5 A
- الحساسية: 185 mV/A (وفق القائمة لنسخة 5 A)
- الخرج: جهد تناظري يتناسب مع التيار
- العزل: تذكر قائمة المنتج 2.1 kV RMS
- الدقة: تذكر قائمة المنتج ±1.5%
- درجة حرارة التشغيل: من −40 °C إلى 85 °C
تعتمد خصائص العزل والدقة على شريحة المستشعر الفعلية وتصميم الوحدة وظروف الاختبار وتصنيفات السلامة المعتمدة. رقم العزل في القائمة لا يعني أن الوحدة النهائية آمنة لجهد الشبكة أو الجهود الخطرة. استخدم المصهر والغلاف ومسافات العزل وإجراءات العمل المناسبة.
⚙️ طريقة العمل
يمر التيار المراد قياسه عبر موصل النحاس في الوحدة ويُنشئ مجالًا مغناطيسيًا. يحوّل مستشعر Hall هذا المجال إلى جهد خرج تناظري. تذكر القائمة حساسية اسمية قدرها 185 mV لكل أمبير لنسخة ACS712 بمدى 5 A.
💡 الاستخدامات
- مراقبة تيار المحركات وأنظمة شحن البطاريات
- مراقبة الطاقة في الأجهزة الإلكترونية
- اكتشاف زيادة التيار في النماذج الأولية
- مشاريع الروبوتات والآلات المستقلة
- تجارب إدارة الطاقة
📌 أطراف التوصيل
- VCC: تغذية بجهد 4.5–5.5 V
- GND: الأرضي
- OUT: خرج تناظري يتناسب مع التيار المقاس
🔌 مثال Arduino Uno أساسي
صِل VCC وGND بمصدر مناسب وOUT بمدخل تناظري. نُبقي المثال الأصلي أدناه. يفترض الحساب مرجع ADC بجهد 5 V ومحوّلًا بدقة 10 بت وخرجًا يقارب 2.5 V عند انعدام التيار؛ عاير الدارة الفعلية لتحسين الدقة.
#define CURRENT_SENSOR_PIN A0
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(CURRENT_SENSOR_PIN);
float voltage = sensorValue * (5.0 / 1023.0);
float current = (voltage - 2.5) / 0.185;
Serial.print("Current: ");
Serial.print(current);
Serial.println(" A");
delay(1000);
}
شرح المثال الأساسي
تقرأ الشيفرة الخرج التناظري، وتقدّر الجهد، ثم تحوّل الفرق عن 2.5 V إلى تيار باستخدام 0.185 V/A، وتعرض النتيجة في الشاشة التسلسلية.
مكونات المثال الأساسي
- Arduino Uno
- وحدة مستشعر تيار ACS712 (نسخة 5 A)
- أسلاك توصيل
التوصيلات الموضحة في الشيفرة
- VCC: 5 V في Arduino
- GND: GND في Arduino
- OUT: A0 في Arduino
📟 مثال Arduino متقدم: شاشة LCD عبر I2C
نُبقي مثال الشاشة الأصلي أدناه. ثبّت مكتبة متوافقة مع LiquidCrystal_I2C وتحقق من واجهة الاستخدام المناسبة لإصدارها.
#include <LiquidCrystal_I2C.h>
// Pin connections
#define CURRENT_SENSOR_PIN A0
// Constants
const float VOLTAGE_REFERENCE = 5.0;
const int ANALOG_TO_DIGITAL_CONVERSION_RESOLUTION = 1023;
const float ZERO_CURRENT_VOLTAGE_LEVEL = 2.5;
const float CURRENT_SENSOR_SENSITIVITY = 0.185; // Sensitivity of the 5A current sensor module: 185 mV/A
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
lcd.backlight();
Serial.begin(9600);
}
int readCurrentSensor() {
return analogRead(CURRENT_SENSOR_PIN);
}
float calculateCurrent(int sensorValue) {
float analogVoltage = sensorValue * (VOLTAGE_REFERENCE / ANALOG_TO_DIGITAL_CONVERSION_RESOLUTION);
return (analogVoltage - ZERO_CURRENT_VOLTAGE_LEVEL) / CURRENT_SENSOR_SENSITIVITY;
}
void displayCurrent(float current) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Current: ");
lcd.print(current, 2); // Display the current with 2 decimal places
lcd.print(" A");
Serial.print("Current: ");
Serial.print(current, 2);
Serial.println(" A");
}
void loop() {
int sensorValue = readCurrentSensor();
float current = calculateCurrent(sensorValue);
displayCurrent(current);
delay(1000);
}
شرح المثال المتقدم
تقرأ الشيفرة المستشعر وتحسب قيمة تيار تقديرية، ثم تعرضها على شاشة I2C LCD وترسلها أيضًا عبر الاتصال التسلسلي.
مكونات المثال المتقدم
- Arduino Uno
- وحدة مستشعر تيار ACS712 (نسخة 5 A)
- شاشة 1602 I2C LCD
- أسلاك توصيل
التوصيلات الموضحة في المثال
- VCC / GND / OUT للمستشعر: 5 V / GND / A0 في Arduino
- SDA / SCL للشاشة: A4 / A5 في Uno
القيم المعروضة تقديرية وليست قياسات معايرة. للحصول على قراءات موثوقة، راعِ مرجع ADC الفعلي وانحياز المستشعر عند انعدام التيار وتفاوت الحساسية والضوضاء ودرجة الحرارة؛ ويمكن أخذ متوسط العينات أو ترشيحها. مرّر الموصل الحامل للتيار عبر أطراف المستشعر المخصصة وراعِ تصنيفات الجهد والتيار للوحدة.
📚 المكتبة
لا تحتاج قراءة ACS712 نفسها إلى مكتبة مخصصة. أما مثال الشاشة فيستخدم مكتبة LiquidCrystal_I2C التي يمكن تثبيتها من مدير المكتبات في Arduino IDE.









