Arduino Nano carga el sketch pero no lo ejecuta

Hola a todos el mundo, he empezado recientemente en esto de arduino y tengo que decier que no tengo ni pajolera idea, me he visto muchos videos y tal pero me cuesta bastante
Bien, lo que pretendo hacer es que el Nano controle 3 sensores de humedad y 5 reles los cuales uno sera para una bomba de riego, otro para la iluminacion led para las plantas y los otros 3 son para electrovalvulas.
Tengo que decir que estube viendo muchos videos relacionado con estas cosas y al final me decidi ha hacer un popurri de todo y parece ser que al verificar no da fallos incluso a la hora de cargar el sketch tampo me dio problemas, lo unico es que se me quedan encendido todos los leds de los reles y en monitor series no me da los datos ni de la hora y fecha ni de los sensores.
Me estube peleando y no conseguia nada y al cabo de unos minutos milagrosamente ya me daba los datos por el monitor seies. No se si es que le cuesta cargar o que le pasa pero volvi a cargar cambiando un dato y ahora esta igual sin darme datos. Os paso el codigo haber que desastre lie y haber si me lo pueden revisar y decirme en que fallo.

#include <Wire.h>		// incluye libreria para interfaz I2C
#include <RTClib.h>		// incluye libreria para el manejo del modulo RTC

RTC_DS3231 rtc;			// crea objeto del tipo RTC_DS3231

bool led_inicio = true;	// variable de control para inicio de evento con valor true
bool led_fin = true;		// variable de control para finalizacion de evento con valor true

