Premier prog pour amélioration

bonjour tout le monde,
voila, je viens de faire mon 1er prog pour allumer une led, soit en tempo soit en continu.
une chose que je ne comprends pas trop, il faut doubler les lignes INPUT sinon ca ne s’affiche pas sur la page web pour le formulaire

sinon pouvez vous me dire si on peut améliorer le code, je suis partis d’un code existant et rajouté ce qu’il me fallait
0 = eteindre
1 = allumer
2 = tempo 3s
3 = tempo 1s

#include <SPI.h>
#include <Client.h>
#include <Ethernet.h>
#include <Server.h>
#include <Udp.h>
/*
Allumage led via internet
 */

byte mac[] = { 
  0x90, 0xA2, 0xDA, 0x00, 0x7C, 0xDB }; //physical mac address
byte ip[] = { 192,168,2, 177 }; 			// ip in lan
byte gateway[] = { 192, 168, 2, 2 };			// internet access via router
byte subnet[] = { 255, 255, 255, 0 };                   //subnet mask
Server server(80);                                      //server port
byte sampledata=50;            //some sample data - outputs 2 (ascii = 50 DEC)             
int ledPin = 4;  // LED pin

String readString = String(30); //string for fetching data from address
boolean LEDON = false; //LED status flag
void setup(){
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, subnet);
  //Set pin 4 to output
  pinMode(ledPin, OUTPUT);  
  //enable serial datada print  
  Serial.begin(9600);
}
void loop(){
  // Create a client connection
  Client client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        //read char by char HTTP request
        if (readString.length() < 100) 
        {
          //store characters to string 
          readString += c; //replaces readString.append(c);
        }  
        //output chars to serial port
        Serial.print(c);
        //if HTTP request has ended
        if (c == '\n') {
          //dirty skip of "GET /favicon.ico HTTP/1.1"
          if (readString.indexOf("?") <0)
          {
            //skip everything
          }
          else
            //lets check if LED should be lighted
            if(readString.indexOf("L=1") >0)//replaces if(readString.contains("L=1"))
            {
              //led has to be turned ON
              digitalWrite(ledPin, HIGH);    // set the LED on
              LEDON = true;
            }
          else{
            //led has to be turned OFF
            digitalWrite(ledPin, LOW);    // set the LED OFF
            LEDON = false;             
          }
          
            //Mise en prog module 1
            if(readString.indexOf("L=2") >0)//replaces if(readString.contains("L=1"))
            {
              //led has to be turned ON
              digitalWrite(ledPin, HIGH);    // set the LED on
              LEDON = true;
              delay(3000);
              digitalWrite(ledPin, LOW);    // set the LED OFF
            LEDON = false;   
            }
            //Impulsion module 1
            if(readString.indexOf("L=3") >0)//replaces if(readString.contains("L=1"))
            {
              //led has to be turned ON
              digitalWrite(ledPin, HIGH);    // set the LED on
              LEDON = true;
              delay(1000);
              digitalWrite(ledPin, LOW);    // set the LED OFF
            LEDON = false;   
            }
          // now output HTML data starting with standart header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();
          //set background to yellow
          client.print("<body>");
          //send first heading
          client.println("<font color='red'><h1>Allumage led via web</font></h1>");
          //output some sample data to browser
          client.println("<font color='blue' size='5'>Sample data: ");
          client.print(sampledata);//lets output some data
          client.println("
");//some space between lines
                  //controlling led 
          client.println("<h1>LED control</h1>");
          if (LEDON)
            client.println("<form method=get name=LED ><input type=hidden name=L value=2 >Mise en programmation du module
 <INPUT type=submit value=Envoyer> </form>");
          else
          client.println("<form method=get name=LED ><input type=hidden name=L value=2 >Mise en programmation du module
 <INPUT type=submit value=Envoyer> </form>");
          
          if (LEDON)
            client.println("<form method=get name=LED ><input type=hidden name=L value=3 >Impulsion module 1
 <INPUT type=submit value=Envoyer> </form>");
          else
          client.println("<form method=get name=LED ><input type=hidden name=L value=3 >Impulsion module 1
 <INPUT type=submit value=Envoyer> </form>");
          
          client.println("<font color='blue' size='5'>Allumer/&eacute;teindre led");
           client.println("
");
          if (LEDON)
             
            client.println("<form method=get name=LED ><select name=L ><option value=1 > allumer </option> <option value=0 > eteindre </option> </select> <INPUT type=submit value=Envoyer> </form>");
          else
            client.println("<form method=get name=LED ><select name=L ><option value=0 > eteindre </option> <option value=1 > allumer </option> </select> <INPUT type=submit value=Envoyer> </form>");
          client.println("
");

          //printing LED status
          client.print("<font size='5'>LED status: ");
          if (LEDON)
            client.println("<font color='red' size='5'>ON"); 
          else
            client.println("<font color='green' size='5'>OFF");     
             client.println("</body></html>");
          //clearing string for next read
          readString="";
          //stopping client
          client.stop();
        }
      }
    }
  }
}

Edit de Jean-François : j’ai remplacé les quotes par les balises code… XD

Salut,

Je pense que tu déclare des librairies non utiles
#include <Client.h>
#include <Udp.h>

essai de compiler en mettant // devant les lignes.

Ensuite tes tests ne respectent pas la syntaxe à savoir: (manque les { et } )

if (brocheCinqEntree < 500)
{
  // action A
}
else
{
  // action B
}

c’est peut être pour ça que tu as des problèmes de double ligne…

Aussi met ton code entre les

 (#) et non [quote] ça sera plus lisible

A+

Merci,
vu que je suis partis d’un sketch existant sur un site dont j’ai évidemment pas noté le nom et pas trop fait attetion aux { et } pour les if et else comme un imbécile

voila la modif et simplification du code qui fonctionne en affichant bien eteindre ou allumer suivant l’état de la led :wink:
désolé pour le quote, l’habitude des autres forums

 client.println("<h1>LED control</h1>");
         //Mise en programmation du module 1
            client.println("<form method=get name=LED ><input type=hidden name=L value=2 >Mise en programmation du module
 <INPUT type=submit value=Envoyer> </form>");
         //Incrementation du module 1 
           client.println("<form method=get name=LED ><input type=hidden name=L value=3 >Impulsion module 1
 <INPUT type=submit value=Envoyer> </form>");
         //Teste de la led de tavail         
          client.println("<font color='blue' size='5'>Allumer/&eacute;teindre led");
           client.println("
");
          if (LEDON) {
            client.println("<form method=get name=LED ><select name=L > <option value=0 > eteindre </option>  <option value=1 > allumer </option> </select> <INPUT type=submit value=Envoyer> </form>");
            } else {
            client.println("<form method=get name=LED ><select name=L ><option value=1 > allumer </option> <option value=0 > eteindre </option>  </select> <INPUT type=submit value=Envoyer> </form>");
           }