عناوين الدرس

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

مبتدئ

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