const int HUMEDADBAJA = 550;   //you need to replace this value with Value_1
const int HUMEDADALTA = 208;  //you need to replace this value with Value_2
int humedad1 = 0;
int humedad2 = 0;
int humedad3 = 0;
int porcentagehumedad1=0;
int porcentagehumedad2=0;
int porcentagehumedad3=0;
// establece los reles
int rele = 3;
int rele1 = 4; 
int rele2 = 5;
int rele3 = 6;
// establece rele bomba
int bomba = 7;
//estado bomba    1:open   0:close
int bomba_state = 0;
//estado rele    1:open   0:close
int rele_state = 0;
//estado rele1    1:open   0:close
int rele1_state = 0;
//estado rele2   1:open   0:close
int rele2_state = 0;
//estado rele3  1:open   0:close
int rele3_state = 0;
void setup() {
 pinMode(rele, OUTPUT);		// pin 3 como salida
 pinMode(rele1, OUTPUT);		// pin 4 como salida
 pinMode(rele2, OUTPUT);		// pin 5 como salida
 pinMode(rele3, OUTPUT);		// pin 6 como salida
 pinMode(bomba, OUTPUT); // pin 7 como entrada (bomba)
  Serial.begin(9600); // open serial port, set the baud rate to 9600 bps
 if (! rtc.begin()) 				// si falla la inicializacion del modulo
 Serial.println("Modulo RTC no encontrado !");	// muestra mensaje de error
 while (1);  
}
void loop() {  
DateTime fecha = rtc.now();				// funcion que devuelve fecha y horario en formato
							// DateTime y asigna a variable fecha
 if ( fecha.hour() == 17 && fecha.minute() == 00 ){	// si hora = 14 y minutos = 30
    if ( led_inicio == true ){			// si led_inicio es verdadero
      digitalWrite(rele, HIGH);				// activa modulo de rele con nivel alto
      Serial.println( "LED encendido" );		// muestra texto en monitor serie
      led_inicio = false;				// carga valor falso en variable de control
    }			// para evitar ingresar mas de una vez
  }
 if ( fecha.hour() == 21 && fecha.minute() == 00){	// si hora = 15 y minutos = 30
    if ( led_fin == true ){				// si led_fin es verdadero
      digitalWrite(rele, LOW);				// desactiva modulo de rele con nivel bajo
      Serial.println( "LED apagado" );			// muestra texto en monitor serie
      led_fin = false;				// carga valor falso en variable de control
    }							// para evitar ingresar mas de una vez
  }
 Serial.print(fecha.day());				// funcion que obtiene el dia de la fecha completa
 Serial.print("/");					// caracter barra como separador
 Serial.print(fecha.month());				// funcion que obtiene el mes de la fecha completa
 Serial.print("/");					// caracter barra como separador
 Serial.print(fecha.year());				// funcion que obtiene el año de la fecha completa
 Serial.print(" ");					// caracter espacio en blanco como separador
 Serial.print(fecha.hour());				// funcion que obtiene la hora de la fecha completa
 Serial.print(":");					// caracter dos puntos como separador
 Serial.print(fecha.minute());				// funcion que obtiene los minutos de la fecha completa
 Serial.print(":");					// caracter dos puntos como separador
 Serial.println(fecha.second());			// funcion que obtiene los segundos de la fecha completa
 
 delay(1000);						// demora de 1 segundo
  if ( fecha.hour() == 2 && fecha.minute() == 0 ){ 	// si hora = 2 y minutos = 0 restablece valores de
    led_inicio = true;				// variables de control en verdadero
    led_fin = true;
  }
humedad1 = analogRead(A0);  //put Sensor insert into soil
Serial.println(humedad1);
porcentagehumedad1 = map(humedad1, HUMEDADBAJA, HUMEDADALTA, 0, 100);
if (porcentagehumedad1 < 40) // change this at what level the pump turns on
  {
    Serial.println("BANCAL BAJO SECO, Bomba on");
    digitalWrite(bomba, HIGH); // Low percent high signal to relay to turn on pump
    digitalWrite(rele1, HIGH); // Low percent high signal to relay to turn on pump
  }
  else if (porcentagehumedad1 > 50) // max water level should be
  {
    Serial.println("BANCAL BAJO MOJADO, Bomba off");
    digitalWrite(bomba, LOW); // high percent water high signal to relay to turn on pump
    digitalWrite(rele1, LOW);
  }
if(porcentagehumedad1 >= 100)
{
  Serial.println("100 %");
}
else if(porcentagehumedad1 <=0)
{
  Serial.println("0 %");
}
else if(porcentagehumedad1 >0 && porcentagehumedad1 < 100)
{
  Serial.print(porcentagehumedad1);
  Serial.println("%");
}

humedad2 = analogRead(A1);  //put Sensor insert into soil
Serial.println(humedad2);
porcentagehumedad2 = map(humedad2, HUMEDADBAJA, HUMEDADALTA, 0, 100);
if (porcentagehumedad2 < 40) // change this at what level the pump turns on
  {
    Serial.println("BANCAL CENTRO SECO, Bomba on");
    digitalWrite(bomba, HIGH); // Low percent high signal to relay to turn on pump
    digitalWrite(rele2, HIGH); // Low percent high signal to relay to turn on pump
  }
  else if (porcentagehumedad2 > 50) // max water level should be
  {
    Serial.println("BANCAL CENTRO MOJADO, Bomba off");
    digitalWrite(bomba, LOW); // high percent water high signal to relay to turn on pump
    digitalWrite(rele2, LOW); // Low percent high signal to relay to turn on pump
  }
if(porcentagehumedad2 >= 100)
{
  Serial.println("100 %");
}
else if(porcentagehumedad2 <=0)
{
  Serial.println("0 %");
}
else if(porcentagehumedad2 >0 && porcentagehumedad2 < 100)
{
  Serial.print(porcentagehumedad2);
  Serial.println("%");
}

humedad3 = analogRead(A2);  //put Sensor insert into soil
Serial.println(humedad3);
porcentagehumedad3 = map(humedad3, HUMEDADBAJA, HUMEDADALTA, 0, 100);
if (porcentagehumedad3 < 40) // change this at what level the pump turns on
  {
    Serial.println("BANCAL ALTO SECO, Bomba on");
    digitalWrite(bomba, HIGH); // Low percent high signal to relay to turn on pump
    digitalWrite(rele3, HIGH);
  }
  else if (porcentagehumedad3 > 50) // max water level should be
  {
    Serial.println("BANCAL ALTO MOJADO, Bomba off");
    digitalWrite(bomba, LOW); // high percent water high signal to relay to turn on pump
    digitalWrite(rele3, LOW);
  }
if(porcentagehumedad3 >= 100)
{
  Serial.println("100 %");
}
else if(porcentagehumedad3 <=0)
{
  Serial.println("0 %");
}
else if(porcentagehumedad3 >0 && porcentagehumedad3 < 100)
{
  Serial.print(porcentagehumedad3);
  Serial.println("%");
}
  delay(1000);
}

No lo comente pero lo que pretendo es que controle la humedad de los bancales y le de riego cuando lo necesite ademas de encender la luz led de crecimiento para que puedan crecer las plantitas ya que donde vivo el sol directo solo me da 2 horas en todo el dia y no es suficiente.
Gracias

Hola, gracias por postear debidamente tu código y respetar las normas!!!
Si tuviera forma de darte algun premio lo haría.
Esto dicho como moderador.

Ahora como forero, el primer problema que veo es este. Al final del setup tienes

  while (1)
    ;

Y eso actúa como un bucle o ciclo cerrado no permitiendo que nada mas se ejecute. Asi que o lo borras o lo comentas. No tiene razón de ser.

Ya que empiezas te enseñaremos algo para que no uses delay() porque en algún momento delay te dará dolores de cabeza. No ahora donde aparentemente esta todo bien, pero ya verás mas adelante.

