يعتبر الفولتميتر من أشهر ادوات القياس الالكترونية المستخدمة لدى المهندسين و الهواة على حد سواء حيث يعمل على قياس فرق الجهد بين اى طرفين يمر بهما تيار كهربى
اليوم سنتحدث عن كيفية صناعة فولتميتر بسيط و يمكنك من قياس حتى 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 فولت ماذا نفعل