لحن من مصفوفتين
جزء من قسم المخرجات في رحلة Arduino على Coddy. الدرس 14 من 24.
ليست كل النغمات في اللحن متساوية الطول. يمكن لمصفوفة ثانية أن تحتوي على المدد، بحيث تصطف مع النغمات: تنتمي notes[i] وdurations[i] إلى بعضهما.
int notes[] = {262, 262, 392, 392, 440, 440, 392};
int durations[] = {400, 400, 400, 400, 400, 400, 800};ستندمج نغمتان متساويتان متتاليتان في نغمة طويلة واحدة. يحافظ صمت قصير بعد كل نغمة على انفصالهما، لذا شغّل النغمة طوال مدتها وانتظر قليلًا بعد ذلك:
tone(8, notes[i], durations[i]);
delay(durations[i] + 50);تنهي المدة النغمة، أما الـ50 ms الإضافية فهي الفاصل قبل النغمة التالية.
عندما يتجاوز الفهرس آخر نغمة، ينتهي اللحن: انتظر لحظة قبل بدء تشغيله مجددًا كي لا يتداخل مع نفسه.
التحدي
متوسطاعزف السطر الأول من وميض، وميض، أيتها النجمة الصغيرة على المنفذ 8:
- النغمات: 262, 262, 392, 392, 440, 440, 392
- المدد: 400 ms لكل نغمة، و800 ms للنغمة الأخيرة
- بعد كل نغمة، انتظر مدتها بالإضافة إلى 50 ms
- بعد النغمة الأخيرة، انتظر ثانية أخرى وابدأ من جديد
اضغط على تشغيل، ثم تحقق.
جرّب بنفسك
const int buzzerPin = 8;
// أنشئ هنا مصفوفتَي النغمات والمدد، ومتغير الفهرس
void setup() {
}
void loop() {
// شغّل نغمة واحدة، وانتظر مدتها مع إضافة 50 ms، ثم انتقل إلى النغمة التالية
// بعد النغمة الأخيرة، انتظر ثانية واحدة ثم ابدأ من جديد
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المخرجات
تدرّب بنفسك: Playground لـ Arduino