Problema println Ethernet Shield

Ciao a tutti,

Progetto: Il progetto è praticamente basato su una pagina web in cui ci sono dei semplici bottoni, che se vengono cliccati, i led collegati ai pin, si accendono in corrispondenza ai bottoni.

Problema: Tutto va bene quando nella pagina html ci sono solo 3 bottoni. Il problema inizia all'aggiunta del quarto bottone, in quel punto l'arduino stampa caratteri insensati nella pagina, che il browser non riesce ad interpretare come pagina html. Chiedo gentilmente aiuto da voi esperti, perchè il programma sembra del tutto logicamente giusto. Attendo con ansia, grazie!!!!

[b]Il codice[/b]: 
[sub]#include <SPI.h>
#include <Client.h>
#include <Ethernet.h>
#include <Server.h>

//DETERMINA IL MAC E L'IP DELLA PAGINA WEB
byte mac[] = {
  0x90, 0xA2, 0xDA, 0x0E, 0xA7, 0x44}; 
IPAddress ip(192,168,1,9);
IPAddress gateway(192,168,1,1);	
IPAddress subnet(255, 255, 255, 0);
//PORTA DI COMUNICAZIONE			
EthernetServer server(80);

//SCRIVE IL NUMERO DI PIN CORRISPONDENTE AI LED
int s[7] = {2,3,4,5,6,7};

//LUNGHEZZA DELLA STRINGA INVIATA
String readString = String(30);

//IMPOSTA ALL'AVVIO I LED SPENTI
boolean l[7] = {false};

void setup(){
  Ethernet.begin(mac, ip);
  for(int i=0; i<7;i++) {
    pinMode(s[i],OUTPUT);
  }
  Serial.begin(9600);
}

