/* バッテリー放電テスト */ #include boolean MesFLAG =true; // 測定フラグ volatile boolean trigFLAG = false; int sec = 0; void setup() { Serial.begin(9600); pinMode(13, OUTPUT); // 動作表示LED pinMode(8, OUTPUT); // Drive FET GATE digitalWrite(8, HIGH); // 放電開始 MsTimer2::set(5000, timeUP); // 5秒間隔で割り込み MsTimer2::start(); } void loop() { if ( trigFLAG == true ){ trigFLAG = false; sec = sec + 5; int BatteryVoltage = analogRead(0) * 15; // スケーリング if(BatteryVoltage < 10500){ // 10.5V以下なら停止フラグセット MesFLAG = false; } if ( MesFLAG == true){ // 停止フラグがセットされていなかったら digitalWrite(13, HIGH); Serial.print(sec); Serial.print(", "); Serial.println(BatteryVoltage); digitalWrite(13, LOW); } else{ digitalWrite(8, LOW); } } } void timeUP(){ trigFLAG = true; }