Lettore di impronte GT511

Ciao a tutti, sto sviluppando un progetto che permette di far muovere un servo motore dopo la lettura dell’impronta digitale tramite il sensore GT511 il quale ha già delle librerie per arduino oltre ad avere un software con interfaccia grafica che permette di memorizzare delle impronte nel lettore.
Sono riuscito a memorizzare delle impronte utilizzando un software scritto in arduino ed a far muovere il motore con un altro; il problema è che adesso vorrei unire le due cose, cioe vorrei che funzionasse solo la parte della registrazione di impronte quando l’arduino è collegato al pc tramite usb e che funzionasse solo la parte di movimento servo quando questo è alimentato solo con pila. Ho visto che si potrebbe usare in “if(Serial)” per implementare ciò ma sto trovando qualche difficoltà. Qualcuno saprebbe aiutarmi?

Il SW grafico per memorizzare le impronte lo ho trovato qui: GT-511C3 Fingerprint Scanner SDK Demo using Arduino Uno

Parte della memorizzazione di impronte:

#include <SoftwareSerial.h>

// need a serial port to communicate with the GT-511C3
SoftwareSerial gtSerial(8, 7); // Arduino RX (GT TX), Arduino TX (GT RX)
// the Arduino TX pin needs a voltage divider, see wiring diagram at:
// http://startingelectronics.com/articles/GT-511C3-fingerprint-scanner-hardware/

void setup() {
  Serial.begin(9600);    // serial connection to processing app.
  gtSerial.begin(9600);  // for communicating with the GT-511C3
}

byte rx_byte = 0;        // stores received byte

void loop() {
  if (Serial.available()) {
    // get byte from processing app. and send to FPS
    rx_byte = Serial.read();
    gtSerial.write(rx_byte);
  }
  // check for a byte from the GT-511C3
  if (gtSerial.available()) {
    // get a byte from the FPS and send it to the processing app.
    rx_byte = gtSerial.read();
    Serial.write(rx_byte);
  }
}

Parte del movimento servo:

#include "FPS_GT511C3.h"
#include "SoftwareSerial.h" // usata dalla FPS_GT511C3.h
#include "Arduino.h"
#include "Servo.h"

Servo myservo;  // create servo object to control a servo


int pos = 0;    // variable to store the servo position

FPS_GT511C3 fps(8, 7);

void setup() {
  // put your setup code here, to run once:

    Serial.begin(9600);
  delay(100);
  fps.Open();
  fps.SetLED(true);


    myservo.attach(9);  // attaches the servo on pin 9 to the servo object
}

void loop() 
{
delay (700);

  // put your main code here, to run repeatedly:
  if((fps.IsPressFinger()) == true)
  {

    fps.CaptureFinger (true);         // cattura l’impronta del dito sul sensore e la memorizza nella memoria del sensore stesso. Andrà poi confrontata con il DB per individuare l’id. Restituisce true se la cattura ha successo, false se il sensore è vuoto.
      if (fps.Verify1_1(0) == 0 || fps.Verify1_1(1) == 0 || fps.Verify1_1(2)== 0 || fps.Verify1_1(3)== 0 || fps.Verify1_1(4)== 0 || fps.Verify1_1(5)== 0 || fps.Verify1_1(6)== 0 || fps.Verify1_1(7)== 0 || fps.Verify1_1(8)== 0 || fps.Verify1_1(9)== 0 || fps.Verify1_1(10)== 0 || fps.Verify1_1(11)== 0 || fps.Verify1_1(12)== 0 || fps.Verify1_1(13)== 0 || fps.Verify1_1(14)== 0 || fps.Verify1_1(15)== 0 || fps.Verify1_1(16)== 0 || fps.Verify1_1(17)== 0 || fps.Verify1_1(18)== 0 || fps.Verify1_1(19)== 0)
      // int Verify1_1(int id): verifica se l’impronta catturata con la funzione CaptureFinger corrisponde all’impronta memorizzata nello slot identificato da id (da 0 a 199). Ritorna: 0 se corrispondono, 1 se la posizione non è valida (id < 0 o id > 199), 2 se l’id non in uso (vuoto), 3 se l’impronta non corrisponde a quella nello slot id
      {

        pos =0;
        myservo.write(pos);              // motore in posizione 0 gradi
        delay (2500);             
        }
   
             pos =75;
              myservo.write(pos);              // motore in posizione 75 gradi
              delay (800);         
  }
          
}

Benvenuto. Essendo il tuo primo post, nel rispetto del regolamento, ti chiediamo cortesemente di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione … possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO… Grazie.
Qui una serie di link utili, non inerenti al tuo problema:

Il codice devi racchiuderlo nei tag code (non i quote!! ), vedi sezione 7 del regolamento, spiega bene come fare ( pulsante </> ).
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

Grazie per le correzioni, ho sistemato quanto mi hai detto.