ממשיכים להגיע אליכם עד הבית!
משלוח חינם

קוד עבודה עם רמקול פאסיבי

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

כך ניתן לייצר צלילים שונים עבור מצבים שונים (למשל תשובה נכונה או שגויה)

 

השמעת הצלילים מתבססת על פקודת tone שמלווים אותה עם delay כדי לוודא שאין קוד אחר שמפריע לנגינה במהלכה

מבנה הפקודה:

    
	tone(pin, frequency, duration)
  

 

את הקוד המנהל את הצלילים נשמור כ-טאב נפרד, עם הקוד הבא:

 

קבועים ראשוניים

    
/*
 * this file uses pitches.h which has constants for all notes
 */
int speakerOut = 12;              
int count = 0;
int count2 = 0;
int count3 = 0;
int MAX_COUNT = 24;
  

 

אתחול הפין השולט על הרמקול למצב יציאה 

    
	void setup_pSpeaker() {

	pinMode(speakerOut, OUTPUT);

	}
  

שימוש בקובץ חיצוני הכולל קבועים בעלי משמעות לכל תדר של תו

    
	#include "pitches.h";
  

 

צפצוף קצר למשך 50 מילישניות בתדר C5

השימוש העיקרי יהיה חיווי לחיצה, ולכן צליל קצר ונייטרלי

    
void beep(){
      tone( speakerOut, NOTE_C5, 50);
      delay(50);
}
  

צפצוף למשך 200 מילישניות בתדר G5

השימוש יהיה לסמן תשובה נכונה, בלי לעכב את המשחק יותר מדי

    
void playGood(){
      tone( speakerOut, NOTE_G5, 200);
      delay(200);
}
  

 

צפצוף למשך 200 מילישניות בתדר D5

השימוש יהיה לסמן תשובה שגויה בלי לעכב את המשחק יותר מדי

    

void playWrong() {
      tone( speakerOut, NOTE_D5, 200);
      delay(200);
}
  

 

עבור סיום המשחק, נרצה רצף של מספר צלילים, כך שיהיה מעין מנגינת סיום.

ניצור מערך של התווים של המנגינה, ומערך מקביל של משך כל תו, ואז בלולאה ננגן אותם.

כך גם קל יותר לעשות שינויים בעתיד במנגינה

מנגינת הסיום

    

int wrong_tone[]={NOTE_D5,NOTE_E5,NOTE_CS5};
int wrong_times[]={400,200,250};
void playFinish() {
  for (int k=0;k<3;k++){
      tone( speakerOut, wrong_tone[k], wrong_times[k]);
      delay(wrong_times[k]);
  }
}
  

ובאותו אופן, מנגינת פתיחה למשחק

    
int good_tone[]={NOTE_G5,NOTE_B5};
int good_times[]={200,400};
void playStart(){
  for (int k=0;k<2;k++){
      tone( speakerOut, good_tone[k], good_times[k]);
      delay(good_times[k]);
  }
}
  

 

 


תגובות גולשים