私は現在、私のDIYプロジェクトの1つを行うためにArduinoと仕事をしています。Arduinoのコマンドタイムアウト
現在、私の指紋スキャナ(GT-511C3)は私のArduinoに接続されていて、うまくいきます。私は登録された指紋を確認することができます。
finterprintsのベリファイは(ボタンを押すことにより開始される)ラズベリーパイのコマンドボタンが押されたときには論理的に、この手段、ラズベリーPiはアルドゥイーノに「検証」コマンドを送る経由happends
その代わりに、検証コマンドを実行するよう指紋スキャナに依頼します。
ただし、送信したvalidateコマンドの後にタイムアウトが必要です。タイムアウトは、ボタンが押され(そしてvalidateコマンドが開始されても)、誰も指をマシンに置かないとタイムアウトし、validateコマンドを待っている状態に戻ることを確認する必要があります。
私はこれを完了できません。コードは、そうでない場合は正常に動作します
#include "FPS_GT511C3.h"
#include "SoftwareSerial.h"
FPS_GT511C3 fps(4, 5);
int val = 0;
void setup()
{
Serial.begin(9600);
delay(100);
fps.Open();
fps.SetLED(false);
}
void loop(){
if (Serial.available() > 0) {
Continue:
if(Serial.find("validate")){
fps.SetLED(true);
do {
++val;
delay(100);
}
while(fps.IsPressFinger() == false || val > 150);
if(val <= 150){
fps.SetLED(false);
goto Continue;
}
if (fps.IsPressFinger()){
fps.CaptureFinger(false);
int id = fps.Identify1_N();
if (id <200)
{
Serial.print("Verified ID:");
Serial.println(id);
fps.SetLED(false);
}
else
{
Serial.println("Finger not found");
fps.SetLED(false);
}
}
else
{
Serial.println("Please press finger");
}
delay(100);
}
}
}
指が置かれ、検証された場合、それはオフになり、別のvalidateコマンドを待っているに戻っ:これは私が試したコードです。
ご協力いただければ幸いです!
この説明をお寄せいただきありがとうございます。特に、後藤の方が良いと考えられています。つまり、それはタイムアウトだという意味では機能しますが、valを0にリセットしないので、2回目の検証を要求すると直ちにタイムアウトになると思います。これを解決する方法はありますか? – user5740843
@ user5740843 IFブロックを編集しました。今期待通りに動くはずです。 – TisteAndii
@ user5740843問題が解決した場合は、回答を受け入れることを検討してください。 – TisteAndii