كيف تصنع مقياس جهد رباعى القنوات (فولتميتر voltmeter) باستخدام اردوينو

163100_lg

يعتبر الفولتميتر من أشهر ادوات القياس الالكترونية المستخدمة لدى المهندسين و الهواة على حد سواء حيث يعمل على قياس فرق الجهد بين اى طرفين يمر بهما تيار كهربى

اليوم سنتحدث عن كيفية صناعة فولتميتر بسيط و يمكنك من قياس حتى 4 نقاط مختلفة و تحديد فرق الجهد  المطبق عليها و عرض النتيجة على شاشة كريسال من نوع 16×2

 مبدأ العمل:

تتميز معظم المتحكمات الدقيقة المستخدمة فى اردوينو بوجود عدة مداخل للجهد التماثلى analog voltage يصل عددها الى 6 فى حالة arduino uno و يصل الى 14 فى حالة arduino mega و يصل اقصى فرق جهد يمكن قياسة الى 5 فولت تقريبا لكن مع بعض التعديلات يمكن استغلال هذه المداخل لعمل نقاط لقياس فرق الجهد اكبر

خصائص الفولتميتر:

  • يمكن لهذا الفولتميتر قياس الجهد المستمر DC voltage
  • اقصى فرق جهد يمكن قياسة يصل الى 50 فولت و تتحدد هذه النسبة من قيم المقاومات التى تعمل كمقسم للجهد voltage divider

 

 لنبدأ على بركة الله 🙂

 

أولا عناصر الدائرة:

arduino voltmeter

arduino voltmeter

 الدائرة  عبارة عن:

  • 4 مقاومات بقيمة 1 ميجا اوم
  • 4 مقاومات بقيمة 100 كيلو اوم
  • مقاومة واحدة بقيمة 10 كيلو اوم
  • مقاومة بقيمة 47 اوم
  • شاشة كريستال 16×2
  • لوحة اردوينو (اى نوع)

 

ثانيا الكود البرمجى:

يمكنك تحميل الملف المحتوى على الكود من الرابط التالى

http://www.mediafire.com/download/xu0h742a504o1bv/arduino_voltmeter.zip

 أو قراءة الكود

/*--------------------------------------------------------------
  Program:      voltmeter_LCD

  Description:  4 channel DC voltmeter with voltages displayed
                on LCD to 1 decimal place

  Hardware:     Arduino Uno with voltage dividers on A2 to A5.
                2 x 16 LCD connected to standard pins used in
                Arduino example sketches from IDE.

  Software:     Developed using Arduino 1.0.5 software
                Should be compatible with Arduino 1.0 +

  Date:         27 May 2013

  Author:       W.A. Smith, http://startingelectronics.com
--------------------------------------------------------------*/
#include <LiquidCrystal.h>

// number of analog samples to take per reading, per channel
#define NUM_SAMPLES 10
// voltage divider calibration values
#define DIV_1    11.1346
#define DIV_2    11.1969
#define DIV_3    11.0718
#define DIV_4    11.0718
// ADC reference voltage / calibration value
#define V_REF    4.991

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int sum[4] = {0};                // sums of samples taken
unsigned char sample_count = 0;  // current sample number
float voltage[4] = {0.0};        // calculated voltages
char l_cnt = 0;                  // used in 'for' loops

void setup()
{
    lcd.begin(16, 2);
}

void loop()
{
    // take a number of analog samples and add them up
    while (sample_count < NUM_SAMPLES) {
        // sample each channel A2 to A5
        for (l_cnt = 0; l_cnt < 4; l_cnt++) {
            sum[l_cnt] += analogRead(A2 + l_cnt);
        }
        sample_count++;
        delay(10);
    }
    // calculate the voltage for each channel
    for (l_cnt = 0; l_cnt < 4; l_cnt++) {
        voltage[l_cnt] = ((float)sum[l_cnt] / (float)NUM_SAMPLES * V_REF) / 1024.0;
    }
    // display voltages on LCD
    // each voltage is multiplied by the resistor network
    // division factor to calculate the actual voltage
    // voltage 1 - A (pin A2)
    lcd.setCursor(0, 0);
    lcd.print("A ");
    lcd.print(voltage[0] * DIV_1, 1);
    lcd.print("V ");
    // voltage 2 - B (pin A3)
    lcd.setCursor(8, 0);
    lcd.print("B ");
    lcd.print(voltage[1] * DIV_2, 1);
    lcd.print("V ");
    // voltge 3 - C (pin A4)
    lcd.setCursor(0, 1);
    lcd.print("C ");
    lcd.print(voltage[2] * DIV_3, 1);
    lcd.print("V ");
    // voltage 4 - D (pin A5)
    lcd.setCursor(8, 1);
    lcd.print("D ");
    lcd.print(voltage[3] * DIV_4, 1);
    lcd.print("V ");
    // reset count and sums
    sample_count = 0;
    for (l_cnt = 0; l_cnt < 4; l_cnt++) {
        sum[l_cnt] = 0;
    }
}

لمشاهدة فيديو على يوتيوب 



المصادر:

 Measuring DC Voltage using Arduino
4 channels arduino voltemeter

9 thoughts on “كيف تصنع مقياس جهد رباعى القنوات (فولتميتر voltmeter) باستخدام اردوينو

    • ليس مباشرة ..

      هناك خدعة قد تمكنك من ذلك 🙂

      يمكنك استخدام مقاومة 1 اوم (بقدرة 10 وات) وتوصلها على التوالي مع الحمل المطلوب قياس شدة التيار المار به ثم يمكنك بعدها أن تقرأ فارق الجهد الواقع على هذه المقاومة ال 1 اوم

      ومن خلال قانون اوم للتيار الكهربي يمكنك حساب التيار من خلال معرفة فارق الجهد

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *