מנגינה משני מערכים
חלק מהיחידה פלטים במסלול ה-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 הנוספות הן ההפסקה לפני הבא.
כשהאינדקס עובר את התו האחרון, המנגינה מסתיימת: המתינו רגע לפני שתתחילו אותה שוב, כדי שהיא לא תתנגש בעצמה.
אתגר
בינונינגנו את השורה הראשונה של Twinkle Twinkle Little Star בפין 8:
- תווים: 262, 262, 392, 392, 440, 440, 392
- משך: 400 ms לכל תו, ו־800 ms לתו האחרון
- אחרי כל תו, המתינו למשך שלו ועוד 50 ms
- אחרי התו האחרון, המתינו שנייה נוספת והתחילו שוב
לחצו על Run, ואז על Check.
נסו בעצמכם
const int buzzerPin = 8;
// צרו כאן את המערכים של התווים ומשך הזמן שלהם, ואת האינדקס
void setup() {
}
void loop() {
// נגנו תו אחד, המתינו למשך הזמן שלו ועוד 50 ms, ואז עברו לתו הבא
// אחרי התו האחרון, המתינו שנייה והתחילו שוב
}
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה פלטים
תרגלו בעצמכם: Arduino אונליין