#include <Servo.h>
#include "pitches.h"
const int buzzerPin = 13; // ブザーが接続されているピン
//サーボモーターを接続するArduinoのピン番号
#define PIN_MOTOR 10
//Servo型のmotor変数を宣言
Servo motor;
double doremi[7]={261.626,293.665,329.628,349.228,391.995,440.000,493.883};
double a = doremi[0]; //ド
double b = doremi[1]; //レ
double c = doremi[2]; //ミ
double d = doremi[3]; //ファ
double e = doremi[4]; //ソ
double f = doremi[5]; //ラ
double g = doremi[6]; //シ
int star [] = {
NOTE_do,NOTE_do,NOTE_so,NOTE_so,NOTE_ra,NOTE_ra,NOTE_so,NOTE_fa,NOTE_fa,NOTE_mi,NOTE_mi,NOTE_re,NOTE_re,NOTE_do
};
int duration = 500; // 500 miliseconds
void kirakira(){
for (int thisNote = 0; thisNote < 14; thisNote++) {
tone(8, star[thisNote], duration);
delay(500);
}
}
void setup() {
pinMode(buzzerPin, OUTPUT);
Serial.begin(9600);
Serial.println("d,r,mのいずれか1文字を入力してください");
motor.attach(PIN_MOTOR);
}
void loop() {
if (Serial.available() > 0) { // シリアル通信が可能か確認
char input = Serial.read(); // シリアルからデータを読み取る
if (input == '\n' || input == '\r') // 制御文字をカット
return;
switch (input) {
case 'd':
Serial.print(input);
Serial.println("が入力されました");
kirakira(); //キラキラ星
motor.write(90);
break;
case 'r':
Serial.print(input);
Serial.println("が入力されました");
buzzer(b); // 'r' が入力された場合、1500Hzの音を鳴らす
motor.write(90);
break;
case 'm':
Serial.print(input);
Serial.println("が入力されました");
buzzer(c); // 'm' が入力された場合、2000Hzの音を鳴らす
motor.write(180);
break;
default:
Serial.print(input);
Serial.println("は無効な入力");
noTone(buzzerPin); // 無効な入力の場合、音を停止
}
}
}
// ブザーを鳴らす関数
void buzzer(int sound) {
tone(buzzerPin, sound); // 指定された周波数でブザーを鳴らす
delay(500); // 500ミリ秒間音を鳴らす
noTone(buzzerPin); // 音を停止
}