// // USB充電容量チェッカー // V0.1 radiopench 2013/05/06 // 感度補正1.07倍(感度下げ) // #include #include boolean output = 0; // 出力反転フラグ int analogPin = 5; // 入力ピン(5V=2.5A) int manpoPow = 9; // 万歩計用の電源出力ピン int outPin = 8; // 万歩計カウントアップ信号ピン int sum = 0; // 積分用の変数 int scaleFactor = 1578; // 感度係数 (デフォルト:1475*1.07=1578) void setup() { analogReference(INTERNAL); // ADCのVrefに内部基準を使用(1.1V) pinMode(outPin, OUTPUT); pinMode(10, OUTPUT); // 動作モニタ用のピン Pin-10 analogWrite(manpoPow, 88); // 万歩計の電源を供給開始。電圧は約1.5V MsTimer2::set(50, measure); // 50ms周期で呼び出し MsTimer2::start(); } void loop() { set_sleep_mode(SLEEP_MODE_IDLE); // 節電のためアイドルモードでスリープ sleep_mode(); } void measure() { digitalWrite(10, true); // 動作モニタON sum = sum + analogRead(analogPin); // 測定値を積算 if(sum >= scaleFactor){ // 積分値がスケールファクター以上だったら output = !output; // 出力反転 digitalWrite(outPin, output); // パルス出力 sum = sum % scaleFactor; // 積分値に残りを記録 } digitalWrite(10,false); //動作モニタOFF }