مقدمـــــــة عن المشروع
تحية طيبة !!!
وما نزال مع تطبيقات الاردوينو الرائعة , اليوم بصدد الحديث عن مشروع فولتميتر لقياس الفولت , مع المعرفة البسيطة ببرمجة الاردوينو و دوائر مقسم الجهد ، يمكننا تحويل الاردوينو إلى فولتميتر رقمي ويمكننا قياس جهد الدخل باستخدام الاردوينو وشاشة LCD مقاس 16 × 2 أو أي مقاس أخر يتوفر لديك .
يحتوي الاردوينو على العديد من دبابيس الإدخال التماثلية التي تتصل بمحول تماثلي إلى رقمي (ADC) داخل الاردوينو .
محمول ADC عبارة عن محول من 10 بتات ، مما يعني أن قيمة الخرج ستتراوح من 0 إلى 1023 . سوف نحصل على هذه القيمة باستخدام دالة ()analogRead . إذا كنت تعرف الجهد المرجعي ، يمكنك بسهولة حساب الجهد الموجود عند المدخلات التماثلية . ويمكننا استخدام دائرة مقسم الجهد لحساب الجهد لتوفير جهد دخل يمكن قياسه .
يتم عرض الجهد المقاس على شاشة الكريستال السائل 16 × 2 (LCD). لقد أظهرنا أيضًا الجهد في Serial Monitor لـ Arduino IDE ويمكنك التأكد من الجهد باستخدام جهاز فولتميتر حقيقي .
الان هيااا نبدأ !…
متطلبات المشروع
- Arduino uno
- 16×2 LCD (Liquid Crystal Display)
- 100 k ohm resistor
- 10 k ohm resistor
- 10 k ohm potentiometer
- breadboard
- jumper wires
طريقة العمل والتوصيل
دارة مقسم الجهد:
قبل الدخول في دائرة Arduino Voltmeter ، دعنا نناقش حول دائرة مقسم الجهد الكهربائي.
مقسم الجهد عبارة عن دائرة مقاومة كما يظهر في الشكل أدناه . في هذه الدائرة لدينا اثنين من المقاومات . كما هو مبين في الشكل ، R1 و R2 والتي هي 10K و 100K أوم . يتم أخذ النقطة الوسطى للفرع كمدخل أنولوج أو تماثلي إلى Arduino . يُطلق على هبوط الجهد عبر R2 اسم Vout ، وهذا هو الجهد المقسم لدائرتنا .
طريقة قياس الجهد :
باستخدام القيمة المعروفة (قيمتان مقاومتان R1 و R2 وجهد الدخل) ، يمكننا استخدام المعادلة أدناه لحساب الجهد الناتج .
Vout = Vin (R2/R1+R2)
تنص هذه المعادلة على أن جهد الخرج يتناسب طرديًا مع جهد الدخل ونسبة R1 و R2 .
من خلال تطبيق هذه المعادلة في كود اردوينو ، يمكن اشتقاق جهد الدخل بسهولة . لا يمكن لاردوينو قياس الجهد الكهربي لإدخال التيار المتردد من +55 فولت ، بمعنى آخر ، عند قياس 55 فولت ، سيكون دبوس اردوينو التماثلي بجهد أقصى يبلغ 5V بحيث يكون من الآمن قياسه ضمن هذا الحد . هنا يتم تعيين قيمة المقاومات R2 و R1 على 100000 و 10000 أي بنسبة 100: 10.
مخطط الدوائر والتوصيلات :
يتم توصيل جميع المكونات كما في المخطط أدناه:
يتم ربط Pin DB4 و DB5 و DB6 و DB7 و RS و EN لشاشات الكريستال السائل مباشرة بـ Pin D4 و D5 و D6 و D7 و D8 و D9 في Arduino Uno .
النقطة المركزية للمقاومتين R1 و R2 ، متصلة بـ Arduino Pin A0. بينما ترتبط النهايتان الآخرتان بجهد الإدخال (الجهد الواجب قياسه) و gnd .
الكـــــــود البرمجي
لتحميل الكود البرمجي اضغط هنا
#include <LiquidCrystal.h> // LIBRARY TO ACCESS THE LCD DISPLAY LiquidCrystal lcd( 4, 5, 6, 7,8 ,9 ); float input_volt = 0.0; float temp=0.0; float r1=10000.0; //r1 value float r2=100000.0; //r2 value void setup() { Serial.begin(9600); // opens serial port, sets data rate to 9600 bps lcd.begin(16, 2); //// set up the LCD's number of columns and rows lcd.print("DC DIGI VOLTMETER"); } void loop() { int analogvalue = analogRead(A0); temp = (analogvalue * 5.0) / 1024.0; // FORMULA USED TO CONVERT THE VOLTAGE input_volt = temp / (r2/(r1+r2)); if (input_volt < 0.1) { input_volt=0.0; } Serial.print("v= "); // prints the voltage value in the serial monitor Serial.println(input_volt); lcd.setCursor(0, 1); lcd.print("Voltage= "); // prints the voltage value in the LCD display lcd.print(input_volt); delay(300); }