#作成していること
下記コード処理から改変して、スイッチを押すと音楽停止、音楽停止中にスイッチを押すと再び音楽が流れるプログラムを作成しています。
自力で作成していますが、割り込み処理が分からず、作成がストップしています。
分かるかた、お助けお願いします
##プログラムの仕様
○ 割り込み処理を使用して作成すること
○ スイッチにはチャタリング処理を入れること
○ 割り込み関数 setup()に設定する
○ スイッチは2番ピンに接続
○ スピーカーは、12番ピンとGNDに接続
###改変前の処理
//グローバル変数など #define SOUND_DO 262 //ド #define SOUND_RE 294 //レ #define SOUND_MI 330 //ミ #define SOUND_FA 349 //ファ #define SOUND_SO 392 //ソ #define SOUND_RA 440 //ラ #define SOUND_SI 494 //シ #define SOUND_DO_HIGH 523 //高いド #define SOUND_LENGTH 500 // 音を鳴らす長さ #define SOUND_PIN 12 // 圧電ブザーを接続ポート int length1 = 600; // 音符の間隔のミリ秒 int length2 = 600; // 音符の間隔ミリ秒 int i = 0; void setup() { //初期値の設定など } void loop() { //繰り返し処理 i = 1; out(length1,length2); delay(1000); i = 2; out(length1, length2); delay(1000); } void out(int length1,int length2) {// if(i == 1) { //ミュージックホーンの前半 tone(SOUND_PIN,SOUND_MI,SOUND_LENGTH); delay(length1); tone(SOUND_PIN,SOUND_DO_HIGH,SOUND_LENGTH); delay(length1); tone(SOUND_PIN,SOUND_RA,SOUND_LENGTH); delay(length1); tone(SOUND_PIN,SOUND_MI,SOUND_LENGTH); delay(length2); tone(SOUND_PIN,SOUND_DO_HIGH,SOUND_LENGTH); delay(length2); tone(SOUND_PIN,SOUND_RA,SOUND_LENGTH); delay(length2); tone(SOUND_PIN,SOUND_MI,SOUND_LENGTH); delay(length2); tone(SOUND_PIN,SOUND_DO_HIGH,SOUND_LENGTH); delay(length2); tone(SOUND_PIN,SOUND_MI,SOUND_LENGTH); delay(length2); tone(SOUND_PIN,SOUND_RA,SOUND_LENGTH); } else if(i == 2) { //ミュージックホーンの後半 tone(SOUND_PIN,SOUND_RA,SOUND_LENGTH); delay(length1); tone(SOUND_PIN,SOUND_MI,SOUND_LENGTH); delay(length1); tone(SOUND_PIN,SOUND_DO_HIGH,SOUND_LENGTH); delay(length1); tone(SOUND_PIN,SOUND_RA,SOUND_LENGTH); delay(length2); tone(SOUND_PIN,SOUND_MI,SOUND_LENGTH); delay(length2); tone(SOUND_PIN,SOUND_DO_HIGH,SOUND_LENGTH); delay(length2); tone(SOUND_PIN,SOUND_RA,SOUND_LENGTH); } }
####開発環境
開発ソフト:Arduino 1.7.11
ボード:Arduino UNO
これはまだ解決していないのでしょうか?もし回答に問題があれば指摘して頂きたく思います。
回答1件
あなたの回答
tips
プレビュー