مقياس الضوء
جزء من قسم المدخلات في رحلة 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، حتى يتمكن الشريط من التقلّص مجددًا عندما يخفت الضوء.
التحدي
متوسطالمخرج 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
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المدخلات
تدرّب بنفسك: Playground لـ Arduino