error RTC.get

Buenas tardes,

conseguí hacer funcionar un sencillo programador de riego el año pasado con arduino uno y este año al intentar compilarlo con otro pc distinto y arduinoMEGA no lo consigo:

ERROR

Arduino:1.8.5 (Windows 7), Tarjeta:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

In file included from C:\Users\install\Documents\Arduino\11.Programas\programador_3\programador_3.ino:4:0:

C:\Users\install\Documents\Arduino\libraries\DS1307RTC/DS1307RTC.h:19:22: error: 'tmElements_t' has not been declared

    static bool read(tmElements_t &tm);

                     ^

C:\Users\install\Documents\Arduino\libraries\DS1307RTC/DS1307RTC.h:20:23: error: 'tmElements_t' has not been declared

    static bool write(tmElements_t &tm);

                      ^

C:\Users\install\Documents\Arduino\11.Programas\programador_3\programador_3.ino: In function 'void setup()':

programador_3:9: error: 'setSyncProvider' was not declared in this scope

  setSyncProvider(RTC.get);      // Vamos a usar el RTC

                         ^

programador_3:10: error: 'setSyncInterval' was not declared in this scope

  setSyncInterval(86400000);        // Sincronizo una vez cada 24 horas

                          ^

programador_3:15: error: 'timeStatus' was not declared in this scope

  if (timeStatus() != timeSet){

                 ^

programador_3:15: error: 'timeSet' was not declared in this scope

  if (timeStatus() != timeSet){

                      ^

C:\Users\install\Documents\Arduino\11.Programas\programador_3\programador_3.ino: In function 'void loop()':

programador_3:25: error: 'hour' was not declared in this scope

  Serial.println(String(hour()) + ": " + String(minute()));

                             ^

programador_3:25: error: 'minute' was not declared in this scope

  Serial.println(String(hour()) + ": " + String(minute()));

                                                       ^

C:\Users\install\Documents\Arduino\11.Programas\programador_3\programador_3.ino: In function 'boolean esHoraRiego()':

programador_3:57: error: 'hour' was not declared in this scope

  int momentoAhora = (hour() * 60) + minute();

                           ^

programador_3:57: error: 'minute' was not declared in this scope

  int momentoAhora = (hour() * 60) + minute();

                                            ^

exit status 1
'setSyncProvider' was not declared in this scope

Este reporte podría tener más información con
"Mostrar salida detallada durante la compilación"
opción habilitada en Archivo -> Preferencias.
#include <Time.h>
#include <Wire.h>
#include <DS1307RTC.h>  // a basic DS1307 library that returns time as a time_t

void setup(){
  Serial.begin(115200);

  setSyncProvider(RTC.get);      // Vamos a usar el RTC
  setSyncInterval(86400000);        // Sincronizo una vez cada 24 horas

  pinMode( 13, OUTPUT) ;
  digitalWrite(13 , LOW) ; // Apagamos el LED al empezar

  if (timeStatus() != timeSet){
    Serial.println("Unable to sync with the RTC");
  }else{
    Serial.println("RTC has set the system time");
  }
}

void loop(){
  //Muestro por el puerto serie la hora
  Serial.print("Son las: ");
  Serial.println(String(hour()) + ": " + String(minute()));
  //comprobamos si es la hora del riego
  if (esHoraRiego()) {
    //Si es la hora del riego, mostramos un mensaje indicándolo por el puerto serie
    Serial.print("Es hora riego!!");
    digitalWrite(13 , HIGH) ; // aBRIMOS PIN/LED al empezar
    delay(60000);          // 60 SEGUNDOS DE RIEGO
    Serial.print("Es hora riego!!");
    digitalWrite(13 , LOW) ; // CERRAMOS PIN/LED al empezar
    Serial.print("Es hora riego pero reposo!!");
    delay(180000);          // 180 SEGUNDOS DE ESPERA
  } else {
    //Muestro por el puerto serie la hora
    Serial.print("Son las: ");
    Serial.println(String(hour()) + ": " + String(minute()));
    //Si no es la hora del riego, mostramos un mensaje indicándolo por el puerto serie tambien
    Serial.print("No es hora riego");
    delay(1800000);          // 30 MIN DE ESPERA EN MILISEGUNDOS
  }
}

boolean esHoraRiego() {
  //Defino horas de riego Inicio a las 11:00 y termina a las 19:30
  byte horaInicio = 11;
  byte minutoInicio = 30;
  byte horaFin = 19;
  byte minutoFin = 30;

  //Para hacer las comparaciones de cuando empezar y cuando terminar, lo paso todo a minutos.

  int momentoInicio = (horaInicio * 60) + minutoInicio;
  int momentoFin = (horaFin * 60) + minutoFin;
  int momentoAhora = (hour() * 60) + minute();

  //Esto es que si hemos pasado o estamos en el momento de inicio , pero antes del momento del fin…
  if ((momentoInicio <= momentoAhora) && (momentoAhora < momentoFin)) {
    //devolver "Cierto" en esta función "esHoraRiego"
    return true;
  } else {
    //devolver "Falso" en esta función "esHoraRiego"
    return false;
  }
}

Todos los errores estan relacionados con DS1307RTC

De donde la bajaste de pjrc?

Segúramente es por la versión de las librerías porque instalando las de estos enlaces si que funciona.

Muchas gracias.

El problema ahora me lo da el androidide que no carga el sketch en la placa