شريط مستوى الضوء
جزء من قسم الشاشات والمستشعرات في رحلة Arduino على Coddy. الدرس 22 من 24.
يمكن للحلقة عرض رقم على شكل شريط: كلما كان الرقم أكبر، زاد عدد وحدات البكسل المضيئة. الرقم هنا هو مستوى الإضاءة.
كما في درس ضوء الليل، تنخفض قراءة مستشعر الضوء على A0 كلما زادت الإضاءة. اعكسها أولًا، بحيث يعني الرقم الأكبر ضوءًا أكثر:
int light = 1023 - analogRead(A0);
int count = map(light, 0, 1023, 0, 16);ثم امسح الحلقة وأضئ وحدات البكسل من 0 حتى count ناقص 1:
ring.clear();
for (int i = 0; i < count; i++) {
ring.setPixelColor(i, yellow);
}
ring.show();تتيح clear() للشريط أن يتقلص: من دونها، تظل وحدات البكسل التي أضيئت عندما كان الجو ساطعًا مضيئة عندما يحل الظلام.
التحدي
متوسطمستشعر الضوء موصول بـ A0 والحلقة بالدبوس 6. أنشئ شريطًا ضوئيًا:
- اعكس القراءة بحيث يعطي الضوء الأكبر رقمًا أكبر
- حوّلها إلى نطاق من 0 إلى 16 بكسلًا
- امسح الحلقة، وأضئ هذا العدد من البكسلات بدءًا من البكسل 0، ثم اعرضها
اضغط على Run، وغيّر الضوء على اللوحة، ثم اضغط على Check.
جرّب بنفسك
#include <Adafruit_NeoPixel.h>
// 16 بكسل، البيانات على الطرف 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
uint32_t yellow = ring.Color(255, 160, 0);
void setup() {
ring.begin();
}
void loop() {
int reading = analogRead(A0); // تنخفض القراءة كلما زادت شدة الضوء
// أضئ المزيد من البكسلات كلما زادت شدة الضوء
delay(50);
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الشاشات والمستشعرات
1شاشات العرض ذات الأجزاء السبعة
شاشة العرض ذات الأجزاء السبعةأنماط الأرقام في البايتاتالعدّ على الشاشةالعدّ التنازلي حتى الصفرمحاكي رمي النردتدرّب بنفسك: Playground لـ Arduino