PROBLEMAS CON MI ARDUINO UNO

Soy nueva en esto y no se si instale bien el software, instale el 1.8.1.

Les comento mi problema que tengo: estoy haciendo un proyecto con un arduino uno que es un reloj despertador (arduino uno ATMEGA328P, pantalla LCD, adaptador I2C y pulsadores).

El problema aqui es que cuando trato de cargar el sketch a mi arduino la compilacion lo hace bien pero al momento de cuando lo esta subiendo se queda subiendo y nunca aparace el de carga terminada, y tampoco sale ningun error. Estaba buscando en otros foros y ninguno me resuelve el problema por eso acudo aqui en este foro.

Si revice que sea el puerto y la placa, todo funciona perfectamente.

Aqui les dejo el codigo:

#include <TimerOne.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>


LiquidCrystal_I2C lcd (0x27, 16, 2);
const int PULSADOR_MODO = 2;
const int PULSADOR_UP = 3;
const int PULSADOR_DOWN = 4;
const int PULSADOR_LUZ = 5;
const int BUZZER = 6;

//decalarar variables
int horas = 0;
int minutos = 0;
volatile int segundos = 0;
volatile boolean actualizar = true;

int horas_alarma = 0;
int minutos_alarma = 0;
boolean alarmaOn = false;
int contador_alarma = 0;

boolean luzOn = false;
int contador_luz = 0;

char texto[10];
int modo = 0;
const int N = 6;


void setup() {
  Wire.begin();
  lcd.begin(16, 2);
  lcd.clear();
  lcd.noBacklight();
                  //configurar los pines
  pinMode(PULSADOR_MODO, INPUT);
  pinMode(PULSADOR_UP, INPUT);
  pinMode(PULSADOR_DOWN, INPUT);
  pinMode(PULSADOR_LUZ, INPUT);
  pinMode(BUZZER, OUTPUT);

  Timer1.initialize(1000000);
  Timer1.attachInterrupt(manejadoraTimer);
}
            //manejo del tiempo
void manejadoraTimer() {
  segundos++;
             //en la luz
  if (luzOn == true) {
    contador_luz++;
  }
             //en le buzzer
  if (digitalRead(BUZZER) == HIGH) {
    contador_alarma++;
  }
  actualizar = true;
}
         //Reloj
void actualizarReloj() {
  minutos += segundos / 60;
  segundos = segundos % 60;

  horas += minutos / 60;
  minutos = minutos % 60;

  horas = horas % 24;
}

           //incrementar y decrementar las horas del RELOJ
void incrementarHoras() {
  horas ++;
  horas = horas % 24;
  actualizar = true;
}

void decrementarHoras() {
  horas --;
  if (horas < 0) {
    horas = 23;
  }
  actualizar = true;
}

             //incremetar y descrementar las horas de la ALARMA
void incrementarHorasAlarma() {
  horas_alarma++;
  horas_alarma = horas_alarma % 24;
  actualizar = true;
}

void decrementarHorasAlarma() {
  horas_alarma--;
  if (horas_alarma < 0) {
    horas_alarma = 23;
  }
  actualizar = true;
}

             //incrementar y descrementar los minutos de la ALARMA
void incrementarMinutosAlarma() {
  minutos_alarma ++;
  minutos_alarma = minutos_alarma % 60;
  actualizar = true;
}

void decrementarMinutosAlarma() {
  minutos_alarma --;
  if (minutos_alarma < 0) {
    minutos_alarma = 59;
  }
  actualizar = true;
}
               //incrementar y decrementar los minutos del RELOJ
void incrementarMinutos() {
  minutos ++;
  minutos = minutos % 60;
  actualizar = true;
}

void decrementarMinutos() {
  minutos --;
  if (minutos < 0) {
    minutos = 59;
  }
  actualizar = true;
}
                     //fijar los pulsadores
void fijarCursorModo() {
  switch (modo) {
    case 0:
      lcd.noBlink();
      break;
    case 1:
      lcd.setCursor(0, 0);
      lcd.blink();
      break;
    case 2:
      lcd.setCursor(3, 0);
      lcd.blink();
      break;
    case 3:
      lcd.setCursor(0, 1);
      lcd.blink();
      break;
    case 4:
      lcd.setCursor(3, 1);
      lcd.blink();
      break;
    case 5:
      lcd.setCursor(6, 1);
      lcd.blink();
      break;
  }
}

