Japanino (Arduino)の調べ 将棋の調べ 鉄道の調べ 旅先料理の調べ ビールコレクション
Clock.sk
/* 3分砂時計 clock スイッチを入れると計測開始。スイッチを OFF の位置に戻して使用(ON の位置では連続計測)。 1秒ごとに音と光で知らせ、1分毎に LED で途中状況を表示。 途中で計測を止めるときはリセットボタンを押す。 Copyright (C) GOMI Hiroshi 2010 All right reserved. */ int count = 180; // 砂時計の時間設定(秒) int tonePin = 14; int inputPin = 6; int ledPins[] = {7, 8, 9, 10, 11, 12, 13}; int ledp = 6; // 1秒ごとに点滅する LED の相対位置 int minute; int note = 131; // 1秒ごとに鳴らす音の音程(周波数) void setup() { for (int led = 0; led < 7; led++) { pinMode(ledPins[led], OUTPUT); } pinMode(inputPin, INPUT); initClock(); } void initClock() { for (int led = 0; led < 7; led++) { digitalWrite(ledPins[led], LOW); // set the LED off } digitalWrite(inputPin, HIGH); minute = 0; } void loop() { // 入力スイッチ(inputPin)が ON になるまで待つ for (;;) { if (digitalRead(inputPin) == LOW) break; delay(10); } timeloop(); } /* 砂時計本体 カウンタ(秒)が経過するまで、1秒ごとに LED を点滅させ、音を出す */ void timeloop() { unsigned long time = millis(); for(int i = 1; i <= count; i++) { tone(tonePin, note, 100); digitalWrite(ledPins[ledp], HIGH); if (i % 60 == 0) { digitalWrite(ledPins[minute++], HIGH); if (minute >= 6) minute = 0; } // 1秒経過するまで待つ for(;;) { if (time + 1000 <= millis()) break; delay(10); digitalWrite(ledPins[ledp], LOW); } time += 1000; } initClock(); }
更新記録
Japanino (Arduino)の調べ 将棋の調べ 鉄道の調べ 旅先料理の調べ ビールコレクション
Copyright © 2010 GOMI Hiroshi All Rights Reserved