Japanino (Arduino)の調べ 将棋の調べ 鉄道の調べ 旅先料理の調べ ビールコレクション
Dice.sk
/*
サイコロ dice
Copyright (C) GOMI Hiroshi 2010 All right reserved.
*/
int tonePin = 14;
int inputPin = 6;
int ledPins[] = {7, 8, 9, 10, 11, 12, 13};
int note ;
void setup() {
for (int led = 0; led < 7; led++) {
pinMode(ledPins[led], OUTPUT);
}
pinMode(inputPin, INPUT);
randomSeed(millis());
for (int led = 0; led < 7; led++) {
digitalWrite(ledPins[led], LOW); // set the LED off
}
initDice();
}
void initDice() {
digitalWrite(inputPin, HIGH);
note = 131;
}
void loop() {
// 入力スイッチ(inputPin)が ON になるまで待つ
for (;;) {
if (digitalRead(inputPin) == LOW) break;
delay(10);
}
diceloop();
initDice();
}
/*
サイコロ本体
*/
void diceloop() {
prePlay(); // サイコロを投げる様子を LED の点滅と音で演出
long r = random(6); // サイコロを振る(乱数発生)
digitalWrite(ledPins[r], HIGH);
// スイッチが OFF になるまで待つ
for(;;) {
if (digitalRead(inputPin) == HIGH) return;
delay(10);
}
}
/*
LED を音を出しながら、点滅を往復させる
*/
void prePlay() {
for(int i = 0; i <= 6; i++) {
playAndLED(i);
}
for(int i = 6; i >= 0; i--) {
playAndLED(i);
}
}
/*
1個の LED を点滅させ、音を出す
@param led LED の相対位置
*/
void playAndLED(int led) {
tone(tonePin, note, 100);
note += 8;
digitalWrite(ledPins[led], HIGH);
delay(100);
digitalWrite(ledPins[led], LOW);
}
更新記録
Japanino (Arduino)の調べ 将棋の調べ 鉄道の調べ 旅先料理の調べ ビールコレクション
Copyright © 2010 GOMI Hiroshi All Rights Reserved