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

مبتدئ

image_pdf

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

 

voltmeter

 

المواد والأدوات

اردوينو

X1 اردوينو اونو

DC-Voltage-Sensor

X1 مستشعر جهد التيار المستمر

LCD

X1 الشاشة الكرستالية

X1لوحة تجارب

arduino-usb-lead-blue

X1 سلك اردوينو

مقاومة متغيرة

1X مقاومة متغيرة

أسلاك توصيل

مجموعة أسلاك توصيل (M/M)

us-sanitizer-without-touch

مجموعة أسلاك توصيل (M/F)

 

توصيل الدائرة

Arduino-Uno- voltage sensor

البرمجة

 

#include "LiquidCrystal.h"

const int voltageSensor = A0;

float vOUT = 0.0;
float vIN = 0.0;
float R1 = 30000.0;
float R2 = 7500.0;
int value = 0;

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7

void setup()
{
//Serial.begin(9600);
lcd.begin(16,2);
lcd.print(" Measure > 25V ");
delay(2000);
}

void loop()
{
value = analogRead(voltageSensor);
vOUT = (value * 5.0) / 1024.0;
vIN = vOUT / (R2/(R1+R2));
//Serial.print("Input = ");
//Serial.println(vIN);
lcd.setCursor(0,0);
lcd.print("Input = ");
lcd.setCursor(9,0);
lcd.print(vIN);
delay(500);
}

شرح الكود البرمجي

بالبداية يتطلب استدعاء مكتبة الشاشة الكرستالية

#include "LiquidCrystal.h"

نعرف منفذ لقراءة مستشعر جهد التيار المستمر

const int voltageSensor = A0;

نعرف قيمة ابتدائية للمتغيرات

float vOUT = 0.0;
float vIN = 0.0;

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

float R1 = 30000.0;
float R2 = 7500.0;
int value = 0;

نعرف منافذ الشاشة الكرستالية

LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // RS, E, D4, D5, D6, D7

في دالة void setup() نكتب أوامر تهيئة الشاشة

void setup()
{

lcd.begin(16,2);
lcd.print(" Measure > 25V ");
delay(2000);
}

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

void loop()
{
value = analogRead(voltageSensor);
vOUT = (value * 5.0) / 1024.0;
vIN = vOUT / (R2/(R1+R2));
//Serial.print("Input = ");
//Serial.println(vIN);
lcd.setCursor(0,0);
lcd.print("Input = ");
lcd.setCursor(9,0);
lcd.print(vIN);
delay(500);
}
X
Product added to the cart