Comandare la rotazione di due servo motori con due pulsanti separati

Buongiorno , ho fatto questo sketch per comandare con 4 pulsanti la rotazione “destra - sinistra” di due servo motori, ho scritto la prima parte dello sketch per il primo servo é funziona, la seconda parte per il secondo servo ho ricopiato la prima parte cambiando i pin ma mi da errori. Come mai ?
Grazie

#include <Servo.h>
int pos = 0;

Servo servo;
void setup() {
  pinMode(2, INPUT);
  pinMode(3, INPUT);
  servo.attach(9);
}
void loop() {
  while (digitalRead(2) == HIGH && pos < 180) {
    pos++;
    servo.write(pos);
    delay(15);
  }
  while (digitalRead(3) == HIGH && pos > 0) {
    pos--;
    servo.write(pos);
    delay(15);
  }
}

#include <Servo.h>
int pos = 0;

Servo servo;
void setup() {
  pinMode(4, INPUT);
  pinMode(7, INPUT);
  servo.attach(10);
}
void loop() {
  while (digitalRead(4) == HIGH && pos < 180) {
    pos++;
    servo.write(pos);
    delay(15);
  }
  while (digitalRead(7) == HIGH && pos > 0) {
    pos--;
    servo.write(pos);
    delay(15);
  }
}

Buongiorno e benvenuto nella sezione Italiana del forum,

cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento, fai la tua presentazione NELL'APPOSITA DISCUSSIONE (... quello che vedi in blu è un link, fai click su di esso per raggiungere la discussione) spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Detto questo, come richiesto al punto 7 del succitato regolamento, per favore edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona <code/> nella barra degli strumenti per contrassegnarla come codice. Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac, sempre all'interno del IDE).

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione e sistemato il codice come indicato, nel rispetto del regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

Buonasera, ho fatto la presentazione e corretto il post.
grazie

Dovresti sempre postare l'errore copiandolo e incollandolo nel post dentro il tag CODE. In questo caso l'errore è evidente e sostanzialmente di dice che ci sono due funzioni setup() e loop() e ciò non è consentito.

Ci deve essere una sola funzione di nome void setup() e una sola di nome void loop(). Queste sono obbligatorie.

Puoi crearti la tua funzione e anche qui non ci possono essere due funzioni con lo stesso identico nome.

Ciao.

E in aggiunta, non basta solo dare nomi diversi ai pin/pulsanti relativi ai due servo, bisogna anche "creare" due oggetti servo differenti, e ciascuno con la sua propria variabile posizione.

Sono alle prime con la compilazione del codice mi può spigare cortesemente come fare?
Grazie

@matteof001: ... però ... prima di avventurarsi in queste cose ... al punto 16.1 del REGOLAMENTO ci sono dei pdf gratuiti da scaricare e studiare ed un ottimo libro da acquistare ... perché altrimenti, senza dedicarcisi almeno un po', diventa difficile :roll_eyes:

Guglielmo