#include "onkai.h"
// スタートスイッチ関連
#define SWITCH 12 // スイッチを接続している端子番号
#define SWITCH_OFF 1 // スイッチOFFの時のdigitalReadの値
#define SWITCH_ON 0 // スイッチONの時のdigitalReadの値
// アラーム音関連
#define SPEAKER 13 // スピーカーの端子番号
#define ALARM 880 // 通常のアラーム音周波数
// アラームメロディー関連
#define ALARM_ONKAISUU 13 // アラームメロディーの音の数
// 音データの構造体
struct oto {
uint16_t onkai;
uint16_t nagasa;
};
// 音データの構造体配列
struct oto alarm_melody[] = {
{DO_4, 200},
{MI_4, 200},
{SO_4, 400},
{MI_4, 400},
{DO_4, 200},
{MI_4, 200},
{SO_4, 400},
{MI_4, 400},
{DO_4, 200},
{MI_4, 200},
{SO_4, 400},
{SI_4, 400},
{DO_5, 800}
};
void setup() {
// 端子の設定
pinMode(SWITCH, INPUT_PULLUP); // スイッチ接続端子の設定
// スイッチが押されるまで待つ
while(digitalRead(SWITCH) == SWITCH_OFF) {
}
}
void loop() {
uint8_t count; // for文で回数を数えるために使用する変数
uint8_t oto_bangou; // for文でメロディーを鳴らすために使用する変数
// メロディー音を3回鳴らす
for( count=0; count<3; count++) {
// メロディーを演奏する
for( oto_bangou=0; oto_bangou<ALARM_ONKAISUU; oto_bangou++ ) {
//tone(SPEAKER, alarm_melody[oto_bangou][0]);
//delay(alarm_melody[oto_bangou][1]);
tone(SPEAKER, alarm_melody[oto_bangou].onkai);
delay(alarm_melody[oto_bangou].nagasa);
}
// 音を消す
noTone(SPEAKER);
// 1.5秒あける
delay(1500);
}
// 何もしないで待つ
while( true ) {
}
}