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

سطوع 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() عند تخزينها.

challenge icon

التحدي

متوسط

المقبض المتصل بـ 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);
}
quiz iconاختبر نفسك

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

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

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