Tu código esta muy bien para ser la primera vez y resolverlo por tu cuenta. Todos o muchos hemos empezado asi.
Ahora van algunos consejos.
Separa siempre las cosas. Una cosa es leer sensores y otra son sus acciones.
Los sensores deben leerse al ritmo o la tasa que tu decidas. El flujo del programa no debe tener momentos de frenado que lo provoca cada delay(). Cuando el código encuentra un delay éste se detiene por el tiempo ahí indicado.
Así que por un lado lees todos tus sensores y luego decides que hacer con cada cosa.

Esta es mi manera de hacerlo e incluso hay mucho mas para trabajar pero te permite separar cosas y leer mas cómodamente el loop. Te será mas fácil cuando luego de un tiempo retomes el código.

#include <Wire.h>   // incluye libreria para interfaz I2C
#include <RTClib.h> // incluye libreria para el manejo del modulo RTC

RTC_DS3231 rtc; // crea objeto del tipo RTC_DS3231

bool led_inicio = true; // variable de control para inicio de evento con valor true
bool led_fin = true;    // variable de control para finalizacion de evento con valor true

const int HUMEDADBAJA = 550; // you need to replace this value with Value_1
const int HUMEDADALTA = 208; // you need to replace this value with Value_2
int humedad1 = 0;
int humedad2 = 0;
int humedad3 = 0;
int porcentagehumedad1 = 0;
int porcentagehumedad2 = 0;
int porcentagehumedad3 = 0;
// establece los reles
int rele = 3;
int rele1 = 4;
int rele2 = 5;
int rele3 = 6;
// establece rele bomba
int bomba = 7;
// estado bomba    1:open   0:close
int bomba_state = 0;
// estado rele    1:open   0:close
int rele_state = 0;
// estado rele1    1:open   0:close
int rele1_state = 0;
// estado rele2   1:open   0:close
int rele2_state = 0;
// estado rele3  1:open   0:close
int rele3_state = 0;

unsigned long t;

void muestroHora() {
  char buffer[20];

  sprintf(buffer, "%02d/%02d/%02d %02d:%02d:%02d", fecha.day(), fecha.month(), fecha.year(), fecha.hour(), fecha.minute(), fecha.second())
  Serial.println(buffer);
}

void LeoSensores()
{
  humedad1 = analogRead(A0); // put Sensor insert into soil
  Serial.println(humedad1);
  porcentagehumedad1 = map(humedad1, HUMEDADBAJA, HUMEDADALTA, 0, 100);

  humedad2 = analogRead(A1); // put Sensor insert into soil
  Serial.println(humedad2);
  porcentagehumedad2 = map(humedad2, HUMEDADBAJA, HUMEDADALTA, 0, 100);

  humedad3 = analogRead(A2); // put Sensor insert into soil
  Serial.println(humedad3);
  porcentagehumedad3 = map(humedad3, HUMEDADBAJA, HUMEDADALTA, 0, 100);
}

void ControlH1()
{
  if (porcentagehumedad1 < 40) // change this at what level the pump turns on
  {
    Serial.println("BAJO SECO, Bomba on ");
    digitalWrite(bomba, HIGH); // Low percent high signal to relay to turn on pump
    digitalWrite(rele1, HIGH); // Low percent high signal to relay to turn on pump
  }
  else if (porcentagehumedad1 > 50) // max water level should be
  {
    Serial.println("BANCAL BAJO MOJADO, Bomba off");
    digitalWrite(bomba, LOW); // high percent water high signal to relay to turn on pump
    digitalWrite(rele1, LOW);
  }
  if (porcentagehumedad1 >= 100)
  {
    Serial.println("100 %");
  }
  else if (porcentagehumedad1 <= 0)
  {
    Serial.println("0 %");
  }
  else if (porcentagehumedad1 > 0 && porcentagehumedad1 < 100)
  {
    Serial.print(porcentagehumedad1);
    Serial.println("%");
  }
}

void ControlH2() {
  if (porcentagehumedad2 < 40) // change this at what level the pump turns on
  {
    Serial.println("BANCAL CENTRO SECO, Bomba on");
    digitalWrite(bomba, HIGH); // Low percent high signal to relay to turn on pump
    digitalWrite(rele2, HIGH); // Low percent high signal to relay to turn on pump
  }
  else if (porcentagehumedad2 > 50) // max water level should be
  {
    Serial.println("BANCAL CENTRO MOJADO, Bomba off");
    digitalWrite(bomba, LOW); // high percent water high signal to relay to turn on pump
    digitalWrite(rele2, LOW); // Low percent high signal to relay to turn on pump
  }
  if (porcentagehumedad2 >= 100)
  {
    Serial.println("100 %");
  }
  else if (porcentagehumedad2 <= 0)
  {
    Serial.println("0 %");
  }
  else if (porcentagehumedad2 > 0 && porcentagehumedad2 < 100)
  {
    Serial.print(porcentagehumedad2);
    Serial.println("%");
  }
}

