Menu
CoddyTech

סיימון: כפתורים וצלילים

חלק מהיחידה פרויקטים במסלול ה-Arduino של Coddy. שיעור 13 מתוך 24.

Simon הוא משחק זיכרון: הלוח מציג רצף של אורות צבעוניים וצלילים, ואתם חוזרים עליו באמצעות הכפתורים. בכל סיבוב הרצף מתארך באחד, עד שטועים. יש ארבעה צבעים, ולכל אחד כפתור, נורית LED וצליל.

כשיש ארבעה מכל דבר, מערכים שומרים על הקוד קצר. האיבר 0 בכל מערך הוא אדום, 1 הוא ירוק, 2 הוא כחול ו-3 הוא צהוב, כך שמספר אחד, i, מציין צבע בכל מקום:

const int ledPins[4] = {9, 10, 11, 12};
const int buttonPins[4] = {2, 3, 4, 5};
const int notes[4] = {262, 330, 392, 523};

לולאת for בודקת את כל ארבעת הכפתורים. פעלו בשני רגעים: כפתור נלחץ (LOW עכשיו, HIGH בפעם הקודמת) ומשתחרר (HIGH עכשיו, LOW בפעם הקודמת). המערך lastState שומר את הקריאה האחרונה של כל כפתור. בשלבים הבאים לחיצה נספרת כשהכפתור משתחרר. הכפתורים האלה לא מרעישים, לכן בדיקות הקצוות מספיקות.

challenge icon

אתגר

בינוני

גרום לארבעת הצבעים לנגן:

  • ב־setup(), לולאת for מגדירה את פיני ה־LED כיציאות ואת פיני הכפתורים כ־INPUT_PULLUP
  • כשלוחצים על הכפתור i, הדלק את ledPins[i] ונגן את notes[i] בפין 8
  • כשמשחררים אותו, כבה את ה־LED וקרא ל־noTone()

לחץ על Run, נגן בכפתורים ואז לחץ על Check.

נסו בעצמכם

// ערך אחד לכל צבע: אדום, ירוק, כחול, צהוב
const int ledPins[4] = {9, 10, 11, 12};
const int buttonPins[4] = {2, 3, 4, 5};
const int notes[4] = {262, 330, 392, 523};  // C, E, G ו-C גבוה
const int buzzerPin = 8;

int lastState[4] = {HIGH, HIGH, HIGH, HIGH};  // הקריאה האחרונה של כל כפתור

void setup() {
  // נורות ה-LED הן יציאות, והכפתורים מוגדרים כ-INPUT_PULLUP

}

void loop() {
  // עבור כל כפתור: כשהוא נלחץ, הדלק את נורת ה-LED שלו ונגן את הצליל שלו;
  // כשהוא משתחרר, כבה את שניהם

}
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה פרויקטים

תרגלו בעצמכם: Arduino אונליין