Mantener un pin HIGH solo una vez a una hora en concreto.

curro92:
Hola,
Si cierras con punto y coma la sentencia if(), la estás anulando.

Si después del delay ya no coinciden los minutos, solo tienes que controlar la hora
Yo probaría algo así:

int hancomido = 0;

void comedero()
  {
      if  (Reloj.GetHour() ==  CFG.COMIDA_H && Reloj.GetMinute() == CFG.COMIDA_M  && hancomido == 0)
      {
            SetRele( 4, PIN_D_COMIDA, HIGH );
            delay(3000);
            hancomido = 1;
      }
      else
           hancomido = 0;
  }

Gracias, pero creo que hay un error. Ya que siempre que sea la hora estara dando de comer, un bucle si, otro no, y asi.

Creo que habira que hcaer como dijo Cheyenne:

boolean hancomido = false;

////////////////////////////////////////////////////////////
//
//   COMEDERO
//
//////////////////////////////////////////////////
void comedero()
   {
       if  (Reloj.GetHour() ==  (CFG.COMIDA_H) && (Reloj.GetMinute() == (CFG.COMIDA_M )) && !=hancomido ); 
           {
             SetRele( 4, PIN_D_COMIDA, HIGH );
             delay(3000);
             SetRele( 4, PIN_D_COMIDA, LOW );
             hancomido = true;
           }
      if  Reloj.GetHour() !=  (CFG.COMIDA_H) && (Reloj.GetMinute() != (CFG.COMIDA_M )) hancomido= false;

   }