Ayuda proyecto con shield ethernet

Hola.

Necesito ayuda con un proyecto que estoy haciendo con arduino shield ethernet , soy novato en esto, necesito encender un led una cantidad determinada de segundos y que este luego se apague (sin necesidad de presionar ningun boton )y continue asi hasta que se vuelva a presionar de nuevo un boton. ¿Si es posible esto? He visto infinidad de tutoriales pero todos tiene el boton tanto para encenderlo como para apagarlo.

Agrego lo que tengo de programa hasta ahorita, agradeceria mucho si me dieran alguna forma de que se pueda apagar el led en un tiempo determinado.

Proyecto_leds_arduino_shield.ino (4.87 KB)

Probá a ver si funciona de este modo.

#include <SPI.h> 
#include <Ethernet.h> //Declaración de la direcciones MAC e IP. También del puerto 80 

byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC 
IPAddress ip(169, 254,62,147); //IP 
EthernetServer servidor(80); 

int PIN_LED 	=	8;
int PIN_LED2	=	9;
int PIN_LED3	=	10; 
void(* resetFunc) (void) = 0; 

String readString=String(30); //lee los caracteres de una secuencia en una cadena.
//Los strings se representan como arrays de caracteres (tipo char) 
String state = String(3);
unsigned long t_start;

void setup() {
	Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas 
	servidor.begin(); 
	pinMode(PIN_LED,OUTPUT);
	digitalWrite(PIN_LED,LOW);
	state="OFF";
}

void loop() {
  //EthernetClient Crea un cliente que se puede conectar a 
  //una dirección específica de Internet IP

  EthernetClient cliente= servidor.available(); 
  if (cliente) {
  	 boolean lineaenblanco = true; 
  	 while (cliente.connected()) {
  	  	  if(cliente.available()) {
  			char c = cliente.read(); 

  			if (readString.length()<30) {
  				readString.concat(c);

			//Cliente conectado
			//Leemos petición HTTP caracter a caracter
			//Almacenar los caracteres en la variable readString
			} 

			if (c=='\n' && lineaenblanco) {  //Si la petición HTTP ha finalizado 
			
				int LED = readString.indexOf("CG="); 
				if (readString.substring(LED,LED+5)=="CG=ON") {
					t_start = millis() + 5000UL; // 5000 es 5*1000 mseg = 5 seg
					
					state="ON"; 
				}
				if (millis() < t_start) {
					digitalWrite(PIN_LED,HIGH);
				}
				else 
					digitalWrite(PIN_LED, LOW);



				//Cabecera HTTP estándar
				cliente.println("HTTP/1.1 200 OK");
				cliente.println("Content-Type: text/html");
				cliente.println("Connection: close");
				cliente.println("Refresh: 5");
				cliente.println();
				cliente.println("<!DOCTYPE HTML>");
				cliente.println("<html lang='es'>");
				cliente.println("<head>");
				cliente.println("<meta charset='UTF-8'>");
				cliente.println("<title>");
				cliente.println("PROYECTO IMTC II");
				cliente.println("</title>");
				cliente.println("<link");
				cliente.println("href='http://fonts.googleapis.com/css?family=Roboto:300|Playfair+Display:400'");
				cliente.println("rel='stylesheet'");
				cliente.println("type='text/css'/>");
				cliente.println("<link rel='stylesheet'");
				cliente.println("href='http://static.tumblr.com/pjglohe/2qinf00ga/estilos.min.css'>");
				cliente.println("</head>");
				cliente.println("<div class='page-wrap'>");
				cliente.println("<header class='header'>");
				cliente.println("<h1>");
				cliente.println("PROYECT0");
				cliente.println("</h1>");
				cliente.println("<div class='educachip'>");
				cliente.println("<span>Dispensador de alimentos para mascotas </span>");
				cliente.println("</a>");
				cliente.println("</div>");
				cliente.println("</header>");
				cliente.println("<center>");
				cliente.println("<section class='content-wrap'>");
				cliente.println("<div class='device'>");
				cliente.println("<div class='device-name'>");
				cliente.println("<h2>");
				cliente.println("LED1");
				cliente.println("</h2>");
				cliente.println("</div>");
				cliente.println("<div class='forms'>");
				cliente.println("<form class='transition button on'>");
				cliente.println("<input type='button' value='ON'  / onClick=location.href='./?CG=ON\'>");
				cliente.println("</form>");
				cliente.println("</div>");
				cliente.println("</div>");
				cliente.println("<section class='content-wrap'>");
				cliente.println("<div class='device'>");
				cliente.println("<div class='device-name'>");
				cliente.println("<h2>");
				cliente.println("Led2");
				cliente.println("</h2>");
				cliente.println("</div>");
				cliente.println("<div class='forms'>");
				cliente.println("<form class='transition button on'>");
				cliente.println("<input type='button' value='ON'  / onClick=location.href='./?CC=ON\'>");
				cliente.println("</form>");
				cliente.println("</div>");
				cliente.println("</div>");
				cliente.println("<section class='content-wrap'>");
				cliente.println("<div class='device'>");
				cliente.println("<div class='device-name'>");
				cliente.println("<h2>");
				cliente.println("Led3");
				cliente.println("</h2>");
				cliente.println("</div>");
				cliente.println("<div class='forms'>");
				cliente.println("<form class='transition button on'>");
				cliente.println("<input type='button' value='ON'  / onClick=location.href='./?A=ON\'>");
				cliente.println("</form>");    
				cliente.println("</div>");
				cliente.println("</div>");
				cliente.println("</section>");
				cliente.println("</div>");
				cliente.println("</center>");
				cliente.println("</body>");
				cliente.println("</html>");
				cliente.stop();


				//Cierro conexión con el cliente 
				readString="";
			}
}
}
}
}