void loop(){
  EthernetClient client = server.available();
  if (client) //SE ESISTE UN CLIENTE
  {
    while (client.connected()) // SE IL CLIENTE E' CONNESSO
    {
      if (client.available()) //SE E' TUTTO OK PER INIZIARE
      {
        char c = client.read(); //LEGGI I SINGOLI CARATTERI INVIATI
        if (readString.length() < 100) 
        {
          readString += c; //CONCATENA I CARATTERI
        }  
        if (c == '\n') //VEDE SE C'E' IL CARATTERE DI FINE STRINGA, PER INDIVIDUARE CHE E' FINITA
        {
          if(readString.indexOf("L1=0") > 0) {
            l[0] = false;
          } 
          if(readString.indexOf("L1=1") > 0) {
            l[0] = true;
          } 
          if(readString.indexOf("L2=0") > 0) {
            l[1] = false;
          } 
          if(readString.indexOf("L2=1") > 0) {
            l[1] = true;
          } 
          if(readString.indexOf("L3=0") > 0) {
            l[2] = false;
          } 
          if(readString.indexOf("L3=1") > 0) {
            l[2] = true;
          } 
          if(readString.indexOf("L4=0") > 0) {
            l[3] = false;
          } 
          if(readString.indexOf("L4=1") > 0) {
            l[3] = true;
          } 
          if(readString.indexOf("L5=0") > 0) {
            l[4] = false;
          } 
          if(readString.indexOf("L5=1") > 0) {
            l[4] = true;
          }
          if(readString.indexOf("L6=0") > 0) {
            l[5] = false;
          } 
          if(readString.indexOf("L6=1") > 0) {
            l[5] = true;
          } 
          if(readString.indexOf("L7=0") > 0) {
            l[6] = false;
          } 
          if(readString.indexOf("L7=1") > 0) {
            l[6] = true;
          } 
          //CREA LA PAGINA HTML (VERRA' AGGIORNATA AD OGNI ISTRUZIONE NUOVA)
          client.println("<!DOCTYPE html>");
          client.println("<html><head><title> DomoticHome </title>");
          client.println("<link rel=\"stylesheet\" type=\"text/css\"  href=\"http://casadomotica.host22.com/style1100.css\"/> "); 
          client.println("</head><body>");


          client.println("<table align=\"center\"  class=\"ab\"> <tr><td width=\"1155\" align=\"center\">");
          client.println("<img  src=\"http://casadomotica.host22.com/ti.png\">"); 
          client.println("</td></tr></table>");

          client.println("<table  align=\"center\" class=\"ab\" cellpadding=\"20\"> <tr><td width=\"750\">");
          client.println("<img class=\"img1\" src=\"http://casadomotica.host22.com/piantina.png\">");
          client.println("</td><td width=\"205\">");

          //Prendi immagini html per immagine accesa

          if (l[0]) { 
            digitalWrite(s[0], HIGH);
            client.println("<img class=\"img1\" src=\"http://casadomotica.host22.com/corridoio.png\">");
          } 
          else {
            digitalWrite(s[0], LOW );  
          }
          
          if (l[1]) { 
            digitalWrite(s[1], HIGH);
            client.println("<img class=\"img1\" src=\"http://casadomotica.host22.com/cucina.png\">");
          } 
          else {
            digitalWrite(s[1], LOW );  
          }


          if (l[2]) { 
            digitalWrite(s[2], HIGH);
            client.println("<img class=\"img1\" src=\"http://casadomotica.host22.com/bagno.png\">");
          } 
          else {
            digitalWrite(s[2], LOW );  
          }

         /* if (l[3]) { 
            digitalWrite(s[3], HIGH);
            client.println("<img class=\"img1\" src=\"http://casadomotica.host22.com/camera_1.png\">");
          } else {
            digitalWrite(s[3], LOW); 
          }
          
         if (l[3]) { 
            digitalWrite(s[3], HIGH);
            client.println("<img class=\"img1\" src=\"http://casadomotica.host22.com/camera_1.png\">");
          } else {
            digitalWrite(s[3], LOW); 
          }*/
          


          //Pulsanti premuto e non premuto

          
          if (l[0]) { 
            client.println("<a href='?L1=0'><img src=\"http://casadomotica.host22.com/pcos.png\"></a>");
          } 
          else {
            client.println("<a href='?L1=1'><img src=\"http://casadomotica.host22.com/pco.png\"></a>");
          }


          if (l[1]) { 
            client.println("<a href='?L2=0'><img src=\"http://casadomotica.host22.com/pcus.png\"></a>");
          } 
          else {
            client.println("<a href='?L2=1'><img src=\"http://casadomotica.host22.com/pcu.png\"></a>");
          }

          if (l[2]) { 
            client.println("<a href='?L3=0'><img src=\"http://casadomotica.host22.com/pbs.png\"></a>");
          } 
          else {
            client.println("<a href='?L3=1'><img src=\"http://casadomotica.host22.com/pb.png\"></a>");
          }
          
          /*if (l[3]) { 
            client.println("<a href='?L4=0'><img src=\"http://casadomotica.host22.com/pn1s.png\"></a>");
          } 
          else {
            client.println("<a href='?L4=1'><img src=\"http://casadomotica.host22.com/pn1.png\"></a>");
          }*/
         

          client.println("</td></tr></table>");
          client.println("</body></html>");

          //SI PREPARA PER UNA NUOVA ISTRUZIONE
          readString="";

          //TERMINA LE OPERAZIONI CLIENTE
          client.stop();
        }
      }
    }
  }
}[/sub]

Ti invitiamo a presentarti qui: Re: Presentazioni nuovi iscritti, fatevi conoscere da tutti! (Part 1) - Generale - Arduino Forum
e a leggere il regolamento: http://forum.arduino.cc/index.php?topic=149082.0

Il codice devi racchiuderlo nei tag code, vedi sezione 7 regolamento, spiega bene come fare, altrimenti parte del codice viene visualizzato male.

vedo 2 problemi:

int s[7] = {2,3,4,5,6,7}; 
...
for(int i=0; i<7;i++) {
    pinMode(s[i],OUTPUT);
  }

metti solo 6 pin ma dopo definisci 7 come output.

poi

boolean l[7] = {false};

cosí non inizializzi correttamente l'array.

boolean l[7] = { false, false, false, false, false, false, false};

Poi usi troppa RAM
Usa la macfro F().
per esempio client.println(F(""));
cosí il testo non occupa RAM.

Ciao Uwe

Il problema persiste ho messo F() in tutti i client.println ma niente ,mi fa vedere il sito con tutti i bottoni,ma quando schiaccio uno di questi mi compare il file html non so vi allego il codice e grazie in anticipo per il sostegno:

CODICE:

#include <SPI.h>
#include <Client.h>
#include <Ethernet.h>
#include <Server.h>

//DETERMINA IL MAC E L'IP DELLA PAGINA WEB
byte mac[] = {
  0x90, 0xA2, 0xDA, 0x0E, 0xA7, 0x44}; 
