عناوين الدرس

فحص البطارية باستخدام الاردوينو

مبتدئ

في هذا المشروع سنتعلم كيفية استخدام الأردوينو لعمل جهاز بسيط يستخدم لإختبار حالة البطارية.

Battery Tester: اختبار البطارية باستخدام الاردينو

المكونات المطلوبة

arduino uno r3

Arduino Uno

 

blue led 5mm

Blue LED

 

green led 5mm

Green LED

 

Red LED

 

220 Ω resistor

220 Ohm Resistors

 

2.2K Ohm Resistors

 

 

Full size breadboard 830

Breadboard

Breadboard Jumper Wire 65 pcs

Wires

البطارية Battery

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

Touch-Sensitive-On-Off-Circuit

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

توصيل الدارة

قم بتوصيل الدارة كما هو مبين بالشكل التالي :

Battery Tester: اختبار البطارية باستخدام الاردينو

تم توصيل البطارية مع الاردوينو كما هو موضح بالجدول التالي .

البطارية الاردوينو
الاحمر A0
الاسود Ground
Battery Tester: اختبار البطارية باستخدام الاردينو

سيقوم الأردوينو بقياس جهد البطارية ومقارنته مع قيم محددة، واعتمادا على جهد البطارية سيتم إضاءة واحد من LEDs. على سبيل المثال إذا كانت البطارية جيدة سيتم إضاءة الـ LED الاخضر، وإذا كانت ضعيفة يضيء الأحمر، وإذا كانت متوسطة يضيء الأصفر.

Battery Tester: اختبار البطارية باستخدام الاردينو

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

// new indicator
#define gled 2
// ok indicator
#define yled 4
// old indicator
#define rled 6

int analogVal = 0;
float voltage = 0;

void setup() {
  // put your setup code here, to run once:
  pinMode(gled, OUTPUT);
  pinMode(yled, OUTPUT);
  pinMode(rled, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  analogVal = analogRead(0);
  voltage = 0.0048*analogVal;
  if(voltage > 1.6)
  {
    digitalWrite(gled, HIGH);
    delay(2000);
    digitalWrite(gled, LOW);
    delay(1000);
  }
  else if(voltage < 1.6 && voltage > 1.4)
  {
    digitalWrite(yled, HIGH);
    delay(2000);
    digitalWrite(yled, LOW);
    delay(1000);
  }
  else if(voltage <= 1.4)
  {
    digitalWrite(rled, HIGH);
    delay(2000);
    digitalWrite(rled, LOW);
    delay(1000);
  }
}

شرح الكود :

في البداية، نقوم بتسمية منافذ الاردوينو التي تم توصيلها مع القطع الالكترونية. ثم يتم الإعلان عن المتغيرات التي سنحتاجها في البرنامج. سيتم استخدام المتغير analogVal لتسجيل قراءة الأردوينو للبطارية. والمتغير voltage لتسجيل جهد البطارية الفعلي بعد تحويلها إلى قيمة الجهد الفعلي.

// new indicator
#define gled 2
// ok indicator
#define yled 4
// old indicator
#define rled 6

int analogVal = 0;
float voltage = 0;

في الدالة ()setup، نقوم بإعداد الـ LEDs كمخرج.

void setup() {
  // put your setup code here, to run once:
  pinMode(gled, OUTPUT);
  pinMode(yled, OUTPUT);
  pinMode(rled, OUTPUT);
}

في الدالة ()loop، نقوم بقراءة قيمة جهد البطارية ثم تحويلها إلى قيمة الجهد الفعلية.

analogVal = analogRead(0);
voltage = 0.0048*analogVal;

ثم نقوم بعملية المقارنه للجهد بقيم معينة، وإعتمادا على هذا الجهد يتم إضاءة الـ LED الذي يعبر عن حالة البطارية.

if(voltage > 1.6)
  {
    digitalWrite(gled, HIGH);
    delay(2000);
    digitalWrite(gled, LOW);
    delay(1000);
  }
  else if(voltage < 1.6 && voltage > 1.4)
  {
    digitalWrite(yled, HIGH);
    delay(2000);
    digitalWrite(yled, LOW);
    delay(1000);
  }
  else if(voltage <= 1.4)
  {
    digitalWrite(rled, HIGH);
    delay(2000);
    digitalWrite(rled, LOW);
    delay(1000);
  }
X
تم إضافة المنتج إلى السلة بنجاح