//https://omoroya.com/
#include <LiquidCrystal.h>
LiquidCrystal lcd( 4, 6, 10, 11, 12, 13 );//LiquidCrystal(rs, enable, d4, d5, d6, d7)
int lowC = 262 ;
int lowCsh = 277 ;
int lowD = 294 ;
int lowDsh = 311 ;
int lowE = 330 ;
int lowF = 349 ;
int lowFsh = 370 ;
int lowG = 392 ;
int lowGsh = 415 ;
int lowA = 440 ;
int lowAsh = 466 ;
int lowB = 494 ;
int midC = 523 ;
int midCsh = 554 ;
int midD = 587 ;
int midDsh = 622 ;
int midE = 659 ;
int midF = 698 ;
int midFsh = 740 ;
int midG = 784 ;
int midGsh = 831 ;
int hiA = 880 ;
int hiAsh = 932 ;
int hiB = 988 ;
int hiC = 1046 ;
int hiCsh = 1108 ;
int hiD = 1174 ;
int hiDsh = 1244 ;
int hiE = 1318 ;
int hiF = 1396 ;
int hiFsh = 1480 ;
int hiG = 1568 ;
int hiGsh = 1662 ;
int hihiA = 1760 ;
int hihiAsh = 1864 ;
int hihiB = 1976 ;
int tct = 2 ;//タクトスイッチのピン番号
int spk = 8 ; // 圧電スピーカのアノードを7番ピンに。抵抗220Ωを挟んでカソードをGNDに接続。
int lylicNum = 0 ;//歌詞表示用の変数
String lylic[] = {
"\xb8\xda\xc5\xb2\xc6 \xbf\xcf\xaf\xc0 \xba\xc9\xb5\xda\xa6",//クレナイニ ソマッタ コノオレヲ
"\xc5\xb8\xde\xbb\xd2\xd9 \xd4\xc2\xca \xd3\xb3\xb2\xc5\xb2",//ナグサメル ヤツハ モウイナイ
"\xd3\xb3\xc6\xc4\xde\xc4 \xc4\xc4\xde\xb6\xc5\xb2",//モウニドト トドカナイ
"\xba\xc9\xb5\xd3\xb2",//コノオモイ
"\xc4\xbb\xde\xbb\xda\xc0 \xb1\xb2\xc6\xd1\xb6\xb2",//トザサレタ アイニムカイ
"\xbb\xb9\xcb\xde\xc2\xc2\xde\xb9\xd9",//サケビツヅケル
""
};
//初期設定箇所 toneを使用する場合はspkMode関数で出力指定は必要なし
void setup() {
lcd.begin( 16, 2 );
pinMode(tct, INPUT);
Serial.begin(9600); // シリアル通信の開始
}
void LylicWrite(){
if(lylicNum == 6){//最後の行まで表示したらリセット
lylicNum = 0;
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(lylic[lylicNum]);
lcd.setCursor(0, 1);
lcd.print(lylic[lylicNum + 1]);
lylicNum ++;
Serial.print(lylicNum);
}
void Kurenai(){
LylicWrite();
tone(spk,hiB,385) ;// く hiB
delay(400) ;
tone(spk,hiB,200) ;// れ hiB
delay(200) ;
tone(spk,hiAsh,200) ;// な hiA#
delay(200) ;
tone(spk,hiB,600) ;// い hiB
delay(600) ;
tone(spk,hiCsh,200) ;// に hiC#
delay(200) ;
tone(spk,hiDsh,400) ;// 染 hiD#
delay(400) ;
tone(spk,hiCsh,200) ;// ま hiC#
delay(200) ;
tone(spk,hiB,200) ;// っ hiB
delay(200) ;
tone(spk,hiAsh,800) ;// た hiA#
delay(800) ;
tone(spk,midGsh,600) ;// こ mid2G#
delay(600) ;
tone(spk,hiB,200) ;// の hiB
delay(200) ;
tone(spk,hiCsh,400) ;// お hiC#
delay(400) ;
tone(spk,hiB,400) ;// れ hiB
delay(400) ;
tone(spk,hiAsh,1550) ;// お hiA#
delay(1600) ;
LylicWrite();
tone(spk,hiB,385) ;// な hiB
delay(400) ;
tone(spk,hiB,200) ;// ぐ hiB
delay(200) ;
tone(spk,hiAsh,200) ;// さ hiA#
delay(200) ;
tone(spk,hiB,600) ;// め hiB
delay(600) ;
tone(spk,hiCsh,200) ;// る hiC#
delay(200) ;
tone(spk,hiDsh,400) ;// や hiD#
delay(400) ;
tone(spk,hiCsh,200) ;// つ hiC#
delay(200) ;
tone(spk,hiB,200) ;// う hiB
delay(200) ;
tone(spk,hiAsh,800) ;// は hiA#
delay(800) ;
tone(spk,midGsh,800) ;// もう mid2G
delay(800) ;
tone(spk,midFsh,400) ;// い midF#
delay(400) ;
tone(spk,hiAsh,400) ;// な hiA#
delay(400) ;
tone(spk,midGsh,1550) ;// い mid2G
delay(1600) ;
LylicWrite();
tone(spk,hiB,385) ;// もう hiB
delay(400) ;
tone(spk,hiB,200) ;// に hiB
delay(200) ;
tone(spk,hiAsh,200) ;// ど hiA#
delay(200) ;
tone(spk,hiB,600) ;// と hiB
delay(600) ;
tone(spk,hiCsh,200) ;// も hiC#
delay(200) ;
tone(spk,hiDsh,400) ;// ど hiD#
delay(400) ;
tone(spk,hiCsh,200) ;// ら hiC#
delay(200) ;
tone(spk,hiB,200) ;// な hiB
delay(200) ;
tone(spk,hiAsh,800) ;// い hiA#
delay(800) ;
LylicWrite();
tone(spk,midGsh,600) ;// こ mid2G#
delay(600) ;
tone(spk,hiB,200) ;// の hiB
delay(200) ;
tone(spk,hiCsh,400) ;// お hiC#
delay(400) ;
tone(spk,hiB,400) ;// も hiB
delay(400) ;
tone(spk,hiAsh,1550) ;// い hiA#
delay(1600) ;
LylicWrite();
tone(spk,hiB,180) ;// と hiB
delay(200) ;
tone(spk,hiB,180) ;// ざ hiB
delay(200) ;
tone(spk,hiB,200) ;// さ hiB
delay(200) ;
tone(spk,hiAsh,200) ;// れ hiA#
delay(200) ;
tone(spk,hiB,600) ;// た hiB
delay(600) ;
tone(spk,hiCsh,180) ;// あ hiC#
delay(200) ;
tone(spk,hiDsh,180) ;// い hiD#
delay(200) ;
tone(spk,hiDsh,185) ;// に hiD#
delay(200) ;
tone(spk,hiCsh,200) ;// む hiC#
delay(200) ;
tone(spk,hiB,200) ;// か hiB
delay(200) ;
tone(spk,hiAsh,800) ;// い hiA#
delay(800) ;
LylicWrite();
tone(spk,midGsh,550) ;// さ mid2G
delay(600) ;
tone(spk,midGsh,200) ;// け mid2G
delay(200) ;
tone(spk,midFsh,180) ;// び midF#
delay(200) ;
tone(spk,midFsh,180) ;// つ midF#
delay(200) ;
tone(spk,hiAsh,180) ;// づ hiA#
delay(200) ;
tone(spk,hiAsh,180) ;// け hiA#
delay(200) ;
tone(spk,midGsh,1600) ;// る mid2G
delay(1600) ;
delay(2000) ; // 2秒待つ
}
void loop() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Push Button");
while(digitalRead(tct) == HIGH){
//スイッチが押されるまで何もしない
}
Kurenai();
}