サーボモーターを回して開錠する
記載個所は少ないけれど、RFIDの特定の領域から読み取った文言を判定して、開錠してもよいタグであることを認識。
サーボモーターを90度に移動させて、30分の施錠時間を設定。
servodegreeを変数にしているが、90度にするとちょっとだけ回りすぎたので80度にしている。このあたりの調整は個々のサーボモータの癖があるかも。または、こういう数字の変な部分をなくすために電子回路のほうで頑張るべきかもしれない。
最後はお決まりのRFIDの読み取りを停止(HaltA)して次のループまで1秒間待機。
この待機時間を短くするとより早く開錠判定になるが、当然電池のヘリも早い。
// 7文字を読み取って判定。OKならばサーボモータを回す。 if(get_string.substring(0,7) == "SimSim "){ servodegree = 80; myservo.write(servodegree); // deglee 90 is UNlock deglee 80 is UNlock sor Osoyoo SG90 unlocktime = millis() + opentime; close_flag = false; // 開けたらfalse sleeptime = 0; // 開いたらリセット //Serial.print(F("unlocktime:")); //Serial.println(unlocktime); } //Serial.print(get_string.substring(0,7)); //Serial.println(F("END")); // Halt PICC rfid.PICC_HaltA(); // Stop encryption on PCD rfid.PCD_StopCrypto1(); delay(1000); //change value if you want to read cards faster } |