الوصف
وحدة قياس التيار والجهد MAX471
اختر إصدار قياس الجهد أو إصدار قياس الجهد والتيار. تصف القائمة وحدة لقياس الجهد والتيار المستمرين، مع مخارج تناظرية للتوصيل بمتحكم دقيق.
⚠️ تصحيح مهم وملاحظة حول النطاق
MAX471 مضخّم دقيق لقياس التيار في الطرف الموجب، وليس مستشعرًا بتأثير Hall. تحدد الشركة المصنّعة نطاق قياس ثنائي الاتجاه حتى ±3 A وتشغيلًا من 3 V إلى 36 V. صُمّم MAX471 لقياس تيار DC والبطاريات؛ لذلك لا تعتمد على ادعاء القائمة الأصلية بأنه يقيس تيار AC. تشرح ورقة بيانات الشركة أن خرج التيار يساوي 500 μA/A؛ وتحوّل مقاومة خرج 2 kΩ هذا الخرج اسميًا إلى 1 V/A. قد تحتوي الوحدة المرفقة على دارة إضافية، لذا تحقّق من مقياس الخرج الفعلي.
يذكر عنوان المنتج قياس الجهد حتى 25 V، بينما يستخدم مثال الشيفرة معامل مقسّم لمدى 0–36 V. هذان الرقمان متعارضان. تحقّق من نسبة مقسّم الجهد والحد الأقصى لجهد دخل اللوحة الفعلية قبل التوصيل؛ ولا تفترض أن الشيفرة تدعم 36 V. كما لم يتم التحقق مستقلًا من دقة ±1.5% للوحدة كاملة.
🔧 مواصفات الوحدة المذكورة
- تغذية الدارة: تذكر القائمة 3–36 V DC لدائرة المستشعر؛ تحقّق من جهد VCC المطلوب للوحة
- قياس التيار: من −3 A إلى +3 A (وفق القائمة ونطاق MAX471)
- خرج التيار: مقياس مذكور 1 V/A؛ ويعتمد المقياس الفعلي على مقاومة الخرج ودارة اللوحة
- قياس الجهد: حتى 25 V وفق القائمة؛ تحقّق من مقسّم الجهد في اللوحة
- المخارج التناظرية: إشارات قياس التيار والجهد بحسب الإصدار المختار
- درجة حرارة التشغيل: من −40 °C إلى 85 °C (وفق القائمة)
⚙️ طريقة العمل
يقيس MAX471 فرق الجهد عبر مقاومة قياس التيار الداخلية وينتج خرجًا يتناسب مع التيار. أما قسم قياس الجهد في الوحدة فيستخدم مسارًا منفصلًا بمقسّم جهد وخرج مستقل. هذه الوحدة ليست مستشعر عزل بتأثير Hall.
💡 الاستخدامات
- مراقبة شحن البطاريات وتفريغها بتيار DC
- تجارب مصادر التغذية والأحمال منخفضة الجهد
- مراقبة تيار المحركات ضمن تصنيف الوحدة
- النماذج الأولية للروبوتات والإلكترونيات
- مشاريع القياس باستخدام المتحكمات الدقيقة
📌 أطراف اللوحة وإشاراتها
- AT: خرج قياس الجهد التناظري المذكور في القائمة
- VT: خرج قياس التيار التناظري المذكور في القائمة
- VIN / GND: أطراف دخل الجهد
- VOUT / GND: أطراف خرج الجهد كما تظهر في القائمة
- GND: أرضي اللوحة (تُظهر القائمة عدة نقاط أرضي)
قد تختلف أسماء الأطراف بين إصدارات اللوحة. اتبع العلامات المطبوعة على اللوحة المرفقة والمخططات أدناه، وتأكد من أطراف الخرج وأطراف الإدخال قبل التوصيل. أبقِ الجهد الداخل إلى Arduino ضمن الحدود المسموحة للمدخل التناظري.


