Aiuto per il controllo di 3 servomotori con 6 pulsanti

Ciao a tutti, sono nuovo in questo forum e sono qui perché ho un problema con il mio circuito. Questo circuito consiste nel far muovere 3 servomotori grazie a 6 pulsanti (2 per ogni servomotore, uno che serve per aumentare l'angolo, l'altro per diminuirlo, molto semplice) ed è composto anche di uno schermo lcd 16,2 grazie al quale si può vedere in tempo reale l'ampiezza degli angoli descritti da ogni singolo motore. Per quanto riguarda l'alimentazione di questo circuito, lo ho diviso in 2 parti. La prima parte è alimentata da arduino stesso tramite un uscita 5V e va ad alimentare lo schermo lcd e i 6 pulsanti. Per quanto riguarda i 3 servomotori, che sono dei Gs-1723, sono alimentati da un portabatterie esterno da 6V. Il problema che riscontro è che quando io vado ad aumentare o a diminuire gli angoli dei motori, quest'ultimi vengo proiettati giusti nello schermo lcd ma i motorini non accennano a movimento, è capitato anche che delle si muovessero totalmente a caso.

Eccovi il codice che ho usato

#include <Servo.h>

Servo myServo1;
Servo myServo2;
Servo myServo3;

int Pin1 = 2;
int Pin2 = 3;
int Pin3 = 4;

int gradi1;
int gradi2;
int gradi3;

int var = 1;

 int StatoBtn1;
 int StatoBtn2;
 int StatoBtn3;
 int StatoBtn4;
 int StatoBtn5;
 int StatoBtn6;
 
void setup() {
 myServo1.attach(Pin1);
 myServo2.attach(Pin2);
 myServo3.attach(Pin3);

 Serial.begin(9600);

 myServo1.write(0);
 myServo2.write(0);
 myServo3.write(0);

 pinMode(32, INPUT);
 pinMode(30, INPUT);
 pinMode(28, INPUT);
 pinMode(26, INPUT);
 pinMode(24, INPUT);
 pinMode(22, INPUT);
}

void loop() {
 delay (50);
 StatoBtn1 = digitalRead(32);
 StatoBtn2 = digitalRead(30);
 StatoBtn3 = digitalRead(28);
 StatoBtn4 = digitalRead(26);
 StatoBtn5 = digitalRead(24);
 StatoBtn6 = digitalRead(22);

 if (StatoBtn1 == 1){
 gradi1 = gradi1 + var;
 myServo1.write(gradi1);
 Serial.println(gradi1);
 }

 if (StatoBtn2 == HIGH){
 gradi1 = gradi1 - var;
 myServo1.write(gradi1);
 Serial.println(gradi1);
 }

 if (StatoBtn3 == HIGH){
 gradi2 = gradi2 + var;
 myServo2.write(gradi2);
 }

 if (StatoBtn4 == HIGH){
 gradi2 = gradi2 - var;
 myServo2.write(gradi2);
 }

 if (StatoBtn5 == HIGH){
 gradi3 = gradi3 + var;
 myServo3.write(gradi3);
 }

 if (StatoBtn6 == HIGH){
 gradi3 = gradi3 - var;
 myServo3.write(gradi3);
 }
}

P.s: questo non è il codice che ho usato per controllare anche lo schermo, qui ci sono sono i servo e i pulsanti. Avevo fatto la prova a escludere lo schermo perché magari il problema era lui, ma non è cosi.

Vi lascio in allegato anche lo schema

Grazie a tutti in anticipo e scusate se ho commesso un errore banale.

Prima di tutto, essendo il tuo primo post, nel rispetto del regolamento, ti chiedo 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 MOLTA attenzione il su citato REGOLAMENTO ...

... poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

Grazie,

Guglielmo

P.S.: ... un altro caso di malfunzionamento del forum ... utente senza nick name ...

Salve, mi scusi per le mie mancanze, il fatto del code lo avevo letto ma non trovavo il tasto per metterlo.
Ho fatto anche la presentazione e per il fatto del nome, lo avevo notato anche io però non so cosa possa farci, non mi fa nemmeno accedere al profilo e anche per il log in mi ha dato problemi con la mia password e ho dovuto farmi una temporanea per entrare, ma ora non posso cambiarla perche non mi fa accedere al profilo.
Grazie mille comunque!