Ciao, intanto grazie per avermi risposto subito 
Ecco lo sketch "finale " che ho elaborato seguendo il primo :
/*
Assegnazione variabili
*/
int M1; // Memoria 1: Led spento e dopo avere rilasciato S
int M2; // Memoria 2: Led acceso dopo aver premuto S
int M3; // Memoria 3: Led acceso dopo aver rilasciato S
int M4; // Memoria 4: Led spento dopo aver premuto S
int P = 5; // Pulsante di apertura
int M_P; // Memoria su cui viene memorizzato il valore del pulsante S
int LED1 = 8; // Led
void setup () {
pinMode (P, INPUT);
pinMode (LED1, OUTPUT);
M1 = 1; // Attiva la memoria 1
}
void loop () {
M_P = digitalRead(P); // Legge il valore del pulsante di avvio motore e lo conserva
if ((M1 == 1) && (M_P == 1)) {
M2 = 1; // Attiva la memoria 2
M1 = 0; // Disattiva la memoria 1
digitalWrite (LED1, HIGH); // Accende il Led
}
if ((M2 == 1) && (M_P == 0)) {
M3 = 1; // Attiva la memoria 3
M2 = 0; // Disattiva la memoria 2
}
if ((M3 == 1) && (M_P == 1)) {
M4 = 1; // Attiva la memoria 4
M3 = 0; // Disattiva la memoria 3
digitalWrite (LED1, LOW); // Spegne il Led
}
if ((M4 == 1) && (M_P == 0)) {
M1 = 1; // Attiva la memoria 1
M4 = 0; // Disattiva la memoria 4
}
}
int M5; // Memoria 5: Led spento e dopo avere rilasciato S
int M6; // Memoria 6: Led acceso dopo aver premuto S
int M7; // Memoria 7: Led acceso dopo aver rilasciato S
int M8; // Memoria 8: Led spento dopo aver premuto S
int P1 = 9; // Pulsante di apertura
int M_P1; // Memoria su cui viene memorizzato il valore del pulsante S
int LED2 = 4; // Contattore avvio motore
void setup (int P1, int LED2) {
pinMode (P1, INPUT);
pinMode (LED2, OUTPUT);
M5 = 1; // Attiva la memoria 1
}
void loop (int M5, int M6, int M7, int M8) {
M_P1 = digitalRead(P1); // Legge il valore del pulsante di avvio motore e lo conserva
if ((M5 == 1) && (M_P1 == 1)) {
M6 = 1; // Attiva la memoria 2
M5 = 0; // Disattiva la memoria 1
digitalWrite (LED2, HIGH); // Accende il Led
}
if ((M6 == 1) && (M_P1 == 0)) {
M7 = 1; // Attiva la memoria 3
M6 = 0; // Disattiva la memoria 2
}
if ((M7 == 1) && (M_P1 == 1)) {
M8 = 1; // Attiva la memoria 4
M7 = 0; // Disattiva la memoria 3
digitalWrite (LED2, LOW); // Spegne il Led
}
if ((M8 == 1) && (M_P1 == 0)) {
M5 = 1; // Attiva la memoria 1
M8 = 0; // Disattiva la memoria 4
}
}
int M9; // Memoria 5: Led spento e dopo avere rilasciato S
int M10; // Memoria 6: Led acceso dopo aver premuto S
int M11; // Memoria 7: Led acceso dopo aver rilasciato S
int M12; // Memoria 8: Led spento dopo aver premuto S
int P2 = 10; // Pulsante di apertura
int M_P2; // Memoria su cui viene memorizzato il valore del pulsante S
int LED3 = 3; // Contattore avvio motore
void setup (int P1, int LED2) {
pinMode (P2, INPUT);
pinMode (LED3, OUTPUT);
M9 = 1; // Attiva la memoria 1
}
void loop (int M5, int M6, int M7, int M8) {
M_P2 = digitalRead(P2); // Legge il valore del pulsante di avvio motore e lo conserva
if ((M5 == 1) && (M_P2 == 1)) {
M10 = 1; // Attiva la memoria 2
M9 = 0; // Disattiva la memoria 1
digitalWrite (LED3, HIGH); // Accende il Led
}
if ((M6 == 1) && (M_P2 == 0)) {
M11 = 1; // Attiva la memoria 3
M10 = 0; // Disattiva la memoria 2
}
if ((M7 == 1) && (M_P2 == 1)) {
M12 = 1; // Attiva la memoria 4
M11 = 0; // Disattiva la memoria 3
digitalWrite (LED3, LOW); // Spegne il Led
}
if ((M8 == 1) && (M_P2 == 0)) {
M9 = 1; // Attiva la memoria 1
M12 = 0; // Disattiva la memoria 4
}
}
ed ecco gli errori che mi da quando lo compilo:
Pulsante_led_2_0.ino: In function 'void setup(int, int)':
Pulsante_led_2_0:104: error: redefinition of 'void setup(int, int)'
Pulsante_led_2_0:59: error: 'void setup(int, int)' previously defined here
Pulsante_led_2_0.ino: In function 'void loop(int, int, int, int)':
Pulsante_led_2_0:113: error: redefinition of 'void loop(int, int, int, int)'
Pulsante_led_2_0:68: error: 'void loop(int, int, int, int)' previously defined here
Aspetto tua risposta 
Ps Il programma per come è scritto, se si toglie soltanto la terza parte, lo compila bene il programma e non da alcun errore.. però sul pratico, ovvero quando lo carico su arduino, il primo led con il primo pulsante funziona egregiamente, mentre il secondo non ne vuole sapere Ti allego il programma già pronto senza la terza parte
/*
Assegnazione variabili
*/
int M1; // Memoria 1: Led spento e dopo avere rilasciato S
int M2; // Memoria 2: Led acceso dopo aver premuto S
int M3; // Memoria 3: Led acceso dopo aver rilasciato S
int M4; // Memoria 4: Led spento dopo aver premuto S
int P = 5; // Pulsante di apertura
int M_P; // Memoria su cui viene memorizzato il valore del pulsante S
int LED1 = 8; // Led
void setup () {
pinMode (P, INPUT);
pinMode (LED1, OUTPUT);
M1 = 1; // Attiva la memoria 1
}
void loop () {
M_P = digitalRead(P); // Legge il valore del pulsante di avvio motore e lo conserva
if ((M1 == 1) && (M_P == 1)) {
M2 = 1; // Attiva la memoria 2
M1 = 0; // Disattiva la memoria 1
digitalWrite (LED1, HIGH); // Accende il Led
}
if ((M2 == 1) && (M_P == 0)) {
M3 = 1; // Attiva la memoria 3
M2 = 0; // Disattiva la memoria 2
}
if ((M3 == 1) && (M_P == 1)) {
M4 = 1; // Attiva la memoria 4
M3 = 0; // Disattiva la memoria 3
digitalWrite (LED1, LOW); // Spegne il Led
}
if ((M4 == 1) && (M_P == 0)) {
M1 = 1; // Attiva la memoria 1
M4 = 0; // Disattiva la memoria 4
}
}
int M5; // Memoria 5: Led spento e dopo avere rilasciato S
int M6; // Memoria 6: Led acceso dopo aver premuto S
int M7; // Memoria 7: Led acceso dopo aver rilasciato S
int M8; // Memoria 8: Led spento dopo aver premuto S
int P1 = 9; // Pulsante di apertura
int M_P1; // Memoria su cui viene memorizzato il valore del pulsante S
int LED2 = 4; // Contattore avvio motore
void setup (int P1, int LED2) {
pinMode (P1, INPUT);
pinMode (LED2, OUTPUT);
M5 = 1; // Attiva la memoria 1
}
void loop (int M5, int M6, int M7, int M8) {
M_P1 = digitalRead(P1); // Legge il valore del pulsante di avvio motore e lo conserva
if ((M5 == 1) && (M_P1 == 1)) {
M6 = 1; // Attiva la memoria 2
M5 = 0; // Disattiva la memoria 1
digitalWrite (LED2, HIGH); // Accende il Led
}
if ((M6 == 1) && (M_P1 == 0)) {
M7 = 1; // Attiva la memoria 3
M6 = 0; // Disattiva la memoria 2
}
if ((M7 == 1) && (M_P1 == 1)) {
M8 = 1; // Attiva la memoria 4
M7 = 0; // Disattiva la memoria 3
digitalWrite (LED2, LOW); // Spegne il Led
}
if ((M8 == 1) && (M_P1 == 0)) {
M5 = 1; // Attiva la memoria 1
M8 = 0; // Disattiva la memoria 4
}
}