الوصف
وحدة قياس الجهد B25 من 0 إلى 25V
تستخدم هذه الوحدة مقسّم مقاومات لخفض جهد DC قبل قياسه بمدخل تناظري في المتحكم الدقيق. تحدد القائمة حدًا أقصى للدخل قدره 25 V ونسبة تقسيم خمسة إلى واحد.
🔧 المواصفات المذكورة
- نطاق الدخل: من 0 إلى 25 V DC (وفق القائمة؛ لا تتجاوز تصنيف اللوحة المرفقة)
- مقاومات المقسّم: R1 = 30 kΩ وR2 = 7.5 kΩ
- نسبة التقسيم: 5:1 (يكون الخرج التناظري نحو خُمس جهد الدخل)
- أصغر زيادة مذكورة للكشف: 0.02445 V عند الدخل المقاس
- خطوة القياس التناظرية المذكورة: 0.00489 V عند مدخل ADC في Arduino بمرجع 5 V ودقة 10 بت
- الأبعاد: نحو 4 × 3 × 2 cm (وفق القائمة)
- المكونات الخارجية: لا حاجة إليها لاستخدام المقسّم الأساسي
⚙️ طريقة العمل
تخفض المقاومتان الجهد الذي يصل إلى الخرج التناظري. مع نسبة التقسيم 5:1 المذكورة، يقابل دخل 25 V نحو 5 V عند مدخل ADC. هذه الدارة لا توفر عزلًا كهربائيًا؛ لذلك يجب توصيل أرضي المصدر وArduino بالشكل المناسب، مع الالتزام بتصنيفات اللوحة والمدخل التناظري.
📌 التوصيل—تحقّق من علامات اللوحة
تستخدم القائمة الأصلية تسميات متعارضة؛ إذ تصف أطراف الدخل بأنها VCC/GND ثم تذكر أيضًا أطراف +/−. في اللوحات الشائعة لمقسّم الجهد، يكون + و− لجهد القياس، وS هو الخرج التناظري المخفّض، ويكون −/GND أرضيًا مشتركًا مع Arduino. تحقّق من العلامات المطبوعة ودائرة اللوحة الفعلية قبل التوصيل، ولا تفترض أن الوحدة تحتاج إلى تغذية VCC منفصلة.
- دخل القياس +: الطرف الموجب لجهد DC المراد قياسه
- دخل القياس −: الطرف السالب / الأرضي المشترك
- S: الخرج التناظري المخفّض إلى A0 في Arduino
- GND في Arduino: يُوصل بالأرضي المشترك للمقسّم بحسب تصميم اللوحة الفعلية
🔌 مثال Arduino Uno أساسي
نُبقي مثال الشيفرة الأصلي أدناه. يفترض مرجع ADC بجهد 5 V وتحويلًا بدقة 10 بت ومقسّمًا بنسبة 5:1. عاير المرجع ونسبة المقسّم على الأجهزة الفعلية للحصول على قياس أدق.
#define ANALOG_IN_PIN A0
void setup() {
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(ANALOG_IN_PIN);
float voltage = sensorValue * (5.0 / 1023.0) * 5.0; // Facteur de conversion pour 25V
Serial.print("Voltage: ");
Serial.print(voltage);
Serial.println(" V");
delay(1000);
}
شرح المثال الأساسي
تقرأ الشيفرة الجهد التناظري بعد خفضه، ثم تضربه في خمسة لتقدير جهد الدخل وتعرض النتيجة في الشاشة التسلسلية.
مكونات المثال الأساسي
- Arduino Uno
- وحدة مقسّم الجهد B25
- أسلاك توصيل
📟 مثال متقدم: شاشة LCD عبر I2C
نُبقي مثال الشاشة الأصلي أدناه. ثبّت مكتبة متوافقة مع LiquidCrystal_I2C وتحقق من واجهة الاستخدام لإصدار المكتبة المثبّت في Arduino IDE.
#include <LiquidCrystal_I2C.h>
// Constantes
const float V_REF = 5.0;
const int ADC_RESOLUTION = 1023;
const float DIVIDER_RATIO = 5.0;
const int VOLTAGE_SENSOR_PIN = A0;
const int DELAY_TIME = 1000; // Délai entre les lectures
const float MAX_VOLTAGE = 25.0; // Tension maximale mesurable
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.begin();
lcd.backlight();
Serial.begin(9600);
}
void readSensorValue(int& sensorValue) {
sensorValue = analogRead(VOLTAGE_SENSOR_PIN);
}
float calculateVoltage(int sensorValue) {
if (ADC_RESOLUTION == 0) {
Serial.println("Erreur: ADC_RESOLUTION est zéro.");
return 0.0;
}
float adc_voltage = sensorValue * (V_REF / ADC_RESOLUTION);
float voltage = adc_voltage * DIVIDER_RATIO;
if (voltage > MAX_VOLTAGE) {
Serial.println("Erreur: Tension hors plage.");
return 0.0;
}
return voltage;
}
void displayValuesOnLCD(float voltage) {
static float lastVoltage = -1.0;
if (voltage != lastVoltage) {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Voltage: ");
lcd.print(voltage, 2); // Affiche la tension avec 2 décimales
lcd.print(" V");
lastVoltage = voltage;
}
}
void displayValuesOnSerialConsole(float voltage) {
Serial.print("Voltage: ");
Serial.print(voltage, 2);
Serial.println(" V");
}
void loop() {
int sensorValue;
readSensorValue(sensorValue);
float voltage = calculateVoltage(sensorValue);
displayValuesOnLCD(voltage);
displayValuesOnSerialConsole(voltage);
delay(DELAY_TIME);
}
شرح المثال المتقدم
تقرأ الشيفرة المدخل التناظري وتطبق نسبة مقسّم الجهد المحددة، ثم تعرض الجهد التقديري على شاشة LCD والشاشة التسلسلية. تتضمن دالة الحساب فحصًا للحد الأقصى، لكن هذا الفحص البرمجي لا يحمي العتاد من الجهد الزائد.
المكونات والتوصيلات
- Arduino Uno
- وحدة مقسّم الجهد B25
- شاشة 1602 I2C LCD للمثال المتقدم
- خرج الوحدة S إلى A0 في Arduino
- SDA / SCL للشاشة إلى A4 / A5 في Uno
- أرضي مشترك وفق توصيل اللوحة الفعلية
يقيس هذا المقسّم جهد DC موجبًا فقط. تحقّق من الحد الأقصى لدخل اللوحة، وتأكد من أن الجهد المخفّض لا يتجاوز أبدًا الحد المسموح للمدخل التناظري. افحص التوصيل بمقياس قبل ربطه بدارة مهمة.
📚 المكتبة
لا تحتاج دارة مقسّم الجهد إلى مكتبة مخصصة. يستخدم مثال الشاشة مكتبة LiquidCrystal_I2C المتاحة عبر مدير المكتبات في Arduino IDE.