void ControlH3() {
  if (porcentagehumedad3 < 40) // change this at what level the pump turns on
  {
    Serial.println("BANCAL ALTO SECO, Bomba on");
    digitalWrite(bomba, HIGH); // Low percent high signal to relay to turn on pump
    digitalWrite(rele3, HIGH);
  }
  else if (porcentagehumedad3 > 50) // max water level should be
  {
    Serial.println("BANCAL ALTO MOJADO, Bomba off");
    digitalWrite(bomba, LOW); // high percent water high signal to relay to turn on pump
    digitalWrite(rele3, LOW);
  }
  if (porcentagehumedad3 >= 100)
  {
    Serial.println("100 %");
  }
  else if (porcentagehumedad3 <= 0)
  {
    Serial.println("0 %");
  }
  else if (porcentagehumedad3 > 0 && porcentagehumedad3 < 100)
  {
    Serial.print(porcentagehumedad3);
    Serial.println("%");
  }
}

void setup()
{
  pinMode(rele, OUTPUT);                          // pin 3 como salida
  pinMode(rele1, OUTPUT);                         // pin 4 como salida
  pinMode(rele2, OUTPUT);                         // pin 5 como salida
  pinMode(rele3, OUTPUT);                         // pin 6 como salida
  pinMode(bomba, OUTPUT);                         // pin 7 como entrada (bomba)
  Serial.begin(9600);                             // open serial port, set the baud rate to 9600 bps
  if (!rtc.begin())                               // si falla la inicializacion del modulo
    Serial.println("Modulo RTC no encontrado !"); // muestra mensaje de error

}

void loop()
{
  DateTime fecha = rtc.now(); // funcion que devuelve fecha y horario en formato
                              // DateTime y asigna a variable fecha
  muestroHora();

  if (fecha.hour() == 17 && fecha.minute() == 00)
  { // si hora = 14 y minutos = 30
    if (led_inicio == true)
    {                                  // si led_inicio es verdadero
      digitalWrite(rele, HIGH);        // activa modulo de rele con nivel alto
      Serial.println("LED encendido"); // muestra texto en monitor serie
      led_inicio = false;              // carga valor falso en variable de control
    }                                  // para evitar ingresar mas de una vez
  }
  if (fecha.hour() == 21 && fecha.minute() == 00)
  { // si hora = 15 y minutos = 30
    if (led_fin == true)
    {                                // si led_fin es verdadero
      digitalWrite(rele, LOW);       // desactiva modulo de rele con nivel bajo
      Serial.println("LED apagado"); // muestra texto en monitor serie
      led_fin = false;               // carga valor falso en variable de control
    }                                // para evitar ingresar mas de una vez
  }

  if (fecha.hour() == 2 && fecha.minute() == 0)
  {                    // si hora = 2 y minutos = 0 restablece valores de
    led_inicio = true; // variables de control en verdadero
    led_fin = true;
  }

  if (millis() - t > 1000UL){
    LeoSensores();
    ControlH1();
    ControlH2();
    ControlH3();
    t = millis();
  }
}

Solo he reemplazado partes de tu código por rutinas que hacen lo mismo.
El único cambio significativo es que elimino los delays y uso algo que se llama millis(),
Puedes ver como usar millis() en Documentación donde hay varios y muy buenos tutoriales.
millis() es un contador en milisegundos que lleva el tiempo desde que el arduino se ha energizado. Si tu comparas millis() con un valor puedes hacer lo mismo que hace delay() sin detener el código.
Ojo. ahora tu código puede volverse caótico. En qué sentido caótico? Pues en la presentación de la información.
Todo lo que no este dentro de una retardo millis() se presentará a la velocidad del loop.
Entonces uno aprende a no poner carteles cuando un estado ocurre sino cuando éste cambia y entonces solo se ven cambios y no estados.
En tu caso no pasará pero tenlo presente.
Cómo usas millis().
Primero defines una variable del tipo y debe ser si o si unsigned long no importa lo que leas, hazlo bien desde el comienzo. Verás todo tipo de cosas. Pues problema de los demás.
Esa variable la llamé t de tiempo.
Lo que hago es capturar el valor de millis() en t. Lo almaceno entonces todo lo que ocurra a continuacion lo comparo contra t.
Cuando millis() valga 1000 milisegundos mas que t o sea cuando la diferencia millis() - t valga 1001 entonces la condicion se da y se ejecuta lo que tenias antes. Igual que con delay(1000). Solo que ahora no detengo el programa.
Ya me diras.

1 Like