void loop() {
                   //rectificar si se esta presionando el pulsador
        // en los pines del 1 al 6
  if (digitalRead(PULSADOR_MODO) == HIGH) {
    contador_luz = 0;
    modo++;
    modo = modo % N;
    fijarCursorModo();
    while (digitalRead(PULSADOR_MODO) == HIGH);
  }
       // LUZ
  if (digitalRead(PULSADOR_LUZ) == HIGH) {
    if (digitalRead(BUZZER) == HIGH) {
      digitalWrite(BUZZER, LOW);
      contador_alarma = 0;
    }
      //APAGAMOS Y ENCENDEMOS LA LUZ DEL LCD
    contador_luz = 0;
    if (luzOn == false) {
      lcd.backlight();
    } else {
      lcd.noBacklight();
    }
    luzOn = !luzOn;
    while (digitalRead(PULSADOR_LUZ) == HIGH);
  }

  switch (modo) {
    //RELOJ
    case 1:
      if (digitalRead(PULSADOR_UP) == HIGH) {
        contador_luz = 0;
        incrementarHoras();
        while (digitalRead(PULSADOR_UP) == HIGH);
      }
      if (digitalRead(PULSADOR_DOWN) == HIGH) {
        contador_luz = 0;
        decrementarHoras();
        while (digitalRead(PULSADOR_DOWN) == HIGH);
      }
      break;
    case 2:
      if (digitalRead(PULSADOR_UP) == HIGH) {
        contador_luz = 0;
        incrementarMinutos();
        while (digitalRead(PULSADOR_UP) == HIGH);
      }
      if (digitalRead(PULSADOR_DOWN) == HIGH) {
        contador_luz = 0;
        decrementarMinutos();
        while (digitalRead(PULSADOR_DOWN) == HIGH);
      }
      break;
    //ALARMA
    case 3:
      if (digitalRead(PULSADOR_UP) == HIGH) {
        contador_luz = 0;
        incrementarHorasAlarma();
        while (digitalRead(PULSADOR_UP) == HIGH);
      }
      if (digitalRead(PULSADOR_DOWN) == HIGH) {
        contador_luz = 0;
        decrementarHorasAlarma();
        while (digitalRead(PULSADOR_DOWN) == HIGH);
      }
      break;
    case 4:
      if (digitalRead(PULSADOR_UP) == HIGH) {
        contador_luz = 0;
        incrementarMinutosAlarma();
        while (digitalRead(PULSADOR_UP) == HIGH);
      }
      if (digitalRead(PULSADOR_DOWN) == HIGH) {
        contador_luz = 0;
        decrementarMinutosAlarma();
        while (digitalRead(PULSADOR_DOWN) == HIGH);
      }
      break;
    case 5:

      if (digitalRead(PULSADOR_UP) == HIGH) {
        contador_luz = 0;
        alarmaOn = !alarmaOn;
        actualizar = true;
        while (digitalRead(PULSADOR_UP) == HIGH);
      }

      /*
        if(digitalRead(PULSADOR_UP)==HIGH){
        alarmaOn=true;
        actualizar=true;
        while(digitalRead(PULSADOR_UP)==HIGH);
        }
        if(digitalRead(PULSADOR_DOWN)==HIGH){
        alarmaOn=false;
        actualizar=true;
        while(digitalRead(PULSADOR_DOWN)==HIGH);
        }
      */
      break;
  }

  if (actualizar == true) {
    actualizarReloj();
    lcd.clear();
    lcd.noBlink();
    //RELOJ
    lcd.setCursor(0, 0);
    sprintf(texto, "%02d:%02d:%02d", horas, minutos, segundos);
    lcd.print(texto);
    //ALARMA
    lcd.setCursor(0, 1);
    sprintf(texto, "%02d:%02d", horas_alarma, minutos_alarma);
    lcd.print(texto);

    if (alarmaOn == true) {
      if (segundos == 0 && horas == horas_alarma && minutos == minutos_alarma) {
        digitalWrite(BUZZER, HIGH);
      }
      lcd.print(" ON");
    } else {
      lcd.print(" OFF");
    }

    if (contador_alarma == 60) {
      digitalWrite(BUZZER, LOW);
      contador_alarma = 0;
    }

    //LUZ
    if (contador_luz == 30) {
      lcd.noBacklight();
      luzOn = false;
      contador_luz = 0;
    }
    actualizar = false;
    fijarCursorModo();
  }

}

De antemano gracias y espero que si me puedan ayudar.

Probaste subir un código como Blink.ino?