الفولتميتر رباعي القنوات 0-50 فولت على أساس مجموعة المختبر الرقمي NR05

في كثير من الأحيان من الضروري مراقبة في وقت واحد الفولتية متعددة، على سبيل المثال، الناتج من الجهد كمبيوتر إمدادات الطاقة، وعدة بطاريات وهلم جرا. N. و نشر الماضي ، درسنا كيفية عمل قفل الجمع، والآن، استنادا إلى عدة مجلس توسع "المعمل الرقمي» NR05 ، وجمع أربع قنوات الرقمية الفولتميتر مع بيان النتائج على الشاشة المدمجة في اللوحة. يمكن تغيير نطاق الفولتات المقاسة باستخدام مقسم خارجي ، ويتم تحديد خطوة القياس من خلال دقة المحول التناظري إلى الرقمي (ADC) للمتحكم الدقيق Atmega 328 المستخدم في لوحة Arduino وهي 1024 قيمة. بعد ذلك ، في نطاق الجهد 0-50 فولت ، ستكون خطوة قياس الجهد حوالي 50 مللي فولت ، وهو ما يكفي تمامًا للاستخدام المنزلي.



سنقوم بتوصيل الفولتية المقاسة بالمدخلات التناظرية المجانية للوحة. هذه هي المدخلات A0 و A4 و A5 و A7 الموجودة في الجزء السفلي الأيمن من اللوحة. لاستخدام الإدخال A0 ، أفلت مؤقتًا المقاوم R4 الموجود بالقرب من موصل XP3 في الجزء الأيمن السفلي من اللوحة.



سنقوم بعمل مقسم خارجي مع موصلات لتوصيل الفولتية المقاسة ولوحة تمدد باستخدام طريقة LUT (ما يسمى "تقنية الكي بالليزر") ونحفر اللوحة في محلول كلوريد الحديديك. لقد استخدمنا مقاومات SMD ، ولكن إذا لم يكن لديك طابعة ليزر ، فيمكنك عمل الحاجز عن طريق رسم الموصلات باستخدام قلم حبر مقاوم للماء. في هذه الحالة ، من الأفضل استخدام مقاومات الإخراج ، حيث ستكون دقة حجم الموصلات الناتجة أقل. بالتفصيل ، يمكن دراسة تقنية تصنيع لوحات الدوائر المطبوعة عن طريق الحفر في كلوريد الحديديك عن طريق شراء مجموعة من NN201 التي تنتجها Master Kit.

تظهر لوحة التقسيم النهائية في الصورة أدناه.



تحتوي لوحة التوسيع على شاشة بلورية سائلة من سطرين مع 16 حرفًا في كل سطر. على مثل هذا المؤشر ، فإن أربع قراءات من 0 إلى 50 فولت مع مكان عشري واحد ومعرفات القناة مريحة تمامًا لوضعها.

يُنصح بإجراء القياسات نفسها عدة مرات في فترة زمنية قصيرة ، بمتوسط ​​قيمها. سيؤدي ذلك إلى تقليل أخطاء القياس العشوائية.
ندرك أيضًا في برنامج "تجميد" النتائج عند النقر فوق أحد الأزرار المضمنة في اللوحة ، على سبيل المثال ، الزر الأوسط. الصحافة الثانية ستستأنف القياسات المستمرة.

نستخدم الصمام المتصل بالمخرج الرقمي الثالث عشر من Arduino للإشارة إلى عملية القياس.

بناءً على ما سبق ، سنقوم بإنشاء برنامج لـ Arduino:

المفسد
/*--------------------------------------------------------------
0-50, ,
, LCD-
16 , 2 ,


NR05 « »; 4 10
1, 100, A0,A4,A5,A7


5 V_REF
.
-
.

(
)
Vin
.
Vout .
DIV_* Vin/Vout.

startingelectronics.com
--------------------------------------------------------------*/
#include <LiquidCrystal.h>

// ( )
#define LED 13
//
#define NUM_SAMPLES 20
//
#define DIV_1 11.186
#define DIV_2 11.186
#define DIV_3 11.186
#define DIV_4 11.186
//
#define V_REF 4.575
//
#define NUM_KEYS 5
// ( )
int adcKeyVal[NUM_KEYS] = {30, 150, 360, 535, 760};

LiquidCrystal lcd(A1, A2, A3, 2, 4, 7);
unsigned long sum[4] = {0}; //
unsigned char sample_count = 0; //
float voltage[4] = {0.0}; //
int cnt = 0; //
int keyIsPressed = 0; // «»

void setup()
{
lcd.begin(16, 2);
pinMode(LED, OUTPUT);
digitalWrite(LED, LOW);
}

void loop()
{
// 3 , «»
if (get_key() == 3){
keyIsPressed = !keyIsPressed;
delay(500);
}
// (1),
if (keyIsPressed == 0){
digitalWrite(LED, LOW);
//
while (sample_count < NUM_SAMPLES) {
// sample channel A0, A4, A5, A7
sum[0] += analogRead(A0);
sum[1] += analogRead(A4);
sum[2] += analogRead(A5);
sum[3] += analogRead(A7);
sample_count++;
delay(10);
}
digitalWrite(LED, HIGH);
//
for (cnt = 0; cnt < 4; cnt++) {
voltage[cnt] = ((float)sum[cnt] / (float)NUM_SAMPLES * V_REF) / 1024.0;
}
//
lcd.setCursor(0, 0);
lcd.print(«A „);
lcd.print(voltage[0] * DIV_1, 1);
lcd.print(“V „);
// voltage 2 — B (pin A4)
lcd.setCursor(8, 0);
lcd.print(“B „);
lcd.print(voltage[1] * DIV_2, 1);
lcd.print(“V „);
// voltge 3 — C (pin A5)
lcd.setCursor(0, 1);
lcd.print(“C „);
lcd.print(voltage[2] * DIV_3, 1);
lcd.print(“V „);
// voltage 4 — D (pin A7)
lcd.setCursor(8, 1);
lcd.print(“D „);
lcd.print(voltage[3] * DIV_4, 1);
lcd.print(“V „);

//
sample_count = 0;
for (cnt = 0; cnt < 4; cnt++) sum[cnt] = 0;
delay(20);
}
}

//
int get_key()
{
int input = analogRead(A6);
int k;
for (k = 0; k < NUM_KEYS; k++)
if (input < adcKeyVal[k])
return k + 1;
return 0;
}


البرنامج مجهز بتعليقات مفصلة بما فيه الكفاية تشرح ميزات تنفيذ الخوارزمية.

ولعل أهم ميزة هي عملية معايرة الثوابت الموصوفة في التعليقات المتضمنة في حساب الفولتية المقاسة. لمعايرة الفاصل (يتم إجراؤه مرة واحدة) ، استخدم مصدر جهد ثابت ثابت. بالنظر إلى أن المعايرة تستغرق وقتًا قصيرًا ، يمكنك استخدام بطارية "كرونا" 9 فولت ومقياس رقمي متعدد بنجاح. يعد مقياس متعدد من "مجموعة مهندس إلكتروني شاب" NR02 مناسبًا تمامًا. هذه المجموعة رائعة أيضًا لتعليم اللحام وتجميع الكلور.

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

لتغيير نطاق القياس ، من الضروري تطبيق مقسم بنسبة تقسيم مختلفة لجهد الإدخال.

Source: https://habr.com/ru/post/ar393225/


All Articles