FallTime ver.0.02
バージョン上げときながら、自分でもまだちゃんと動かせたこと無いのね(笑)
とりあえず新しいコード載せとくよ(桐っ
ちょっと、自分乙wwwって感じです。
このまま分からんようだったら、多分自由研究の予定を大幅に変更するかも・・・
p.s. モバゲーで気づいたんだけど、まいけるさんこのブログ見てたのねwww
イでよ、まいける!!!!
とりあえず新しいコード載せとくよ(桐っ
ぐぐっても中々自分と同じようなこと考えてる人いないしなwww// Falling's Timer ver.0.02 : 二個のセンサーを用意する// ひとつはタクトスイッチ、もうひとつはCdSセル// タクトスイッチでストップウォッチ開始し、// CdSセルがオンになったところで、ストップウォッチを止める// 時間表示も含めたテストコード// できればいいと、工夫は最小限です。#define BEGIN_button 13 // タクトスイッチを接続したピン#define STOP_button 12 // CdSセルを接続したピン#define LED 0 // ずっと点いているLED// E,D,G,C,B,A,Fboolean table[10][7]={ {0,0,1,0,0,0,0}, // 0{1,1,1,0,0,1,1}, // 1{0,0,0,1,0,0,1}, // 2{1,0,0,0,0,0,1}, // 3{1,1,0,0,0,1,0}, // 4{1,0,0,0,1,0,0}, // 5{0,0,0,0,1,0,0}, // 6{1,1,1,0,0,0,1}, // 7{0,0,0,0,0,0,0}, // 8{1,0,0,0,0,0,0} };// 9int b_val; // タクトスイッチの状態を格納int b_old_val; // b_valの前の値を保存int s_val; // CdSセルの状態を格納int s_old_val; // s_valの前の値を保存int starting; // ストップウォッチが動いているかどうか?// 時間表示のための変数int sec = 0;int msec = 0;int nsec = 0;unsigned long startTime = 0; // ストップウォッチが開始した時間unsigned long stopTime = 0; // ストップウォッチが停止した時間void setup() {pinMode(BEGIN_button, INPUT); // タクトスイッチ、CdSセルはpinMode(STOP_button, INPUT); // ともに入力に設定// LEDの全てのピンを出力にpinMode(LED, OUTPUT);for(int i=1; i<=7; i++){pinMode(i, OUTPUT);}digitalWrite(BEGIN_button, HIGH); // プルアップさせる。digitalWrite(STOP_button, HIGH);}void loop() {b_val = digitalRead(BEGIN_button); // タクトスイッチの値を保存s_val = digitalRead(STOP_button); // CdSセルの値を保存// 変化を確認するif (b_val == LOW && b_old_val == HIGH && starting == false) {startTime = millis(); // これが開始時間// 上のような条件でのみ、最初の値を格納するstarting = true;delay(10); // タクトスイッチのバウンシングを防止b_old_val == b_val; // 一度オンになると// リセットされるまで// プログラムは終わらない}// ストップ操作else if (s_val == LOW && s_old_val == HIGH && starting ==true) {stopTime = millis() - startTime; // 最終的にこれが求める値// バウンシングは起こりえないので// 今回は気にしないstarting = false;s_old_val = s_val; // 古くなった値を格納// 秒(sec)、10分の1秒(msec)、100分の1秒(nsec)に分けるif (stopTime >= 1000) {sec = stopTime / 1000;stopTime = stopTime - 1000 * sec;msec = stopTime / 100;stopTime = stopTime - 100 * msec;nsec = stopTime / 10;} else {msec = stopTime / 100;stopTime = stopTime - 100 * msec;nsec = stopTime / 10;}// ここに、stopTimeを表示させるコードを入れるfor(int j=0; j<=6; j++){digitalWrite(LED, LOW);digitalWrite(j+1, table[sec][j]);}for(int j=0; j<=6; j++){digitalWrite(LED, LOW);digitalWrite(j+1, table[msec][j]);}for(int j=0; j<=6; j++){digitalWrite(LED, LOW);digitalWrite(j+1, table[nsec][j]);}delay(1000);}// 状態を保存else {b_old_val = b_val;s_old_val = s_val;}}// 不明な点及び修正点などがありましたら、// http://grousefuji.blogspot.com/// Grouseまでお問い合わせ下さい。// ※これは正常に動くことが確認できていません。(試験体:Japanino)※// ※LEDは自分の接続方法に従い、各自置き換えてやってください。※// 追記:CdSセルをタクトスイッチに変えて実験// 詳細後日、ブログで公開予定。// 参考:http://kousaku-kousaku.blogspot.com/2008/05/arduino-led.html// http://www.arduino.cc/playground/Code/Stopwatch// Copyright (C) 2010 Grouse. All right reserved.
ちょっと、自分乙wwwって感じです。
このまま分からんようだったら、多分自由研究の予定を大幅に変更するかも・・・
p.s. モバゲーで気づいたんだけど、まいけるさんこのブログ見てたのねwww
イでよ、まいける!!!!