開いてる間、バッテリーが電源供給を停止しないようにアームを動かし続ける
RAVPowerを電源にしたときに苦労したことでも記載したけれどモバイルバッテリーが消費電力量の低下を検知して供給を停止してしまうので、わざわざ消費するようなプログラムを組んでみたところ。delayやカウンターの回数などは試行錯誤の結果なので、データシートを基にしたものじゃない。そのために後で仕様変更されたら修正しないといけない。
4秒に一回というのも、0.2秒で1ループなのも、15度ずれるっていうのも、適当に決めた数字なので、もっと適切な値はあると思う。
// 何もせずに周回した回数のカウンター pulse_count = pulse_count + 1; //Serial.println(servodegree_pulse); // 一定時間でサーボモータに電力消費を促す(0.2s * 20 = 4秒) if ( ! rfid.PICC_IsNewCardPresent() || ! rfid.PICC_ReadCardSerial()){ delay(200); if ( pulse_count > 20 && close_flag == false){ # ここで一回右に15度ずれる。で、カウントリセット servodegree_pulse = 75; myservo.write(servodegree_pulse); pulse_count = 0; delay(500); } else { # カウントリセットされていたら90度に戻って施錠時間を待つループに戻る。 myservo.write(servodegree); delay(500); } return; } |