سطوع NeoPixel
جزء من قسم الشاشات والمستشعرات في رحلة Arduino على Coddy. الدرس 16 من 24.
مصابيح NeoPixels ساطعة. تؤدي ring.setBrightness(level) إلى خفض سطوعها جميعًا دفعةً واحدة: 0 تعني الإطفاء، و255 تعني السطوع الكامل.
تعمل هذه الدالة عن طريق تغيير قياس الألوان المخزنة في ذاكرة اللوحة. عند مستوى سطوع 64، أي نحو الربع، يُخزَّن اللون الأحمر بقيمة 255 على أنه 64. لكن ثمة مشكلة: تغيير القياس يؤدي إلى فقدان التفاصيل. إذا خفّضت السطوع إلى 0، تصبح جميع الألوان المخزنة 0، لذا عند رفع السطوع مجددًا، لن يبقى شيء لتغيير قياسه، وتظل الحلقة مظلمة.
لذلك، كلما تغيّر السطوع، اضبط الألوان مجددًا بعد ذلك:
ring.setBrightness(level);
ring.fill(white); // مخزَّن بمستوى السطوع الجديد
ring.show();تُغيَّر مقاييس الألوان التي تضبطها بعد setBrightness() عند تخزينها.
التحدي
متوسطالمقبض المتصل بـ A0 هو أداة لتعتيم الحلقة:
- حوّل القراءة إلى مستوى سطوع من 0 إلى 255 باستخدام
map() - اضبطه باستخدام
ring.setBrightness() - ثم املأ الحلقة باللون الأبيض واعرضها في كل دورة من
loop()
اضغط على Run وأدِر المقبض، ثم اضغط على Check.
جرّب بنفسك
#include <Adafruit_NeoPixel.h>
// 16 بكسلًا، والبيانات على الطرف 6
Adafruit_NeoPixel ring(16, 6, NEO_GRB + NEO_KHZ800);
uint32_t white = ring.Color(255, 255, 255);
void setup() {
ring.begin();
}
void loop() {
int reading = analogRead(A0);
// اضبط السطوع باستخدام المقبض، ثم أضئ الحلقة بأكملها باللون الأبيض
delay(50);
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الشاشات والمستشعرات
1شاشات العرض ذات الأجزاء السبعة
شاشة العرض ذات الأجزاء السبعةأنماط الأرقام في البايتاتالعدّ على الشاشةالعدّ التنازلي حتى الصفرمحاكي رمي النرد3NeoPixels
أول NeoPixel لكالألوان على حلقة البكسلاتملء الحلقة ومسحهامطاردة البكسلاتسطوع NeoPixelحلقة قوس قزحتدرّب بنفسك: Playground لـ Arduino