Help, ethernet and SD, error ÿ

The keyboard is not the computer, the image of it and all the other hardware are attached below

So this is how it works, when the system turns on it ask the date and time (only the first time is turned on)
the code is here:

har key = keypad.getKey(); // variável key que armazena a tecla que foi presionada no teclado
 if(regular_relogio == 0)// caso seja a primeira vez que é ligado, ajustar relógio
  {
    if(tracos == 0){//Se tracos = 0 imprime na tela os traços onde a hora ficará depois
    lcd.setCursor(0,0);
       lcd.print(F("Entre a hora: "));
       lcd.print(F("Exemplo 08:30"));
       lcd.setCursor(0,3);
       lcd.print("    __:__");
       lcd.setCursor(0,4);
       lcd.print(F("* - Corrige"));
       tracos = 1;
  }
  if(key)
   { 
     if (key == '*')// se key = * zera as teclas e volta ao começo do menu, essa tecla é a de correção da hora
     {
     cont_3_teclas = 0;
     tracos = 0;
     }
     
     else{// vai varendo , sempre que o usuário precionar uma tecla ele pega a hr, os min, depois a data completa
     if(cont_3_teclas == 0 )// Pega a primeira tecla e imprime na tela
     {
       lcd.setCursor(0,3);
       lcd.print(F("    "));
       numero_hr_0 = key - 48;// o - 48 é para passar de string/char para int.
       lcd.print(numero_hr_0);
       lcd.print(F("_:__"));
      
     }
    if(cont_3_teclas == 1)//Pega a primeira tecla e imprime na tela
    { 
      
    numero_hr_1 = key - 48;
    lcd.setCursor(0,3);
       lcd.print(F("    "));
       numero_hr_1 = key - 48;
       lcd.print(numero_hr_0);
       lcd.print(numero_hr_1);
       lcd.print(F(":__"));
    
    }
    if(cont_3_teclas == 2)
    {
     numero_min_0 = key - 48;
     lcd.setCursor(0,3);
     lcd.print(F("    "));
     lcd.print(numero_hr_0);
       lcd.print(numero_hr_1);
       lcd.print(F(":"));
       lcd.print(numero_min_0);
       lcd.print(F("_"));
     }
     if(cont_3_teclas == 3)
    {
     numero_min_1 = key - 48;
     lcd.setCursor(0,3);
     lcd.print(F("    "));
     lcd.print(numero_hr_0);
       lcd.print(numero_hr_1);
       lcd.print(F(":"));
       lcd.print(numero_min_0);
       lcd.print(numero_min_1);
      delay(1000); 
       lcd.setCursor(0,0);
      lcd.print(F("Entre a Data: "));
      lcd.print(F("Ex: 07/09/12"));
      lcd.setCursor(0,3);
      lcd.print(F("    "));
      lcd.print(F("__/__/__"));
      lcd.setCursor(0,4);
      lcd.print(F("* - Corrige"));
         
    } 
    if(cont_3_teclas == 4)
    {
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print(F("Entre a Data: "));
      lcd.print(F("Ex: 07/09/12"));
      lcd.setCursor(0,3);
      lcd.print(F("    "));
      lcd.print(F("__/__/__"));
      numero_dia_0 = key - 48;
      lcd.setCursor(0,3);
      lcd.print(F("    "));
      lcd.print(numero_dia_0);
      lcd.print(F("_/__/__"));
      lcd.setCursor(0,4);
      lcd.print(F("* - Corrige"));
         
     }
     if(cont_3_teclas == 5)
     {
      numero_dia_1 = key - 48;
      lcd.setCursor(0,3);
      lcd.print(F("    "));
      lcd.print(numero_dia_0);
      lcd.print(numero_dia_1);
      lcd.print(F("/__/__"));
      lcd.setCursor(0,4);
      lcd.print(F("* - Corrige"));
         
     }
     
     if(cont_3_teclas == 6)
     {
      numero_mes_0 = key - 48;
      lcd.setCursor(0,3);
      lcd.print(F("    "));
      lcd.print(numero_dia_0);
      lcd.print(numero_dia_1);
      lcd.print(F("/"));
      lcd.print(numero_mes_0);
      lcd.print(F("_/__"));
      lcd.setCursor(0,4);
      lcd.print(F("* - Corrige"));
         
     }
     
     if(cont_3_teclas == 7)
     {
      numero_mes_1 = key - 48;
      lcd.setCursor(0,3);
      lcd.print(F("    "));
      lcd.print(numero_dia_0);
      lcd.print(numero_dia_1);
      lcd.print(F("/"));
      lcd.print(numero_mes_0);
      lcd.print(numero_mes_1);
      lcd.print(F("/__"));
      lcd.setCursor(0,4);
      lcd.print(F("* - Corrige"));
         
     }
     
     if(cont_3_teclas == 8)
     {
      numero_ano_0 = key - 48;
      lcd.setCursor(0,3);
      lcd.print(F("    "));
      lcd.print(numero_dia_0);
      lcd.print(numero_dia_1);
      lcd.print(F("/"));
      lcd.print(numero_mes_0);
      lcd.print(numero_mes_1);
      lcd.print(F("/"));
      lcd.print(numero_ano_0);
      lcd.print(F("_"));
      lcd.setCursor(0,4);
      lcd.print(F("* - Corrige"));
         
     }
    if(cont_3_teclas == 9)
     {
      numero_ano_1 = key - 48;
      lcd.setCursor(0,3);
      lcd.print(F("    "));
      lcd.print(numero_dia_0);
      lcd.print(numero_dia_1);
      lcd.print(F("/"));
      lcd.print(numero_mes_0);
      lcd.print(numero_mes_1);
      lcd.print(F("/"));
      lcd.print(numero_ano_0);
      lcd.print(numero_ano_1);
      lcd.setCursor(0,4);
      lcd.print(F("* - Corrige"));
      delay(1000);
      lcd.clear();
      regular_relogio = 23;// Acaba a parte de regular o relógio, logo podemos seguir em frente com os menus          
      hr = (numero_hr_0 * 10) + (numero_hr_1);// passa os dados digitados para números inteiros, 1 e 0 para 10.
      minuto =  (numero_min_0 * 10) + (numero_min_1); 
      dia = (numero_dia_0 * 10) + (numero_dia_1);
      mes = (numero_mes_0 * 10) + (numero_mes_1);
      ano = (numero_ano_0 * 10) + (numero_ano_1);
      setTime(hr,minuto,0,dia,mes,ano);// impõe a hora e a data no arduino como sendo a hr e a data que foram entradas na sistema.
      
   }
    
    
    
    cont_3_teclas = cont_3_teclas + 1;// vai incrementando a variável que controla os menus, essa parte do programa inteira só roda quando a pessoa preciona uma tecla
   }
  }}

So after this the program asks if the user wants to get the weigh of the trash,

 if (regular_relogio == 23)
 {
  if(cont_pesagem_tela == 0){
  lcd.clear(); 
  lcd.setCursor(0,0);  
  lcd.println(F("Realizar       pesagem?"));
  lcd.println(F("        A - Sim"));
 cont_pesagem_tela = 1;  
}
 if(key)
  {
  if(key == 'A')
  {
  regular_relogio = 2;
  

  }
 }}