ساعة NeoPixel: الثواني
جزء من قسم المشاريع في رحلة Arduino على Coddy. الدرس 21 من 24.
المشروع الأخير ساعة بلا أرقام: حلقة من 12 مصباح NeoPixel، مثل الساعات الاثنتي عشرة على وجه الساعة، ويكون كل عقرب ضوءًا ملوّنًا. يقع البكسل 0 في الأعلى عند موضع الساعة 12، وتتتابع الأرقام باتجاه عقارب الساعة. سيضبط زران الوقت.
أولًا عقرب الثواني. الدقيقة فيها 60 ثانية، والحلقة فيها 12 بكسلًا، لذا يتحرك العقرب بكسلًا واحدًا كل 5 ثوانٍ.
تحسب seconds % 60 القيم من 0 إلى 59، ثم تبدأ مجددًا من 0، مثل الثواني على الساعة. يحوّل القسمة على 5 بالأعداد الصحيحة القيم من 0 إلى 59 إلى قيم من 0 إلى 11:
unsigned long seconds = millis() / 1000;
int secondPixel = (seconds % 60) / 5;في كل دورة من loop()، ارسم الحلقة من جديد: ring.clear()، واضبط بكسل العقرب، ثم ring.show(). من دون المسح، تبقى المواضع القديمة مضاءة وتمتلئ الحلقة. تكفي عشرة تحديثات في الثانية، لذا ينتهي البرنامج التمهيدي بـ delay(100).
التحدي
متوسطالحلقة موصولة بالدبوس 6. ارسم عقرب الثواني:
- احسب عدد الثواني منذ تشغيل الطاقة باستخدام
millis() / 1000 - بكسل العقرب هو
(seconds % 60) / 5 - امسح الحلقة، وأضئ ذلك البكسل باللون الأزرق باستخدام
ring.Color(0, 0, 255)، ثم اعرضه
أبقِ على delay(100). اضغط Run وراقب العقرب وهو يدور، ثم اضغط Check.
جرّب بنفسك
#include <Adafruit_NeoPixel.h>
const int ringPin = 6;
const int pixelCount = 12;
Adafruit_NeoPixel ring(pixelCount, ringPin, NEO_GRB + NEO_KHZ800);
void setup() {
ring.begin();
}
void loop() {
// حدّد موضع عقرب الثواني، وارسمه باللون الأزرق
delay(100); // أعد الرسم عشر مرات في الثانية
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المشاريع
3مستشعر ركن السيارة
مستشعر ركن السيارة: المسافةمستشعر ركن السيارة: الأضواءمستشعر ركن السيارة: التنبيهات الصوتيةمستشعر ركن السيارة: الشاشة6ساعة NeoPixel
ساعة NeoPixel: الثوانيساعة NeoPixel: الدقائقساعة NeoPixel: مزج العقاربساعة NeoPixel: ضبط الوقتتدرّب بنفسك: Playground لـ Arduino