يعتبر الفولتميتر من أشهر ادوات القياس الالكترونية المستخدمة لدى المهندسين و الهواة على حد سواء حيث يعمل على قياس فرق الجهد بين اى طرفين يمر بهما تيار كهربى
اليوم سنتحدث عن كيفية صناعة فولتميتر بسيط و يمكنك من قياس حتى 4 نقاط مختلفة و تحديد فرق الجهد المطبق عليها و عرض النتيجة على شاشة كريسال من نوع 16×2
مبدأ العمل:
تتميز معظم المتحكمات الدقيقة المستخدمة فى اردوينو بوجود عدة مداخل للجهد التماثلى analog voltage يصل عددها الى 6 فى حالة arduino uno و يصل الى 14 فى حالة arduino mega و يصل اقصى فرق جهد يمكن قياسة الى 5 فولت تقريبا لكن مع بعض التعديلات يمكن استغلال هذه المداخل لعمل نقاط لقياس فرق الجهد اكبر
خصائص الفولتميتر:
- يمكن لهذا الفولتميتر قياس الجهد المستمر DC voltage
- اقصى فرق جهد يمكن قياسة يصل الى 50 فولت و تتحدد هذه النسبة من قيم المقاومات التى تعمل كمقسم للجهد voltage divider
لنبدأ على بركة الله 🙂
أولا عناصر الدائرة:
الدائرة عبارة عن:
- 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
جميل جداً .
انا نفذته ايضاً من قبل , مع مدخل لقياس للتيار الكهربائي و مقياس للمكثفات .
عمل رائع يعطيك العافية
لقياس الجهد السالب ماذا نفعل ؟؟؟؟
ممكن تستخدم op-amp كعاكس للاشارة بحيث يحولها لاشارة موجبة يمكن قياسها
وتسمى هذه الدائرة op-amp as inverter
http://en.wikipedia.org/wiki/Operational_amplifier_applications#Inverting_amplifier
لماذا نكتب 1, في الكود عند نهاية امر الطباعه
lcd.print(voltage[3] * DIV_4, 1);
@mohned
كيف قمت بقياس التيار
مجهودات رائعة ربنا يبارك فيك
هل يمكنني باستخدام هذه الدائره قياس شده التيار؟
ليس مباشرة ..
هناك خدعة قد تمكنك من ذلك 🙂
يمكنك استخدام مقاومة 1 اوم (بقدرة 10 وات) وتوصلها على التوالي مع الحمل المطلوب قياس شدة التيار المار به ثم يمكنك بعدها أن تقرأ فارق الجهد الواقع على هذه المقاومة ال 1 اوم
ومن خلال قانون اوم للتيار الكهربي يمكنك حساب التيار من خلال معرفة فارق الجهد
لقياس جهود عالية اكثر من 50 فولت ماذا نفعل