accendere un led per un determinato intervallo di tempo da remoto

Ciao a tutti nel progetto qua elencato sono riuscito ad accendere un led da remoto ma ora vorrei impostare il tempo di durata dell'accensione dal browser come posso modificare il codice?

#include <Ethernet.h>
#include <SPI.h>
#include <WebServer.h> //libreria webduino&lt;/code&gt;
//variabili statiche per il mac address e l'ip address
static byte mac_Add[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//cambiare l'ip in funzione della propria rete
static byte ip_Add[] = { 192, 168, 1, 210 };
//creazione oggetto Webduino
WebServer webserver("", 80);
//funzione Start
void Start(WebServer &server, WebServer::ConnectionType type,
char *url_param, bool param_complete)
{
  //restituisce al browser l'intestazione http 200 OK
  server.httpSuccess();
  P(strMsg) = "<h1>Logicaprogrammabile</h1>";
  //Gestisco la richiesta GET
  if (type == WebServer::GET)
  {
    server.printP(strMsg);</p>
    //se il parametro è disponibile
    if (param_complete == true)
    {
      //passo i parametri ad una stringa
      String parametri = url_param;
      //ricerco nella stringa i valori che mi interessano
      int Led5 = parametri.indexOf("LED5=ON");
      int Led6 = parametri.indexOf("LED6=ON");
      if (Led5 >= 0)
        {
        //ho trovato la stringa
        //commuto la porta 5 a livello alto
        digitalWrite(5, HIGH);
      }
      else
        digitalWrite(5, LOW);
      if (Led6 >= 0)
      {
        //ho trovato la stringa
        //commuto la porta 5 a livello alto
        digitalWrite(6, HIGH);
      }
      else
        digitalWrite(6, LOW);
      //restituiscine il valore
      server.print(url_param);
    }
  }
}
void setup()
{
  //inizializzo l'ethernet shield con il mac e il address
  Ethernet.begin(mac_Add, ip_Add);
  //definisci l'azione di default che verrà eseguita quando l'utente
  //naviga nella root del sito
  webserver.setDefaultCommand(&Start);
  //aggiungi una pagina
  webserver.addCommand("index.htm", &Start);
  //avvia il web server
  webserver.begin();
  //imposto il pin 5 e 6 in uscita
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
}
void loop()
{
  //elabora costantemente tutte le richieste provenienti dal browser
  webserver.processConnection();

potresti fare così: quando si verifica l'evento da remoto che accende il led, nello stesso if alzi un flag es. -> val=1. Con questo flag, piloti uno switch case dove setterai il ritardo per lo spegnimento usando però il metodo millis() e non il delay().

Ciao

Si si ho capito ma il tempo che dovrà restare acceso lo devo prendere dall' url.

Es.http://192.168.1.100?led1=10

Il led 1 sta acceso per 10 secondi

alla fine il mio problema è estrarre il 10

**>davides98: ** in conformità al REGOLAMENTO, punto 13, il cross-posting è proibito (anche tra lingue diverse) e tu stai discutento dell'analisi della stringa ricevuta (... quindi dello stesso argomento) anche QUI.

Non solo, in quel thread ti stanno già rispondendo ed è veramente poco cortese abbandonare una discussione e chi ti stava aiutando, per venire di qua a porre domande relative allo stesso argomento.

Pertanto, nel rispetto del regolamneto, questo tuo thread viene chiuso ed in seguito cancellato. Ti prego quindi di continuare la discussione nell'altro thread.

Guglielmo