Madre mia por la chorradita de while (1) me estropea todo jaja
Bueno es mi primera vez y encime copiando trozos de otros programas que vi sus videos en youtube jaja hice un popurri y dandole a verificar cadavez que copiaba parte del codigo hiba viendo si estaba bien, tengo que decir que me llevo un dia para hacerlo porque en un principio hiba hacer de una manera y luego no funcionaba, fue tal la desesperacion y la frustacion que me lie a escribir en el otro hilo sin mirar nada.
Al dia siguiente con todo lo que tenia de informacion y codigo guardado empece de nuevo pero haceindolo de otro modo asta que copie el while jajaj y no hiba bien, gracias a ti lo he conseguido y funciona, ahora el codigo que me reemplazastes en mi sketch es de muy pro para mi jaja.
Gracias a ti y al querer empezar y poder hacer funcionar mi pequeño proyecto tengo claro que seguire y que esto lo aplicare en una huerta donde cultivo hortaliza para casa asi me gestinara los riego necesarios para las plantas sin derrochar agua aprovechando que ya lo tengo a goteo solo seria añadirle un sensor de lluvia y unas electro valvulas.

ahora lo tengo funcionando bien y mostrándome los datos correctamente, asi que ya por fin me lio a extender cables para que me lleguen a la caja estanca donde ira la electronica y a disfrutar viendo como se riegan las plantitas de la terraza ellas solas y sin derrochar agua

Lo siguiente que quiero hacer es ponerle una pantallita para que me muestre los datos ya que en la cajita estanca no puedo tirarle un cable al pc y con esto creo que ya estara mas que finalizado, ademas que nose si por pines tendre suficientes con la Nano

Bueno, imagina que pasa si en tu código que tenia dos delay(1000) ahora pones una pantalla, pues esta presentará las cosas en lapsos de tiempo.
De todos modos, hay que dar pasos entendiendo como hacer las cosas.
Si mantienes un loop() limpio será mas claro para ti entender que sigue y como detener algo que antes funcionaba y ahora no, con un simple comentario //

He copiado tu codigo para guardarlo y al verificarlo me salta error.
Compilation error: 'fecha' was not declared in this scope.
Entonces me recomiendas que edite codigo mas menos como tu lo hiciestes que esta mas ordenado

Que raro!! Mi código parte del tuyo. Fecha lo asignas al comienzo del loop.

  DateTime fecha = rtc.now();

copia el error usando etiquetas como si fuera código.

Aqui te lo copio

Using board 'nano' from platform in folder: C:\Users\Dani\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Using core 'arduino' from platform in folder: C:\Users\Dani\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6
Detectando las librerías usadas...
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "C:\\Users\\Dani\\AppData\\Local\\Temp\\arduino-sketch-083D3B726C5D0AEB3AF8C0D68CED7DED\\sketch\\sketch_nov13a.ino.cpp" -o nul
Alternativas para Wire.h: [Wire@1.0]
ResolveLibrary(Wire.h)
  -> Candidatos: [Wire@1.0]
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "C:\\Users\\Dani\\AppData\\Local\\Temp\\arduino-sketch-083D3B726C5D0AEB3AF8C0D68CED7DED\\sketch\\sketch_nov13a.ino.cpp" -o nul
Alternativas para RTClib.h: [RTClib@2.1.0]
ResolveLibrary(RTClib.h)
  -> Candidatos: [RTClib@2.1.0]
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "C:\\Users\\Dani\\AppData\\Local\\Temp\\arduino-sketch-083D3B726C5D0AEB3AF8C0D68CED7DED\\sketch\\sketch_nov13a.ino.cpp" -o nul
Alternativas para Adafruit_I2CDevice.h: [Adafruit BusIO@1.14.1]
ResolveLibrary(Adafruit_I2CDevice.h)
  -> Candidatos: [Adafruit BusIO@1.14.1]
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "C:\\Users\\Dani\\AppData\\Local\\Temp\\arduino-sketch-083D3B726C5D0AEB3AF8C0D68CED7DED\\sketch\\sketch_nov13a.ino.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src\\Wire.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src\\utility\\twi.c" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "f:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src\\RTC_DS1307.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "f:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src\\RTC_DS3231.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "f:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src\\RTC_Micros.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "f:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src\\RTC_Millis.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "f:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src\\RTC_PCF8523.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "f:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src\\RTC_PCF8563.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "f:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src\\RTClib.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "f:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO\\Adafruit_BusIO_Register.cpp" -o nul
Alternativas para SPI.h: [SPI@1.0]
ResolveLibrary(SPI.h)
  -> Candidatos: [SPI@1.0]
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\SPI\\src" "f:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO\\Adafruit_BusIO_Register.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\SPI\\src" "f:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO\\Adafruit_I2CDevice.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\SPI\\src" "f:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO\\Adafruit_SPIDevice.cpp" -o nul
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\SPI\\src" "C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\SPI\\src\\SPI.cpp" -o nul
Generating function prototypes...
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\SPI\\src" "C:\\Users\\Dani\\AppData\\Local\\Temp\\arduino-sketch-083D3B726C5D0AEB3AF8C0D68CED7DED\\sketch\\sketch_nov13a.ino.cpp" -o "C:\\Users\\Dani\\AppData\\Local\\Temp\\arduino-sketch-083D3B726C5D0AEB3AF8C0D68CED7DED\\preproc\\ctags_target_for_gcc_minus_e.cpp"
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\builtin\\tools\\ctags\\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\\Users\\Dani\\AppData\\Local\\Temp\\arduino-sketch-083D3B726C5D0AEB3AF8C0D68CED7DED\\preproc\\ctags_target_for_gcc_minus_e.cpp"
Compilando el sketch...
"C:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10607 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\cores\\arduino" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\variants\\eightanaloginputs" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\Wire\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\RTClib\\src" "-If:\\Mis documentos\\Documents\\Arduino\\libraries\\Adafruit_BusIO" "-IC:\\Users\\Dani\\AppData\\Local\\Arduino15\\packages\\arduino\\hardware\\avr\\1.8.6\\libraries\\SPI\\src" "C:\\Users\\Dani\\AppData\\Local\\Temp\\arduino-sketch-083D3B726C5D0AEB3AF8C0D68CED7DED\\sketch\\sketch_nov13a.ino.cpp" -o "C:\\Users\\Dani\\AppData\\Local\\Temp\\arduino-sketch-083D3B726C5D0AEB3AF8C0D68CED7DED\\sketch\\sketch_nov13a.ino.cpp.o"
C:\Users\Dani\AppData\Local\Temp\.arduinoIDE-unsaved20221013-24844-ddhoi3.6lygn\sketch_nov13a\sketch_nov13a.ino: In function 'void muestroHora()':
C:\Users\Dani\AppData\Local\Temp\.arduinoIDE-unsaved20221013-24844-ddhoi3.6lygn\sketch_nov13a\sketch_nov13a.ino:41:52: error: 'fecha' was not declared in this scope

