LCD display y relevadores

#include <LiquidCrystal.h>
#include <Time.h>
#include <TimeLib.h>
#include<Keypad.h>

LiquidCrystal lcd(7, 8, 9, 10, 11, 12); //    ( RS, EN, d4, d5, d6, d7)
 
const byte filas = 4;
const byte columnas = 4;
byte pinesF[filas] = {9,8,7,6};
//                    f1,f2,f3,f4
byte pinesC[columnas] = {5,4,12,11};
//                       c1,c2,c3,c4 
char teclas[filas][columnas] = {
 {'1','2','3','A'},
 {'4','5','6','B'},
 {'7','8','9','C'},
 {'*','0','#','D'}
};
Keypad teclado = Keypad(makeKeymap(teclas), pinesF, pinesC, filas, columnas);
 
 int EVpin = 9;  // pin al que conectamos la electroválvula de riego
//Defino horas de riego Inicio a las 00:01 y termina a las 00:02//
//(poned las horas a las que hagais las pruebas)//
byte horaInicio1 = 06, minutoInicio1 = 00;
byte horaFin1 = 06, minutoFin1 = 02;


boolean esHoraRiego(){

  //Para hacer las comparaciones de cuando empezar y cuando terminar, lo paso todo a minutos.
  //Por eso momentoInicio = 13*60 + 11 = 791 y de fin = 13*60 + 12 = 792
  //También se podría hacer una doble comparación de horaActual con horaInicio y horaFin
  //y de minutoActual con minutoInicio y minutoFin
  int momentoInicio1 = (horaInicio1 * 60) + minutoInicio1;
  int momentoFin1 = (horaFin1 * 60) + minutoFin1;
  int momentoAhora1 = (hour() * 60) + minute();
  
  //Esto es que si hemos pasado o estamos en el momento de inicio , pero antes del momento del fin… 

 if((momentoInicio1<=momentoAhora1) && (momentoAhora1<momentoFin1)){
    return true;    // estamos en período de riego: devolver “true” 
    }

   else {
    return false;  // no estamos en período de riego: devolver “false” 
  }
}
void setup()
{
       lcd.begin(16, 2);
  pinMode (EVpin, OUTPUT);
  Serial.begin(9600);
  //Pongo el reloj en la hora actual (en mi caso las 20:40:00 del 29/11/2018)
  //con setTime(hours, minutes, seconds, days, months, years);
  setTime(14, 00, 00, 8, 12, 2018);
}

void loop()
{
  Serial.print("Son las: ");  //Muestro por el puerto serie la hora;
  Serial.print(String(hour()) + ":" + String(minute()) + ":" + String(second()));
  if(esHoraRiego()){    //comprobamos si es la hora del riego
    Serial.println(" --> Es hora riego!!");  // es hora de riego: informo por serie
    digitalWrite (EVpin, HIGH);              // activo la EV
  } 
  else {
    Serial.println(" --> No es hora riego");  // no es hora de riego: informo por serie
    digitalWrite (EVpin, LOW);                // cierro la EV
  }
  delay(1000);   // espero 1s
}

Hola @Gabriel21, necesitas leer primero las normas y editar tu hilo de acuerdo a las mismas.
Te paso privado con instrucciones.

Tu programa tiene algunos problemas a futuro.
setTime(14, 00, 00, 8, 12, 2018); a menos que lo comentes hará que tu RTC se reinicie siempre con esa hora.

He modificado muy sutilmente para mejorar tu consulta y ademas no tiene sentido que cada vez que entres a consultar por una hora vuelvas a generar todos las horas ya que simplemente pueden ser constantes.

const int momentoInicio1  = horaInicio1 * 60 + minutoInicio1;
const int momentoFin1     = horaFin1 * 60 + minutoFin1;
const int momentoInicio2  = horaInicio2 * 60 + minutoInicio2;
const int momentoFin2     = horaFin2 * 60 + minutoFin2;
const int momentoInicio3  = horaInicio3 * 60 + minutoInicio3;
const int momentoFin3     = horaFin3 * 60 + minutoFin3;
const int momentoInicio4  = horaInicio4 * 60 + minutoInicio4;
const int momentoFin4     = horaFin4 * 60 + minutoFin4;
const int momentoInicio5  = horaInicio5 * 60 + minutoInicio5;
const int momentoFin5     = horaFin5 * 60 + minutoFin5;
const int momentoInicio6  = horaInicio6 * 60 + minutoInicio6;
const int momentoFin6     = horaFin6 * 60 + minutoFin6;


boolean esHoraRiego(){

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

  if (momentoInicio1<=momentoAhora && momentoAhora <momentoFin1 )
      return true;    // estamos en período de riego: devolver "true" 
  if (momentoInicio2<=momentoAhora && momentoAhora<momentoFin2)
      return true;    // estamos en período de riego: devolver "true" 
  if (momentoInicio3<=momentoAhora && momentoAhora<momentoFin3)
      return true;    // estamos en período de riego: devolver "true" 
  if (momentoInicio4<=momentoAhora && momentoAhora<momentoFin4)
      return true;    // estamos en período de riego: devolver "true" 
  if (momentoInicio5<=momentoAhora && momentoAhora<momentoFin5)
      return true;    // estamos en período de riego: devolver "true" 
  if (momentoInicio6<=momentoAhora && momentoAhora<momentoFin6)
      return true;    // estamos en período de riego: devolver "true" 
  else 
      return false;  // no estamos en período de riego: devolver "false" 
}

Asi se postean los códigos.

Hola gracias por contestar si esque no le cambie jaj, queria que se modificara la hora porque luego hay cambio de horario

Si claro pero cambiarás la hora por teclado pero primero ordenemos el anterior.

busca la librería Keypad usando como siempre Google: Arduino Keypad

Eso es lo que se, se guardar 2 digitos en una variable pero no se como hacer lo mismo en otra variable

Ya veo.. tienes que cargar la hora, minuto de inicio y la hora y minuto de fin?

Bueno.. No son tareas ni simples ni difíciles
Imagina crear un camino de preguntas y respuestas.
Si sabes cargar dos puedes cargar muchas variables.

Vas preguntando

hora inicio: y cargas los dos valores x teclado
De nuevo
minuto inicio y cargas los dos valores de nuevo
y siempre igual
Termina con una tecla como # x ejemplo o lo que tengas en tu teclado.

Se comprende?
Es una secuencia..
A cada paso que das, le corresponde una respuesta y no sale hasta completar con una tecla que lo indica

Consejo:

Arma otro sketch: con Keypad y LCD y trabaja esta parte.
Cuando este dominada lo incorporas pero no todo junto ahora.

No lo logro esta algo complicado para alguien que no sabe jaja

Aiudaa xd

Leiste las normas? Me dirás que si. Que dice respecto de la impaciencia? Re lee por favor!!

La gente duerme, tiene trabajo, obligaciones y una vida, y tu posteas

Today at 02:12:47
No lo logro esta algo complicado para alguien que no sabe jaja

y apenas 6 hs despues

Today at 08:00:07
Aiudaa xd

entonces cálmate!!
Tu desesperación no es la nuestra. Para eso hay tiempos perdidos o cosas no estudiadas en su momento.

Además acabo de ver que este hilo no tiene ni idea para donde va, no tiene consulta ni objetivo, ni duda?

Yo se que quieres hacer pero debes expresarlo debidamente en el comienzo del hilo.
Asi que vuelve, edita el primer post y explica lo que pretendes.