قياس الجهد مع Arduino

Measuring Voltage with the Arduino

Arduino هو متحكم متعدد الاستخدامات قادر على قياس الجهد باستخدام محول التناظرية إلى الرقمية المدمج (ADC). هذه الإمكانية ضرورية للتطبيقات مثل مراقبة مستويات البطارية ، واستشعار إشارات الإدخال ، وقياس مخرجات المستشعر. سوف يرشدك هذا البرنامج التعليمي خلال عملية قياس الجهد باستخدام Arduino.


ماذا ستحتاج

  1. لوحة أردوينو (على سبيل المثال ، UNO ، Mega ، Nano)
  2. مقسم الجهد (إذا كان قياس الجهد أعلى من 5 فولت)
  3. الأسلاك الأسلاك والبلوز
  4. مصدر الجهد لقياس (على سبيل المثال ، البطارية أو المستشعر أو مصدر الطاقة القابل للتعديل)
  5. جهاز كمبيوتر مع Arduino IDE مثبت

الخطوة 1: فهم قياس الجهد على Arduino

يقوم ARDUINO ADC بتحويل الفولتية التناظرية (من 0 فولت إلى 5 فولت على معظم اللوحات) إلى قيمة رقمية 10 بت. هذا يعني أن ADC يوفر قيمة بين 0 و 1023 ، حيث يتوافق 0 مع 0V و 1023 مع 5V (أو الجهد المرجعي).

صيغة رئيسية

لحساب جهد الإدخال:

Voltage = (ADC_Value / 1023.0) * Reference_Voltage

ملحوظة: بالنسبة لمعظم لوحات Arduino ، فإن الجهد المرجعي الافتراضي هو 5V. إذا كنت تستخدم البديل 3.3V ، اضبط الصيغة وفقًا لذلك.


الخطوة 2: قياس الجهد المباشر

بالنسبة للفولتية التي تصل إلى 5 فولت ، يمكنك توصيل مصدر الجهد مباشرةً بالدبوس التناظري.

الأسلاك

عنصر دبوس أردوينو
مصدر الجهد (+) A0
مصدر الجهد (-) GND

رمز مثال

#define analogPin A0

void setup() {
  Serial.begin(9600);
}

void loop() {
  int adcValue = analogRead(analogPin); // Read ADC value
  float voltage = (adcValue / 1023.0) * 5.0; // Convert to voltage

  Serial.print("Voltage: ");
  Serial.print(voltage, 2); // Print voltage with 2 decimal places
  Serial.println(" V");

  delay(1000); // Update every second
}

الخطوة 3: قياس الفولتية العليا مع مقسم الجهد

لقياس الفولتية أعلى من 5 فولت ، استخدم أ مقسم الجهد لتوسيع نطاق الجهد الإدخال.

صيغة مقسم الجهد

يقاس مقسم الجهد جهد الإدخال باستخدام مقاومتين:

Vout = Vin * (R2 / (R1 + R2))

على سبيل المثال ، لقياس ما يصل إلى 12 فولت:

  • R1 = 10k أوم
  • R2 = 10K أوم
  • عامل التحجيم = 0.5 (vout = vin / 2)

الأسلاك

عنصر اتصال
مصدر الجهد (+) مقسم الجهد R1 مدخلات
مقسم الجهد R1/R2 Arduino A0
مصدر الجهد (-) GND

رمز مثال

#define analogPin A0
const float R1 = 10000.0; // Resistor R1 value in ohms
const float R2 = 10000.0; // Resistor R2 value in ohms

void setup() {
  Serial.begin(9600);
}

void loop() {
  int adcValue = analogRead(analogPin); // Read ADC value
  float voltage = (adcValue / 1023.0) * 5.0; // Voltage at A0

  // Scale up to actual input voltage
  float inputVoltage = voltage * ((R1 + R2) / R2);

  Serial.print("Input Voltage: ");
  Serial.print(inputVoltage, 2); // Print with 2 decimal places
  Serial.println(" V");

  delay(1000); // Update every second
}

الخطوة 4: استخدام جهد مرجعي خارجي

لقياسات أكثر دقة ، يمكنك استخدام الجهد المرجعي الخارجي عن طريق توصيله بدبوس AREF.

خطوات لتعيين مرجع خارجي

  1. قم بتوصيل الجهد المرجعي المستقر (على سبيل المثال ، 3.3V) إلى دبوس AREF.
  2. في الكود ، اضبط الجهد المرجعي:
analogReference(EXTERNAL);
  1. ضبط الحسابات في الكود للجهد المرجعي الجديد.

الخطوة 5: أفضل الممارسات لقياسات دقيقة

  1. تجنب الضوضاء: استخدم الأسلاك القصيرة والأرضية المناسبة لتقليل الضوضاء الكهربائية.
  2. معايرة الإعداد الخاص بك: تحقق من القراءات مع مقياس متعدد لضمان الدقة.
  3. حماية Arduino: استخدم المقاومات أو الثنائيات لحماية دبوس الإدخال التناظري من الجهد الزائد.
  4. مرشح إشارات صاخبة: أضف مكثفًا عبر المدخلات لتنعيم تقلبات الجهد.

تطبيقات قياس الجهد

  1. مراقبة مستويات البطارية
  2. استشعار الإشارات التناظرية من أجهزة الاستشعار
  3. قياس فولتية إمدادات الطاقة
  4. مشاريع Multimeter DIY

استكشاف الأخطاء وإصلاحها

  1. قراءات غير صحيحة:

    • تحقق من الأسلاك وضمان قيم المقاوم الصحيحة لمقسم الجهد.
    • تحقق من الجهد المرجعي في الحسابات.
  2. القيم المتقلب:

    • إضافة مكثف (10µF أو 100µF) عبر المدخلات.
  3. حماية الجهد الزائد:

    • تأكد من أن جهد الإدخال لا يتجاوز الحدود المحسوبة لموقع الجهد.

خاتمة

يعد قياس الجهد باستخدام Arduino واضحًا ومفيدًا للغاية للعديد من مشاريع الإلكترونيات. سواء كنت تراقب مستويات البطارية أو التواصل مع أجهزة الاستشعار ، فإن فهم قياس الجهد يفتح مجموعة واسعة من الاحتمالات. تجربة مع إعدادات مختلفة ودمج قياس الجهد في مشاريعك!

اترك تعليقًا

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.