اجعل مقياس التيار الرقمي المتقدم هذا باستخدام Arduino

اجعل مقياس التيار الرقمي المتقدم هذا باستخدام Arduino

في هذا المنشور ، سنقوم ببناء مقياس رقمي باستخدام شاشة LCD مقاس 16 × 2 و Arduino. سوف نفهم منهجية قياس التيار باستخدام مقاوم تحويل وننفذ تصميمًا يعتمد على Arduino. يمكن لمقياس التيار الرقمي المقترح قياس التيار الذي يتراوح من 0 إلى 2 أمبير (الحد الأقصى المطلق) بدقة معقولة.



كيف يعمل Ammeters

هناك نوعان من أجهزة القياس: التناظرية والرقمية ، تختلف طريقة عملها عن بعضها البعض. لكن كلاهما يشتركان في مفهوم واحد: مقاومة تحويلية.

مقاوم التحويل هو المقاوم ذو المقاومة الصغيرة جدًا الموضوعة بين المصدر والحمل أثناء قياس التيار.





دعونا نرى كيف يعمل مقياس التيار التناظري وبعد ذلك سيكون من الأسهل فهم المقياس الرقمي.

كيف يعمل مقياس التيار التناظري

مقاوم تحويل ذو مقاومة منخفضة جدًا R ويفترض أن نوعًا من المقاييس التناظرية متصلة عبر المقاوم الذي يتناسب انحرافه طرديًا مع الجهد عبر المقياس التناظري



الآن دعونا نمرر قدرًا من التيار من الجانب الأيسر. i1 هو التيار قبل دخول المقاوم التحويلة R و i2 سيكون التيار بعد المرور عبر المقاوم التحويلة.

سيكون التيار i1 أكبر من i2 لأنه أسقط جزءًا من التيار من خلال المقاوم التحويل. يولد الفرق الحالي بين المقاوم التحويلية كمية صغيرة جدًا من الجهد عند V1 و V2.
سيتم قياس مقدار الجهد بواسطة هذا المقياس التناظري.

يعتمد الجهد المتطور عبر المقاوم التحويلية على عاملين: التيار المتدفق عبر المقاوم التحويلة وقيمة المقاوم التحويلة.

إذا كان التدفق الحالي أكبر من خلال التحويلة ، يكون الجهد المتطور أكثر. إذا كانت قيمة التحويل عالية ، يكون الجهد المتطور عبر التحويل أكبر.

يجب أن يكون المقاوم التحويلة ذو قيمة صغيرة جدًا ويجب أن يمتلك تصنيفًا أعلى من القوة الكهربائية.

يضمن المقاوم ذو القيمة الصغيرة أن الحمل يحصل على كمية كافية من التيار والجهد للتشغيل العادي.

كما يجب أن يكون لمقاوم التحويل تصنيف قوة كهربائية أعلى بحيث يمكنه تحمل درجة الحرارة المرتفعة أثناء قياس التيار. كلما زاد التيار خلال التحويلة ، يتم توليد الحرارة.

الآن قد تكون لديك الفكرة الأساسية ، كيف يعمل جهاز القياس التناظري. الآن دعنا ننتقل إلى التصميم الرقمي.

نحن نعلم الآن أن المقاوم سينتج جهدًا إذا كان هناك تدفق للتيار. من الرسم البياني V1 و V2 هي النقاط ، حيث نأخذ عينات الجهد إلى الميكروكونترولر.

حساب الجهد لتحويل التيار

الآن دعونا نرى الرياضيات البسيطة ، كيف يمكننا تحويل الجهد الناتج إلى تيار.

قانون الأوم: I = V / R

نعلم قيمة المقاوم التحويلة R وسيتم إدخالها في البرنامج.

الجهد الناتج عبر المقاوم التحويلة هو:

V = V1 - V2

أو

V = V2 - V1 (لتجنب الرمز السلبي أثناء القياس وأيضًا يعتمد الرمز السلبي على اتجاه التدفق الحالي)

لذلك يمكننا تبسيط المعادلة ،

أنا = (V1 - V2) / R.
أو
أنا = (V2 - V1) / R.

سيتم إدخال إحدى المعادلات أعلاه في الكود ويمكننا العثور على التدفق الحالي وسيتم عرضه على شاشة LCD.

الآن دعونا نرى كيفية اختيار قيمة المقاوم التحويلة.

تم بناء Arduino في 10 بت من المحول التناظري إلى الرقمي (ADC). يمكنه اكتشاف من 0 إلى 5 فولت في 0 إلى 1024 خطوة أو مستويات الجهد.

لذا فإن دقة ADC هذه ستكون 5/1024 = 0.00488 فولت أو 4.88 مللي فولت لكل خطوة.

لذلك 4.88 مللي فولت / 2 مللي أمبير (الحد الأدنى من دقة مقياس التيار) = 2.44 أو 2.5 أوم المقاوم.