Muchas gracias por la respuesta Amigo!

Solo que ya lo probé y ahora el led se queda encendido todo el tiempo y nunca se apaga!, estoy desesperado por que me urge terminarlo y solo falta que haga eso! :S

pon esto

if (millis() < t_start) {
					digitalWrite(PIN_LED,HIGH);
				}
				else 
					digitalWrite(PIN_LED, LOW);

Fuera de if (cliente) {

Gracias de nuevo amigo, ya hize lo que me dijiste, y se apaga como un segundo o menos y vuelve a encenderse.

Saludos
Prueba esta version del codigo de Surbyte

#include <SPI.h> 
#include <Ethernet.h> //Declaración de la direcciones MAC e IP. También del puerto 80 

byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC 
IPAddress ip(169, 254,62,147); //IP 
EthernetServer servidor(80); 

int PIN_LED 	=	8;
int PIN_LED2	=	9;
int PIN_LED3	=	10; 
void(* resetFunc) (void) = 0; 

String readString=String(30); //lee los caracteres de una secuencia en una cadena.
//Los strings se representan como arrays de caracteres (tipo char) 
String state = String(3);
unsigned long t_start;

void setup() {
	Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas 
	servidor.begin(); 
	pinMode(PIN_LED,OUTPUT);
	digitalWrite(PIN_LED,LOW);
	state="OFF";
}
bool activa = false;
unsigned long tiempo;
void loop() {
  //EthernetClient Crea un cliente que se puede conectar a 
  //una dirección específica de Internet IP
  if(activa && (millis()-tiempo <1000)){
	digitalWrite(PIN_LED,HIGH);
  }else{
  	activa = false;
  	digitalWrite(PIN_LED,LOW);
  }


  EthernetClient cliente= servidor.available(); 
  if (cliente) {
  	 boolean lineaenblanco = true; 
  	 while (cliente.connected()) {
  	  	  if(cliente.available()) {
  			char c = cliente.read(); 

  			if (readString.length()<30) {
  				readString.concat(c);

			//Cliente conectado
			//Leemos petición HTTP caracter a caracter
			//Almacenar los caracteres en la variable readString
			} 

			if (c=='\n' && lineaenblanco) {  //Si la petición HTTP ha finalizado 
			
				int LED = readString.indexOf("CG="); 
				if (readString.substring(LED,LED+5)=="CG=ON") {
					activa = true; 
					tiempo = millis();
				}


				//Cabecera HTTP estándar
				cliente.println("HTTP/1.1 200 OK");
				cliente.println("Content-Type: text/html");
				cliente.println("Connection: close");
				cliente.println("Refresh: 5");
				cliente.println();
				cliente.println("<!DOCTYPE HTML>");
				cliente.println("<html lang='es'>");
				cliente.println("<head>");
				cliente.println("<meta charset='UTF-8'>");
				cliente.println("<title>");
				cliente.println("PROYECTO IMTC II");
				cliente.println("</title>");
				cliente.println("<link");
				cliente.println("href='http://fonts.googleapis.com/css?family=Roboto:300|Playfair+Display:400'");
				cliente.println("rel='stylesheet'");
				cliente.println("type='text/css'/>");
				cliente.println("<link rel='stylesheet'");
				cliente.println("href='http://static.tumblr.com/pjglohe/2qinf00ga/estilos.min.css'>");
				cliente.println("</head>");
				cliente.println("<div class='page-wrap'>");
				cliente.println("<header class='header'>");
				cliente.println("<h1>");
				cliente.println("PROYECT0");
				cliente.println("</h1>");
				cliente.println("<div class='educachip'>");
				cliente.println("<span>Dispensador de alimentos para mascotas </span>");
				cliente.println("</a>");
				cliente.println("</div>");
				cliente.println("</header>");
				cliente.println("<center>");
				cliente.println("<section class='content-wrap'>");
				cliente.println("<div class='device'>");
				cliente.println("<div class='device-name'>");
				cliente.println("<h2>");
				cliente.println("LED1");
				cliente.println("</h2>");
				cliente.println("</div>");
				cliente.println("<div class='forms'>");
				cliente.println("<form class='transition button on'>");
				cliente.println("<input type='button' value='ON'  / onClick=location.href='./?CG=ON\'>");
				cliente.println("</form>");
				cliente.println("</div>");
				cliente.println("</div>");
				cliente.println("<section class='content-wrap'>");
				cliente.println("<div class='device'>");
				cliente.println("<div class='device-name'>");
				cliente.println("<h2>");
				cliente.println("Led2");
				cliente.println("</h2>");
				cliente.println("</div>");
				cliente.println("<div class='forms'>");
				cliente.println("<form class='transition button on'>");
				cliente.println("<input type='button' value='ON'  / onClick=location.href='./?CC=ON\'>");
				cliente.println("</form>");
				cliente.println("</div>");
				cliente.println("</div>");
				cliente.println("<section class='content-wrap'>");
				cliente.println("<div class='device'>");
				cliente.println("<div class='device-name'>");
				cliente.println("<h2>");
				cliente.println("Led3");
				cliente.println("</h2>");
				cliente.println("</div>");
				cliente.println("<div class='forms'>");
				cliente.println("<form class='transition button on'>");
				cliente.println("<input type='button' value='ON'  / onClick=location.href='./?A=ON\'>");
				cliente.println("</form>");    
				cliente.println("</div>");
				cliente.println("</div>");
				cliente.println("</section>");
				cliente.println("</div>");
				cliente.println("</center>");
				cliente.println("</body>");
				cliente.println("</html>");
				cliente.stop();


				//Cierro conexión con el cliente 
				readString="";
			}
}
}
}
}