Usando librería Wire con versión 1.0 en la carpeta: C:\Users\Dani\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\Wire 
Usando librería RTClib con versión 2.1.0 en la carpeta: F:\Mis documentos\Documents\Arduino\libraries\RTClib 
Usando librería Adafruit BusIO con versión 1.14.1 en la carpeta: F:\Mis documentos\Documents\Arduino\libraries\Adafruit_BusIO 
Usando librería SPI con versión 1.0 en la carpeta: C:\Users\Dani\AppData\Local\Arduino15\packages\arduino\hardware\avr\1.8.6\libraries\SPI 
exit status 1

Compilation error: 'fecha' was not declared in this scope

Hi,
Posiblemente tienes que cambiar la fecha por la palabra now.

type or [code]
DateTime fecha = rtc.now();
cambiala a 
DateTime now = rtc.now();

[/code]paste code here

Si, se me escapó que al crear la rutina muestroHora debía agregar el parámetro.
quedó asi

void muestroHora(DateTime tmp)

Código corregido.

#include <Arduino.h>
#include <SPI.h>
#include <Wire.h>   // incluye libreria para interfaz I2C
#include <RTClib.h> // incluye libreria para el manejo del modulo RTC

RTC_DS3231 rtc; // crea objeto del tipo RTC_DS3231

bool led_inicio = true; // variable de control para inicio de evento con valor true
bool led_fin = true;    // variable de control para finalizacion de evento con valor true

const int HUMEDADBAJA = 550; // you need to replace this value with Value_1
const int HUMEDADALTA = 208; // you need to replace this value with Value_2
int humedad1 = 0;
int humedad2 = 0;
int humedad3 = 0;
int porcentagehumedad1 = 0;
int porcentagehumedad2 = 0;
int porcentagehumedad3 = 0;
// establece los reles
int rele = 3;
int rele1 = 4;
int rele2 = 5;
int rele3 = 6;
// establece rele bomba
int bomba = 7;
// estado bomba    1:open   0:close
int bomba_state = 0;
// estado rele    1:open   0:close
int rele_state = 0;
// estado rele1    1:open   0:close
int rele1_state = 0;
// estado rele2   1:open   0:close
int rele2_state = 0;
// estado rele3  1:open   0:close
int rele3_state = 0;

unsigned long t;

void muestroHora(DateTime tmp)
{
  char buffer[20];

  sprintf(buffer, "%02d/%02d/%02d %02d:%02d:%02d", tmp.day(), tmp.month(), tmp.year(), tmp.hour(), tmp.minute(), tmp.second());
      Serial.println(buffer);
}

