Menu
CoddyTech
flag Ar iconالعربيةdown icon

مقياس الضوء

جزء من قسم المدخلات في رحلة Arduino على Coddy. الدرس 22 من 22.

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

قسّم المهمة إلى دوال، لكل منها مهمة واحدة، حتى تبدو loop() كأنها وصف:

void loop() {
  int percent = lightPercent();
  showLevel(percent);
  // اطبع النسبة المئوية
}

تقرأ lightPercent() وحدة الضوء عبر AO وتُرجع قيمة من 0 (ظلام) إلى 100 (سطوع). تنخفض قيمة AO كلما زاد الضوء، لذا حوّل القيم بالعكس: تجعل map(reading, 0, 1023, 100, 0) القيمة 1023 تصبح 0، والقيمة 0 تصبح 100.

تُحدّد showLevel(int percent) عتبة خاصة لكل مصباح LED في الشريط: يضيء الأول عندما تتجاوز القيمة 25، والثاني عندما تتجاوز 50، والثالث عندما تتجاوز 75. يحتاج كل مصباح إلى else، حتى يتمكن الشريط من التقلّص مجددًا عندما يخفت الضوء.

challenge icon

التحدي

متوسط

المخرج AO في وحدة الضوء متصل بالمنفذ A0، ومصابيح LED في الشريط متصلة بالمنافذ 10 و11 و12:

  • int lightPercent(): القيمة 0 في الظلام، و100 في الضوء الساطع
  • void showLevel(int percent): يضيء المنفذ 10 عندما تتجاوز القيمة 25، والمنفذ 11 عندما تتجاوز 50، والمنفذ 12 عندما تتجاوز 75
  • في loop()، استدعِ الدالتين، واطبع النسبة المئوية، وانتظر 200 ms

اضغط على Run، وحرّك منزلق الضوء، ثم اضغط على Check.

جرّب بنفسك

const int lowPin = 10;
const int midPin = 11;
const int highPin = 12;

// اكتب int lightPercent() هنا

// اكتب void showLevel(int percent) هنا

void setup() {
  pinMode(lowPin, OUTPUT);
  pinMode(midPin, OUTPUT);
  pinMode(highPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  // اقرأ شدة الضوء كنسبة مئوية، واعرضها على شريط المؤشرات، واطبعها، ثم انتظر 200 ms
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس المدخلات

تدرّب بنفسك: Playground لـ Arduino