utilizzare pin 13

sisi è che ho finito i pin...cmq lo posto!

include <LiquidCrystal.h>


#define ON 1
#define OFF 0

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


const int enel = 6;
const int gruppo = 7;
const int rele1 = 8;
const int rele2 = 9;
const int contattore = 10;
const int spia = 13;



boolean stato_enel;
boolean stato_gruppo;
boolean flag =0;
boolean error =false;
int cicli =0;



void setup(){
  Serial.begin(9600);
  lcd.begin(16, 4);
  
  lcd.clear();


  pinMode(enel, INPUT_PULLUP);
  pinMode(gruppo, INPUT_PULLUP);
  
  pinMode(rele1, OUTPUT);
  pinMode(rele2, OUTPUT);
  pinMode(contattore, OUTPUT);
  pinMode(spia, OUTPUT);
}


void ritardo(int i){
  Serial.print("Sto aspettando ");
  Serial.print(i);
  Serial.println(" secondi");
  for (int k=0; k<i; k++){ 
  lcd.setCursor(0,3);
  lcd.print("Wait ");
  lcd.print(i-k);
  lcd.write(" secondi      ");
    delay(1000);
  }
}

void accensione_gruppo() {
  Serial.println("Accensione gruppo elettrogeno in corso...");
  lcd.setCursor(0,2);
  lcd.print("Accensione...   ");
  lcd.setCursor(0,3);
  Serial.print("Tentativo n: ");
  lcd.print("Tentativo : ");
  Serial.println(cicli+1);
  lcd.print(cicli+1);
  lcd.print("  ");
  delay(2000);
  digitalWrite(rele1, HIGH);
  delay(2000);
  digitalWrite(rele2, HIGH);
  delay(1500);
  digitalWrite(rele2,LOW);
  cicli++;
}

void spengimento_gruppo(){
  Serial.println("Spengimento gruppo elettrogeno in corso...");
  lcd.setCursor(0,2);
  lcd.print("Spengimento...  ");
  ritardo(18);
  digitalWrite(contattore, LOW);
  ritardo(6);
  digitalWrite(rele1, LOW);
}

void errore() {
  digitalWrite(spia, HIGH);
  digitalWrite(rele1, LOW);
  digitalWrite(rele2, LOW);
  error = true;
  Serial.println("ERRORE IL GRUPPO NON SI E' ACCESO");
  lcd.setCursor(0,2);
  lcd.print("     ERRORE     ");
  lcd.setCursor(0,3);
  lcd.print("NON SI E' ACCESO");
}





void loop(){
  stato_enel = digitalRead(enel); //controllo se c'è rete
  stato_gruppo = digitalRead(gruppo);
  Serial.print("Stato Enel: ");
  Serial.println(stato_enel);
  Serial.print("Stato Gruppo: "); 
  Serial.println(stato_gruppo);
  lcd.setCursor(0,0);
  lcd.print("ENEL   : ");
  if(stato_enel==ON) 
    lcd.print("OK     ");
  else lcd.print("ASSENTE");
  lcd.setCursor(0,1);
  lcd.print("GRUPPO : ");
  if(stato_gruppo==ON) 
    lcd.print("ON ");
  else lcd.print("OFF");
  
  
  //Senza enel 
  if (stato_enel== OFF){ //senza ENEL

    if (stato_gruppo == OFF) {  //Gruppo Spento

      if(cicli == 0) {
        lcd.setCursor(0,2);
        lcd.print(" Sto aspettando ");
        ritardo(12);
      }
      if (digitalRead(enel) == 0) {
        if(cicli<3) accensione_gruppo();
        else errore();
      }
      
    }
    if (stato_gruppo == ON){ //Gruppo Acceso e non attaccato
      if (flag == 0){
        Serial.println("Gruppo acceso");
        lcd.setCursor(0,2);
        lcd.print("Gruppo Acceso   ");
        ritardo(15); //15 secondi
        digitalWrite(contattore, HIGH);
        flag = 1;
        cicli = 0;
      }
      if (flag == 1) {
        Serial.println("Gruppo acceso e collegato");
          lcd.setCursor(0,3);
          lcd.print("Gruppo collegato");
      }
    }
  }

  //c'è Enel
  if (stato_enel == ON ) {
    if (stato_gruppo == ON) {
      spengimento_gruppo();
      flag = 0;
      cicli=0;
    }
    if (stato_gruppo == OFF) {
      Serial.println(" Tutto OK");
      lcd.setCursor(0,2);
      if (error == true ) lcd.print("     ERRORE     ");
      else lcd.print("                ");
      lcd.setCursor(0,3);
      lcd.print("    Tutto OK    ");
  }
}

}