void LeoSensores()
{
  humedad1 = analogRead(A0); // put Sensor insert into soil
  Serial.println(humedad1);
  porcentagehumedad1 = map(humedad1, HUMEDADBAJA, HUMEDADALTA, 0, 100);

  humedad2 = analogRead(A1); // put Sensor insert into soil
  Serial.println(humedad2);
  porcentagehumedad2 = map(humedad2, HUMEDADBAJA, HUMEDADALTA, 0, 100);

  humedad3 = analogRead(A2); // put Sensor insert into soil
  Serial.println(humedad3);
  porcentagehumedad3 = map(humedad3, HUMEDADBAJA, HUMEDADALTA, 0, 100);
}

void ControlH1()
{
  if (porcentagehumedad1 < 40) // change this at what level the pump turns on
  {
    Serial.println("BAJO SECO, Bomba on ");
    digitalWrite(bomba, HIGH); // Low percent high signal to relay to turn on pump
    digitalWrite(rele1, HIGH); // Low percent high signal to relay to turn on pump
  }
  else if (porcentagehumedad1 > 50) // max water level should be
  {
    Serial.println("BANCAL BAJO MOJADO, Bomba off");
    digitalWrite(bomba, LOW); // high percent water high signal to relay to turn on pump
    digitalWrite(rele1, LOW);
  }
  if (porcentagehumedad1 >= 100)
  {
    Serial.println("100 %");
  }
  else if (porcentagehumedad1 <= 0)
  {
    Serial.println("0 %");
  }
  else if (porcentagehumedad1 > 0 && porcentagehumedad1 < 100)
  {
    Serial.print(porcentagehumedad1);
    Serial.println("%");
  }
}

void ControlH2()
{
  if (porcentagehumedad2 < 40) // change this at what level the pump turns on
  {
    Serial.println("BANCAL CENTRO SECO, Bomba on");
    digitalWrite(bomba, HIGH); // Low percent high signal to relay to turn on pump
    digitalWrite(rele2, HIGH); // Low percent high signal to relay to turn on pump
  }
  else if (porcentagehumedad2 > 50) // max water level should be
  {
    Serial.println("BANCAL CENTRO MOJADO, Bomba off");
    digitalWrite(bomba, LOW); // high percent water high signal to relay to turn on pump
    digitalWrite(rele2, LOW); // Low percent high signal to relay to turn on pump
  }
  if (porcentagehumedad2 >= 100)
  {
    Serial.println("100 %");
  }
  else if (porcentagehumedad2 <= 0)
  {
    Serial.println("0 %");
  }
  else if (porcentagehumedad2 > 0 && porcentagehumedad2 < 100)
  {
    Serial.print(porcentagehumedad2);
    Serial.println("%");
  }
}

void ControlH3()
{
  if (porcentagehumedad3 < 40) // change this at what level the pump turns on
  {
    Serial.println("BANCAL ALTO SECO, Bomba on");
    digitalWrite(bomba, HIGH); // Low percent high signal to relay to turn on pump
    digitalWrite(rele3, HIGH);
  }
  else if (porcentagehumedad3 > 50) // max water level should be
  {
    Serial.println("BANCAL ALTO MOJADO, Bomba off");
    digitalWrite(bomba, LOW); // high percent water high signal to relay to turn on pump
    digitalWrite(rele3, LOW);
  }
  if (porcentagehumedad3 >= 100)
  {
    Serial.println("100 %");
  }
  else if (porcentagehumedad3 <= 0)
  {
    Serial.println("0 %");
  }
  else if (porcentagehumedad3 > 0 && porcentagehumedad3 < 100)
  {
    Serial.print(porcentagehumedad3);
    Serial.println("%");
  }
}

void setup()
{
  pinMode(rele, OUTPUT);                          // pin 3 como salida
  pinMode(rele1, OUTPUT);                         // pin 4 como salida
  pinMode(rele2, OUTPUT);                         // pin 5 como salida
  pinMode(rele3, OUTPUT);                         // pin 6 como salida
  pinMode(bomba, OUTPUT);                         // pin 7 como entrada (bomba)
  Serial.begin(9600);                             // open serial port, set the baud rate to 9600 bps
  if (!rtc.begin())                               // si falla la inicializacion del modulo
    Serial.println("Modulo RTC no encontrado !"); // muestra mensaje de error
}

