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

مبتدئ

image_pdf

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

// 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
Product added to the cart