Japanino (Arduino)の調べ 将棋の調べ 鉄道の調べ 旅先料理の調べ ビールコレクション
MusicGame.sk
/*
Music Game 音程当てゲーム
スイッチを ON にすると2つの音が聞こえます。
後ろの音が高くなっていると思えば、スイッチを OFF にして、1秒以内に ON
にしてください。(その後、2秒以内に OFF にしないと次のゲームが始まります)
後ろの音が低くなっていると思えば、スイッチを OFF にして、そのままに
してください。
正解の場合は LED が 4個点灯します。不正解の場合は LED は 1個です。
Copyright (C) GOMI Hiroshi 2010 All right reserved.
*/
int ledPin[] = {7, 8, 9, 10, 11, 12, 13};
int inputPin = 6;
int tonePin = 14;
#define NOTE_C4 262
#define NOTE_D4 294
#define NOTE_E4 330
#define NOTE_F4 349
#define NOTE_G4 392
#define NOTE_A4 440
#define NOTE_B4 494
#define NOTE_C5 523
int note[] = {NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4};
void setup() {
for (int led = 0; led < 7; led++) {
pinMode(ledPin[led], OUTPUT);
}
pinMode(inputPin, INPUT);
digitalWrite(inputPin, HIGH);
randomSeed(millis());
}
void loop()
{
waitForON(); // スイッチが ON になるまで待つ
on(3);
tone(tonePin, note[4], 500);
long r = random(6); // サイコロを振る(乱数発生)
if (r == 4) r++;
delay(500);
tone(tonePin, note[r], 500);
waitForOFF(); // スイッチが OFF になるまで待つ
int sw = readSW(); // 1秒以内にスイッチが ON されたかどうか
if (sw == 1) on(0); else on(6);
if (r < 4) on(2); else on(4);
if (sw == 1 && r < 4) on(1);
else if (sw == 0 && r > 4) on(5);
else off(3);
delay(2000);
clearLED();
}
/*
スイッチが ON になるまで待つ
*/
void waitForON(){
for (;;) {
if (digitalRead(inputPin) == LOW) break;
delay(10);
}
}
/*
スイッチが OFF になるまで待つ
*/
void waitForOFF(){
for (;;) {
if (digitalRead(inputPin) == HIGH) break;
delay(10);
}
}
/*
LED を点灯させる
@param led LEDの相対位置(0-6)
*/
void on(int led) {
digitalWrite(ledPin[led], HIGH); // set the LED on
}
/*
LED を消灯させる
@param led LEDの相対位置(0-6)
*/
void off(int led) {
digitalWrite(ledPin[led], LOW); // set the LED off
}
/*
LED の全消灯
*/
void clearLED() {
for (int i = 0; i < 7; i++) off(i);
}
/*
一定時間にスイッチがオンになったかどうか
*/
int readSW() {
unsigned long time = millis();
int sw = 0;
// 1秒経過するまで待つ
for(;;) {
if (digitalRead(inputPin) == LOW) {
sw = 1;
break;
}
if (time + 1000L <= millis()) break;
off(3);
delay(10);
on(3);
delay(10);
}
return sw;
}
更新記録
Japanino (Arduino)の調べ 将棋の調べ 鉄道の調べ 旅先料理の調べ ビールコレクション
Copyright © 2010 GOMI Hiroshi All Rights Reserved