IPAddress ip(192,168,1,9);
IPAddress gateway(192,168,1,1);	
IPAddress subnet(255, 255, 255, 0);
//PORTA DI COMUNICAZIONE			
EthernetServer server(80);

//SCRIVE IL NUMERO DI PIN CORRISPONDENTE AI LED
int s[7] = {2,3,4,5,6,7,8};

//LUNGHEZZA DELLA STRINGA INVIATA
String readString = String(30);

//IMPOSTA ALL'AVVIO I LED SPENTI
boolean l[7] = { false, false, false, false, false, false, false};

void setup(){
  Ethernet.begin(mac, ip);
  for(int i=0; i<7;i++) {
    pinMode(s[i],OUTPUT);
  }
  Serial.begin(9600);
}

void loop(){
  EthernetClient client = server.available();
  if (client) //SE ESISTE UN CLIENTE
  {
    while (client.connected()) // SE IL CLIENTE E' CONNESSO
    {
      if (client.available()) //SE E' TUTTO OK PER INIZIARE
      {
        char c = client.read(); //LEGGI I SINGOLI CARATTERI INVIATI
        if (readString.length() < 100) 
        {
          readString += c; //CONCATENA I CARATTERI
        }  
        if (c == '\n') //VEDE SE C'E' IL CARATTERE DI FINE STRINGA, PER INDIVIDUARE CHE E' FINITA
        {
          if(readString.indexOf("L1=0") > 0) {
            l[0] = false;
          } 
          if(readString.indexOf("L1=1") > 0) {
            l[0] = true;
          } 
          if(readString.indexOf("L2=0") > 0) {
            l[1] = false;
          } 
          if(readString.indexOf("L2=1") > 0) {
            l[1] = true;
          } 
          if(readString.indexOf("L3=0") > 0) {
            l[2] = false;
          } 
          if(readString.indexOf("L3=1") > 0) {
            l[2] = true;
          } 
          if(readString.indexOf("L4=0") > 0) {
            l[3] = false;
          } 
          if(readString.indexOf("L4=1") > 0) {
            l[3] = true;
          } 
          if(readString.indexOf("L5=0") > 0) {
            l[4] = false;
          } 
          if(readString.indexOf("L5=1") > 0) {
            l[4] = true;
          }
          if(readString.indexOf("L6=0") > 0) {
            l[5] = false;
          } 
          if(readString.indexOf("L6=1") > 0) {
            l[5] = true;
          } 
          if(readString.indexOf("L7=0") > 0) {
            l[6] = false;
          } 
          if(readString.indexOf("L7=1") > 0) {
            l[6] = true;
          }
          if(readString.indexOf("L8=0") > 0) {
            l[7] = false;
          } 
          if(readString.indexOf("L8=1") > 0) {
            l[7] = true;
          } 
          //CREA LA PAGINA HTML (VERRA' AGGIORNATA AD OGNI ISTRUZIONE NUOVA)
          client.println(F("<!DOCTYPE html>"));
          client.println(F("<html><head><title> DomoticHome </title>"));
          client.println(F("<link rel=\"stylesheet\" type=\"text/css\"  href=\"http://casadomotica.host22.com/style1100.css\"/> ")); 
          client.println(F("</head><body>"));


          client.println(F("<table align=\"center\"  class=\"ab\"> <tr><td width=\"1155\" align=\"center\">"));
          client.println(F("<img  src=\"http://casadomotica.host22.com/ti.png\">")); 
          client.println(F("</td></tr></table>"));

          client.println(F("<table  align=\"center\" class=\"ab\" cellpadding=\"20\"> <tr><td width=\"750\">"));
          client.println(F("<img class=\"img1\" src=\"http://casadomotica.host22.com/piantina.png\">"));
          client.println(F("</td><td width=\"205\">"));

          //Prendi immagini html per immagine accesa

          if (l[0]) { 
            digitalWrite(s[0], HIGH);
            client.println(F("<img class=\"img1\" src=\"http://casadomotica.host22.com/corridoio.png\">"));
          } 
          else {
            digitalWrite(s[0], LOW );
          }
          
          if (l[1]) { 
            digitalWrite(s[1], HIGH);
            client.println(F("<img class=\"img1\" src=\"http://casadomotica.host22.com/cucina.png\">"));
          } 
          else {
            digitalWrite(s[1], LOW );
          }


          if (l[2]) { 
            digitalWrite(s[2], HIGH);
            client.println(F("<img class=\"img1\" src=\"http://casadomotica.host22.com/bagno.png\">"));
          } 
          else {
            digitalWrite(s[2], LOW );
          }

          if (l[3]) { 
            digitalWrite(s[3], HIGH);
            client.println(F("<img class=\"img1\" src=\"http://casadomotica.host22.com/camera_1.png\">"));
          } else {
            digitalWrite(s[3], LOW);
          }
          
         if (l[4]) { 
            digitalWrite(s[4], HIGH);
            client.println(F("<img class=\"img1\" src=\"http://casadomotica.host22.com/camera_2.png\">"));
          } else {
            digitalWrite(s[4], LOW);
          }
          
          if (l[5]) { 
            digitalWrite(s[5], HIGH);
            client.println(F("<img class=\"img1\" src=\"http://casadomotica.host22.com/soggiorno.png\">"));
          } else {
            digitalWrite(s[5], LOW);
          }
          
          if (l[6]) { 
            digitalWrite(s[6], HIGH);
            client.println(F("<img class=\"img1\" src=\"http://casadomotica.host22.com/garage.png\">"));
          } else {
            digitalWrite(s[6], LOW);
          }
          
          if (l[7]) { 
            digitalWrite(s[7], HIGH);
            client.println(F("<img class=\"img1\" src=\"http://casadomotica.host22.com/resega.png\">"));
          } else {
            digitalWrite(s[7], LOW);
          }
          
          


          //Pulsanti premuto e non premuto

          
          if (l[0]) { 
            client.println(F("<a href='?L1=0'><img src=\"http://casadomotica.host22.com/pcos.png\"></a>"));
          } 
          else {
            client.println(F("<a href='?L1=1'><img src=\"http://casadomotica.host22.com/pco.png\"></a>"));
          }


          if (l[1]) { 
            client.println(F("<a href='?L2=0'><img src=\"http://casadomotica.host22.com/pcus.png\"></a>"));
          } 
          else {
            client.println(F("<a href='?L2=1'><img src=\"http://casadomotica.host22.com/pcu.png\"></a>"));
          }

          if (l[2]) { 
            client.println(F("<a href='?L3=0'><img src=\"http://casadomotica.host22.com/pbs.png\"></a>"));
          } 
          else {
            client.println(F("<a href='?L3=1'><img src=\"http://casadomotica.host22.com/pb.png\"></a>"));
          }
          
          if (l[3]) { 
            client.println(F("<a href='?L4=0'><img src=\"http://casadomotica.host22.com/pn1s.png\"></a>"));
          } 
          else {
            client.println(F("<a href='?L4=1'><img src=\"http://casadomotica.host22.com/pn1.png\"></a>"));
          }
          if (l[4]) { 
            client.println(F("<a href='?L5=0'><img src=\"http://casadomotica.host22.com/pn2s.png\"></a>"));
          } 
          else {
            client.println(F("<a href='?L5=1'><img src=\"http://casadomotica.host22.com/pn2.png\"></a>"));
          }
          if (l[5]) { 
            client.println(F("<a href='?L6=0'><img src=\"http://casadomotica.host22.com/pss.png\"></a>"));
          } 
          else {
            client.println(F("<a href='?L6=1'><img src=\"http://casadomotica.host22.com/ps.png\"></a>"));
          }
          if (l[6]) { 
            client.println(F("<a href='?L7=0'><img src=\"http://casadomotica.host22.com/pgs.png\"></a>"));
          } 
          else {
            client.println(F("<a href='?L7=1'><img src=\"http://casadomotica.host22.com/pg.png\"></a>"));
          }
          if (l[7]) { 
            client.println(F("<a href='?L8=0'><img src=\"http://casadomotica.host22.com/pds.png\"></a>"));
          } 
          else {
            client.println(F("<a href='?L8=1'><img src=\"http://casadomotica.host22.com/pd.png\"></a>"));
          }
         

          client.println(F("</td></tr></table>"));
          client.println(F("</body></html>"));

          //SI PREPARA PER UNA NUOVA ISTRUZIONE
          readString="";

          //TERMINA LE OPERAZIONI CLIENTE
          client.stop();
        }
      }
    }
  }
}

Grazie problema risolto avevo dimenticato :

client.println(F("HTTP/1.1 200 OK"));
          client.println(F("Content-Type: text/html"));

non credevo fosse essenziale ma alla fine lo è stato XD XD XD

Buona notte!!! E viva Arduino $)