يمكننا استخدام أربعة مقاومة 10 أوم ، 2 وات بالتوازي للحصول على 2.5 أوم والتي تم اختبارها في النموذج الأولي.

لذا ، كيف يمكننا أن نقول الحد الأقصى للمدى القابل للقياس للتيار الكهربائي المقترح وهو 2 أمبير.

يمكن لـ ADC القياس من 0 إلى 5 فولت فقط أي. سيؤدي أي شيء أعلاه إلى إتلاف ADC في وحدة التحكم الدقيقة.

من النموذج الأولي الذي تم اختباره ، لاحظنا أنه عند المدخلات التناظرية من النقطة V1 و V2 عندما تكون القيمة الحالية المقاسة X mA ، يقرأ الجهد التناظري X / 2 (في الشاشة التسلسلية).

لنفترض على سبيل المثال ، إذا كان مقياس التيار يقرأ 500 مللي أمبير ، فإن القيم التناظرية على الشاشة التسلسلية تقرأ 250 خطوة أو مستويات الجهد. يمكن أن يتحمل ADC ما يصل إلى 1024 خطوة أو 5 فولت كحد أقصى ، لذلك عندما يقرأ مقياس التيار 2000 مللي أمبير ، يقرأ جهاز العرض التسلسلي 1000 خطوة تقريبًا. وهو قريب من 1024.

أي شيء يزيد عن 1024 مستوى الجهد سيؤدي إلى إتلاف ADC في Arduino. لتجنب ذلك قبل 2000 مللي أمبير مباشرة ، ستظهر رسالة تحذير على شاشة LCD تفيد بفصل الدائرة.

الآن ستكون قد فهمت كيف يعمل مقياس التيار الكهربائي المقترح.

الآن دعنا ننتقل إلى التفاصيل الإنشائية.

رسم تخطيطى:

اردوينو دي سي ديجيتال اميتر

الدائرة المقترحة بسيطة للغاية وسهلة الاستخدام للمبتدئين. بناء حسب مخطط الدائرة. اضبط مقياس الجهد 10K لضبط تباين الشاشة.

يمكنك تشغيل Arduino من USB أو عبر مقبس DC ببطاريات 9 فولت. أربعة مقاومات 2 وات سوف تبدد الحرارة بالتساوي من استخدام المقاوم 2.5 أوم مع المقاوم 8-10 واط.

عندما لا يمر أي تيار ، قد تقرأ الشاشة بعض القيم العشوائية الصغيرة التي قد تتجاهلها ، وقد يكون هذا بسبب الجهد الشارد عبر أطراف القياس.

ملاحظة: لا تقم بعكس قطبية إمداد حمل الإدخال.

كود البرنامج:

//------------------Program Developed by R.GIRISH------------------//
#include
#define input_1 A0
#define input_2 A1
LiquidCrystal lcd(12, 11, 5, 4, 3, 2)
int AnalogValue = 0
int PeakVoltage = 0
float AverageVoltage = 0
float input_A0 = 0
float input_A1 = 0
float output = 0
float Resolution = 0.00488
unsigned long sample = 0
int threshold = 1000
void setup()
{
lcd.begin(16,2)
Serial.begin(9600)
}
void loop()
{
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_1)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A0 = PeakVoltage * Resolution
PeakVoltage = 0
for(sample = 0 sample <5000 sample ++)
{
AnalogValue = analogRead(input_2)
if(PeakVoltage {
PeakVoltage = AnalogValue
}
else
{
delayMicroseconds(10)
}
}
input_A1 = PeakVoltage * Resolution
output = (input_A0 - input_A1) * 100
output = output * 4
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
while(analogRead(input_A0) >= threshold)
{
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Reached Maximum')
lcd.setCursor(0,1)
lcd.print('Limit!!!')
delay(1000)
lcd.clear()
lcd.setCursor(0,0)
lcd.print('Disconnect now!!')
delay(1000)
}
lcd.clear()
lcd.setCursor(0,0)
lcd.print('DIGITAL AMMETER')
lcd.setCursor(0,1)
lcd.print(output)
lcd.print(' mA')
Serial.print('Volatge Level at A0 = ')
Serial.println(analogRead(input_A0))
Serial.print('Volatge Level at A1 = ')
Serial.println(analogRead(input_A1))
Serial.println('------------------------------')
delay(1000)
}
//------------------Program Developed by R.GIRISH------------------//

إذا كان لديك أي سؤال محدد بخصوص مشروع دائرة مقياس التيار الكهربائي الرقمي المستند إلى Arduino ، يرجى التعبير في قسم التعليقات ، قد تتلقى ردًا سريعًا.




السابق: استخدام مقياس الجهد الرقمي MCP41xx مع Arduino التالى: أكثر من التيار الكهربائي المقطوع باستخدام Arduino