🔌 مثال Arduino Uno أساسي
نُبقي الشيفرة الأصلية في القائمة أدناه. معاملات تحويل التيار والجهد افتراضات واردة في تلك القائمة؛ عايرها للوحة الفعلية باستخدام جهاز قياس مرجعي مناسب قبل الاعتماد على القراءات.
#define CURRENT_SENSOR_PIN A0
#define VOLTAGE_SENSOR_PIN A1
void setup() {
Serial.begin(9600);
}
void loop() {
int currentSensorValue = analogRead(CURRENT_SENSOR_PIN);
int voltageSensorValue = analogRead(VOLTAGE_SENSOR_PIN);
float current = currentSensorValue * (5.0 / 1023.0); // 1V/A
float voltage = voltageSensorValue * (5.0 / 1023.0) * (36.0 / 5.0); // Calibration for 0-36V range
Serial.print("Current: ");
Serial.print(current);
Serial.print(" A, Voltage: ");
Serial.print(voltage);
Serial.println(" V");
delay(1000);
}
شرح المثال الأساسي
تقرأ الشيفرة قناتي التيار والجهد التناظريتين، وتقدّر القيم باستخدام معاملات التحويل المحددة، ثم تعرضها في الشاشة التسلسلية.
📟 مثال Arduino متقدم: شاشة LCD والاتصال التسلسلي
نُبقي الشيفرة المتقدمة الأصلية أدناه. ثبّت مكتبة متوافقة مع LiquidCrystal_I2C وتحقق من واجهة الاستخدام المناسبة لإصدارها.
#include <LiquidCrystal_I2C.h>
// Constants
const float V_REF = 5.0;
const int ADC_RESOLUTION = 1023;
const float CURRENT_SENSITIVITY = 1.0; // Sensibilité du module : 1V/A
const float VOLTAGE_CALIBRATION = (36.0 / 5.0); // Calibration pour la tension mesurée
const int CURRENT_SENSOR_PIN = A0;
const int VOLTAGE_SENSOR_PIN = A1;
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
lcd.backlight();
Serial.begin(9600);
}
void readSensorValues(int& currentSensorValue, int& voltageSensorValue) {
currentSensorValue = analogRead(CURRENT_SENSOR_PIN);
voltageSensorValue = analogRead(VOLTAGE_SENSOR_PIN);
}
float calculateCurrent(int currentSensorValue) {
return currentSensorValue * (V_REF / ADC_RESOLUTION) * CURRENT_SENSITIVITY;
}
float calculateVoltage(int voltageSensorValue) {
return voltageSensorValue * (V_REF / ADC_RESOLUTION) * VOLTAGE_CALIBRATION;
}
void displayValuesOnLCD(float current, float voltage) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Current: ");
lcd.print(current, 2); // Affiche le courant avec 2 décimales
lcd.print(" A");
lcd.setCursor(0, 1);
lcd.print("Voltage: ");
lcd.print(voltage, 2); // Affiche la tension avec 2 décimales
lcd.print(" V");
}
void displayValuesOnSerialConsole(float current, float voltage) {
Serial.print("Current: ");
Serial.print(current, 2);
Serial.print(" A, Voltage: ");
Serial.print(voltage, 2);
Serial.println(" V");
}
void loop() {
int currentSensorValue, voltageSensorValue;
readSensorValues(currentSensorValue, voltageSensorValue);
float current = calculateCurrent(currentSensorValue);
float voltage = calculateVoltage(voltageSensorValue);
displayValuesOnLCD(current, voltage);
displayValuesOnSerialConsole(current, voltage);
delay(1000);
}
شرح المثال المتقدم
تقرأ الشيفرة الخرجين التناظريين وتحسب قيمتي التيار والجهد التقديريتين، ثم تعرضهما على شاشة I2C LCD مقاس 16×2 وفي الشاشة التسلسلية.
مكونات المثال والتوصيلات
- Arduino Uno
- وحدة MAX471 بالإصدار المختار
- شاشة 1602 I2C LCD للمثال المتقدم
- أسلاك توصيل
- مخارج المستشعر إلى A0 وA1 في Arduino كما في الأمثلة الأصلية
- SDA / SCL للشاشة إلى A4 / A5 في Arduino Uno
تفترض حسابات الأمثلة مرجع ADC بجهد 5 V وقراءة بدقة 10 بت. وتتأثر القراءات الفعلية أيضًا بدقة مرجع ADC وانحياز الصفر ومقاومة الخرج ونسبة مقسّم الجهد وتفاوتات اللوحة. لا توصل جهدًا أعلى من الحد الذي تم التحقق منه للمقسّم. هذه الوحدة ليست واجهة سلامة معتمدة لجهد الشبكة.
📚 المكتبة
لا تحتاج القراءات التناظرية لـMAX471 إلى مكتبة مخصصة. يستخدم مثال الشاشة مكتبة LiquidCrystal_I2C المتاحة من مدير المكتبات في Arduino IDE.









