Arduino starts from the setup, can you help me?

Hi,
I’m Filippo, I’m 15 and I have a basic knowledge of arduino.
I need help becuse my arduino restart from the setup.
please help me.

#include <DHT.h>
#include "DHT.h"
#define DHTPIN 8
// 8 è il pin di Arduino a cui collego il sensore di temperatura
#define DHTTYPE DHT11
// dht11 è il tipo di sensore che uso
DHT dht(DHTPIN, DHTTYPE);
#include <SPI.h>
#include <RFID.h>
/* Vengono definiti PIN del RFID reader*/
#define SDA_DIO 10  // Pin 53 per Arduino Mega
#define RESET_DIO 9
#define delayRead 1000 // Tempo 
#define delayLed 2000 
#define ledVerde 3
#define ledRosso 4
#define rele 2
unsigned long timer;
unsigned long time1;
unsigned long time2;
unsigned long perma1;
unsigned long perma2;
int s1;
int s2;
/* Viene creata una istanza della RFID libreria */
RFID RC522(SDA_DIO, RESET_DIO); 
 // inserire tutti i codici esadecimali delle schede magnetiche riconosciute 
String codiceAutorizzato1 = "840C149C";
String codiceAutorizzato2 = "1C5FC059DA";
String codiceAutorizzato3 = "";
 
void setup()
{ 
 s1 = 0;
 s2 = 0;
 Serial.begin(9600);
 /* Abilita SPI*/
 SPI.begin(); 
 /* Viene inizilizzato RFID reader */
 RC522.init();
 Serial.println("Setup");
 pinMode(ledVerde,OUTPUT);
 pinMode(ledRosso,OUTPUT);
 pinMode(rele,OUTPUT);
}
 
void loop()
{
 int t = dht.readTemperature();
 int u = dht.readHumidity();
 /* Temporary loop counter */
 byte i;
 // Se viene letta una tessera
 if (RC522.isCard())
 {
   // Viene letto il suo codice 
   RC522.readCardSerial();
   String codiceLetto ="";
   Serial.println("Codice delle tessera letto:");
 
   // Viene caricato il codice della tessera, all'interno di una Stringa
   for(i = 0; i <= 4; i++)
   {
     codiceLetto+= String (RC522.serNum[i],HEX);
     codiceLetto.toUpperCase(); 
   }
   Serial.println(codiceLetto);
   if(verificaCodice(codiceLetto,codiceAutorizzato1)&&(s1)==0){
     Serial.println("Tessera autorizzata");
     Serial.print("Umidità: ");
     Serial.println(u);
     Serial.print("Temperatura: ");
     Serial.println(t);
     time1=timer;
     s1=1;
     accendiLed(ledVerde);
     digitalWrite (rele, HIGH);
     delay (1000);     // Tempo relè in stato ON
     digitalWrite (rele, LOW);
   }
   else if(verificaCodice(codiceLetto,codiceAutorizzato1)&&(s1)==1){
     Serial.println("Tessera autorizzata");
     time1=((timer)-(time1));
     s1=0;
     perma1=((perma1)+(time1));
     Serial.print("Umidità: ");
     Serial.println(u);
     Serial.print("Temperaturas: ");
     Serial.println(t);
     Serial.println("Permanenza:");
     Serial.println(perma1);
     accendiLed(ledVerde);
     digitalWrite (rele, HIGH);
     delay (1000);     // Tempo relè in stato ON
     digitalWrite (rele, LOW);
   }
   else if(verificaCodice(codiceLetto,codiceAutorizzato2)&&(s2)==0){
     Serial.println("Tessera autorizzata");
     time2=timer;
     s2=1;
     Serial.println("Tessera autorizzata");
     Serial.print("Umidità: ");
     Serial.println(u);
     Serial.print("Temperatura: ");
     Serial.println(t);
     accendiLed(ledVerde);
     digitalWrite (rele, HIGH);
     delay (1000);     // Tempo relè in stato ON
     digitalWrite (rele, LOW);
   }
   else if(verificaCodice(codiceLetto,codiceAutorizzato2)&&(s2)==1){
     Serial.println("Tessera autorizzata");
     time2=((timer)-(time2));
     s2=0;
     perma1=((perma2)+(time2));
     Serial.println("Tessera autorizzata");
     Serial.print("Umidità: ");
     Serial.println(u);
     Serial.print("Temperatura: ");
     Serial.println(t);
     Serial.println("Permanenza:");
     Serial.println(perma2);
     accendiLed(ledVerde);
     digitalWrite (rele, HIGH);
     delay (1000);     // Tempo relè in stato ON
     digitalWrite (rele, LOW);
   }else{
     Serial.println("Tessera non autorizzata");
     accendiLed(ledRosso);
   }
 delay(delayRead);  
 }
}
// Questa funzione verifica se il codice Letto è autorizzato
boolean verificaCodice(String codiceLetto, String codiceAutorizzato){
 if(codiceLetto.equals(codiceAutorizzato)){
   return true;
 }else{
   return false;
 }  
}    
// Questa funzione permette di accendere un LED per un determinato periodo
void accendiLed(int ledPin){
 digitalWrite(ledPin,HIGH);
 delay(delayLed);
 digitalWrite(ledPin,LOW);
}

please learn to post code properly with tags. your code got italic because an index got interpreted.

CTRL-T autoformats code which makes it more readable and therefor better debugable

>Filippo_02: … Prima di tutto, nella sezione in lingua Inglese si può scrivere SOLO in Inglese … quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post …

… poi, essendo il tuo primo post, nel rispetto del regolamento (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (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

… infine, in conformità al suddetto regolamento, punto 7, come ti è stato anche detto da “robtillaart”, 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).

Guglielmo

P.S.: Il tuo post è già stato spostato nell’opportuna sezione del forum “Italiano”