الوصف
وحدة مستشعر تيار ACS712 بمدى 20A
تستخدم هذه الوحدة مستشعر ACS712 بتأثير Hall لقياس التيار المار عبر الموصل الموجود عليها. وتوفر جهدًا تناظريًا يتغير مع التيار المقاس، وهي مخصصة لقياس AC أو DC ضمن النطاق المحدد.
🔧 المواصفات المذكورة
- جهد التغذية: 4.5–5.5 V DC
- نطاق القياس: من −20 A إلى +20 A
- الحساسية: 100 mV/A (وفق القائمة لنسخة 20 A)
- الخرج: جهد تناظري يتناسب مع التيار
- العزل: تذكر قائمة المنتج 2.1 kV RMS
- الدقة: تذكر قائمة المنتج ±1.5%
- درجة حرارة التشغيل: من −40 °C إلى 85 °C
تحدد ورقة بيانات الشركة المصنّعة لمستشعر ACS712 حساسية نموذجية قدرها 100 mV/A ونطاقًا محسنًا من −20 A إلى +20 A لنسخة x20. وتعتمد خصائص العزل والدقة على اللوحة الفعلية وبنيتها وظروف الاختبار. رقم العزل المذكور لا يعني أن هذه الوحدة آمنة لجهد الشبكة أو الجهود الخطرة. استخدم مصهرًا وغلافًا ومسافات مناسبة وإجراءات عمل مؤهلة.
⚙️ طريقة العمل
ينشئ التيار المار في مسار النحاس مجالًا مغناطيسيًا. وتحوله شريحة Hall إلى جهد تناظري. يكون الخرج عند انعدام التيار اسميًا قريبًا من نصف جهد التغذية، ويتغير أعلى أو أدنى من هذا المستوى حسب اتجاه التيار ومقداره.
💡 الاستخدامات
- مراقبة تيار المحركات وشواحن البطاريات
- مراقبة الطاقة في الأجهزة الإلكترونية
- مراقبة زيادة التيار في النماذج منخفضة الجهد
- مشاريع الروبوتات والأنظمة المدمجة
- تجارب إدارة الطاقة
📌 أطراف التوصيل
- 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 analogVoltage = sensorValue * (5.0 / 1023.0);
float current = (analogVoltage - 2.5) / 0.100; // Sensibilité de 100 mV/A pour 20A
Serial.print("Current: ");
Serial.print(current);
Serial.println(" A");
delay(1000);
}
شرح المثال الأساسي
تقرأ الشيفرة الخرج التناظري وتحول قيمة ADC إلى جهد تقديري، ثم تقسم الفرق عن 2.5 V على 0.100 V/A لتقدير التيار. وتعرض النتيجة عبر الشاشة التسلسلية.
مكونات المثال الأساسي
- Arduino Uno
- وحدة مستشعر تيار ACS712 (نسخة 20 A)
- أسلاك توصيل
التوصيلات الموضحة في الشيفرة
- VCC: 5 V في Arduino
- GND: GND في Arduino
- OUT: A0 في Arduino
📟 مثال Arduino متقدم: شاشة I2C LCD
نُبقي مثال الشاشة الأصلي أدناه. ثبّت مكتبة متوافقة مع LiquidCrystal_I2C وتحقق من توافق واجهة الاستخدام مع إصدار المكتبة المثبّتة.
#include <LiquidCrystal_I2C.h>
// Broches de connexion
#define CURRENT_SENSOR_PIN A0
// Constantes
const float V_REF = 5.0;
const int ADC_RESOLUTION = 1023;
const float ZERO_CURRENT_VOLTAGE = 2.5;
const float SENSITIVITY = 0.100; // Sensibilité du module 20A : 100 mV/A
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
lcd.backlight();
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(CURRENT_SENSOR_PIN);
float analogVoltage = sensorValue * (V_REF / ADC_RESOLUTION);
float current = (analogVoltage - ZERO_CURRENT_VOLTAGE) / SENSITIVITY;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Current: ");
lcd.print(current, 2); // Affiche le courant avec 2 décimales
lcd.print(" A");
Serial.print("Current: ");
Serial.print(current, 2);
Serial.println(" A");
delay(1000);
}
شرح المثال المتقدم
تقرأ الشيفرة خرج المستشعر وتقدّر التيار باستخدام 100 mV/A، ثم تعرض النتيجة على شاشة I2C LCD وفي الشاشة التسلسلية.
مكونات المثال المتقدم
- Arduino Uno
- وحدة مستشعر تيار ACS712 (نسخة 20 A)
- شاشة 1602 I2C LCD
- أسلاك توصيل
التوصيلات الموضحة في المثال
- VCC / GND / OUT للمستشعر: 5 V / GND / A0 في Arduino
- SDA / SCL للشاشة: A4 / A5 في Uno
هذه الأمثلة توضيحية وليست جهاز قياس معايرًا. لتحسين الدقة، قِس خرج المستشعر الفعلي عند انعدام التيار ومرجع ADC، وراعِ تفاوت الحساسية ودرجة الحرارة، ورشّح العينات. تحقّق من مسار التيار وتصنيف اللوحة ومقطع الموصل وحدود الحرارة قبل الاستخدام. لا تعتبر تصنيف العزل تصريحًا بالتعامل مع جهد الشبكة المكشوف.
📚 المكتبة
لا تحتاج قراءة المستشعر إلى مكتبة مخصصة. يستخدم مثال الشاشة مكتبة LiquidCrystal_I2C المتاحة عبر مدير المكتبات في Arduino IDE.