void loop()
{
  DateTime fecha = rtc.now(); // funcion que devuelve fecha y horario en formato
                              // DateTime y asigna a variable fecha
  muestroHora(fecha);

  if (fecha.hour() == 17 && fecha.minute() == 00)
  { // si hora = 14 y minutos = 30
    if (led_inicio == true)
    {                                  // si led_inicio es verdadero
      digitalWrite(rele, HIGH);        // activa modulo de rele con nivel alto
      Serial.println("LED encendido"); // muestra texto en monitor serie
      led_inicio = false;              // carga valor falso en variable de control
    }                                  // para evitar ingresar mas de una vez
  }
  if (fecha.hour() == 21 && fecha.minute() == 00)
  { // si hora = 15 y minutos = 30
    if (led_fin == true)
    {                                // si led_fin es verdadero
      digitalWrite(rele, LOW);       // desactiva modulo de rele con nivel bajo
      Serial.println("LED apagado"); // muestra texto en monitor serie
      led_fin = false;               // carga valor falso en variable de control
    }                                // para evitar ingresar mas de una vez
  }

  if (fecha.hour() == 2 && fecha.minute() == 0)
  {                    // si hora = 2 y minutos = 0 restablece valores de
    led_inicio = true; // variables de control en verdadero
    led_fin = true;
  }

  if (millis() - t > 1000UL)
  {
    LeoSensores();
    ControlH1();
    ControlH2();
    ControlH3();
    t = millis();
  }
}

gracias, ahora a documentarme sobre el tema de las pantallitas y a ponerlo en practica

Hola de nuevo, porfin he terminado toda la instalacion electrica y cuando me dispongo a provar y nose que pasa que no funciona como estaba previsto.
Expongo lo que ocurre.
Antes de nada tengo la Nano conectada a una placa de expansion como esta, la roja:https://es.aliexpress.com/item/1005004603708726.html?spm=a2g0o.order_list.0.0.62da194dSwOpUn&gatewayAdapt=glo2esp
Bien pues estoy alimentándolo todo a 12v por el jack ese que tiene y veo que alimenta la Nano y un rele que tengo suelto pero el led de power se le ve flojo, el otro pack de 4 reles ni una lucecita, el modulo rtc si esta iluminado el led.
Nose si esto sera el problema real de todo porque si conecto la Nano por el micro usb al pc mismo si se encienden todos los led de los reles y con intensidad, si estoy obligado a alimentar por micro usb le puedo meter 12v
Alimentandolo todo por el jack se encienden las luces led que comanda el rele solitario y nose porque se enciende la bomba aunque los sensores esten diciendo que tienen bastante agua si cambio al micro usb pasa todo lo contrario, los leds del rele solitario se apagan y deberian estar encendidos y la bomba tambien apagada que es como deberia ser ya que esta todo humedo, luego si quito algun sensor para simular que esta seco la bomba no arranca, tengo que quitar todos para que arranque.
Concclusion que llevo una tarde pegandole vuelta y mirando cosas y no se que esta pasando, nose si es que no programe bien o si es fallo de alimentacion, he revisado el cableado y esta bien instalado, tambien probe el codigo de Surbyte y me pasa lo mismo

Se me olvido decir que la alimentacion por jack es a 12v sacados de una fuente de pc que tengo para trasterar cosas.

Supongo que lo que primero habra que resolver es porque no alimenta bien el grupo de 4 reles.
Y si se le puede alimentar a 12v el Nano por el micro usb pues cabiar de modo de alimentacion.

Hi
Sugerencia haz un dibujo de como tienes el projecto alambrado. En la foto se ve la tarjeta del nano pero dices que "estoy alimentándolo todo a 12v por el jack ese que tiene y veo que alimenta la Nano y un rele que tengo suelto" Podrias explicar esto con mas detalle. Alimentas el nano usando el conector de USB si o no. Si vaz alimentar el nano con 12 voltios entonces debes de usar el pin de Vin. Tambien deberias bajar el voltaje de 12 voltiosa a 9 voltios si usas el pin de Vin ya que estas usa el regulador interno del nano.

Aqui dejo una imagen de la instalacion electrica
Pero yo creo que lo primero seria resolver el tema de alimentacion por el momento tengo fuente de 12v, se le tiene que dar a pin vin como dice el compañero?

Hi,
Mi sugerencia es que bajes el voltaje de 12 voltiios de 7 a 9 voltios. Si miras al nano por la parte de adentro veras que el regulador no tiene disipador de calor por lo tanto si conectas 12 voltios se va a calentar y la corriente maxima es de como 500ma o posiblemente 800ma maxiima. Mi sugerencia es de que uses un regulador de voltage que se conoce como un "step down". Adjunto foto para que veas de que se esta hablando.

Pues tendre que comprar uno de esos de momento podria intentar alimentarla con 5v que me da la fuente por el pin vc

No. No uses 5v, eso es para quien sabe usarlo. Si cometes un error quemas el arduino porque te quedas sin protecciones.
Tu usa VIN o el conector externo y conecta 6.5V a 7 como minimo y no te pases de 12V.