salve a tutti ![]()
vi spiego il mio problema:
ho una shield ethernet come questa
http://www.ebay.it/itm/400356634583?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649
e arduino 2009. Ho provato questi due codici:
//Librerie impiegate per il progetto
#include <SPI.h>
#include <Ethernet.h>
//Creao un array di byte per specificare il mac address
//byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//creo un array di byte per specificare l'indirizzo ip
byte ip[] = {192, 168, 1, 251};
//creo una variabile char per memorizzare i byte letti dal client
char Data_RX;
//creao un oggetto server che rimane in ascolto sulla porta
//specificata
Server ArduinoServer(80);
void setup()
{
  //inizializza lo shield con il mac e l'ip
  Ethernet.begin(ip);
  //inizializza l'oggetto server
  ArduinoServer.begin();
}
void loop()
{
  //fai qualcosa!
  delay(10);
}
#include <SPI.h>
#include <Client.h>
#include <Ethernet.h>
#include <Server.h>
//DETERMINA IL MAC E L'IP DELLA PAGINA WEB
byte mac[] = {
 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip[] = {
 192, 168, 1, 177};
//PORTA DI COMUNICAZIONE
EthernetServer server(80);
//SCRIVE IL NUMERO DI PIN CORRISPONDENTE AI LED
int ledPin1 = 9;
int ledPin2 = 8;
//LUNGHEZZA DELLA STRINGA INVIATA
String readString = String(30);
//IMPOSTA ALL'AVVIO I LED SPENTI
boolean LEDON1 = false;
boolean LEDON2 = false;
void setup(){
 Ethernet.begin(ip, mac);
 pinMode(ledPin1, OUTPUT);Â
 pinMode(ledPin2, OUTPUT);
 Serial.begin(9600);
 server.begin();
}
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=1") > 0) //IMPOSTA UNA VARIABILE DI TIPO BOLEANA (VERO-FALSO) PER GLI STATI DEL LED
     {
      LEDON1 = true;
     }
     else if (readString.indexOf("L2=1") > 0)
     {
      LEDON2 = true;     Â
     }
     else if(readString.indexOf("L1=0") > 0)
     {
      LEDON1 = false;
     }
     else if (readString.indexOf("L2=0") > 0)
     {
      LEDON2 = false;     Â
     }
     //CREA LA PAGINA HTML (VERRA' AGGIORNATA AD OGNI ISTRUZIONE NUOVA)
     client.println("HTTP/1.1 200 OK");
     client.println("Content-Type: text/html");
     client.println();
     client.println("<html><head></head><body>");
     //TITOLO LED 1
     client.println("<h1>Led 1</h1>");
     //OPERAZIONI DA FARE QUANDO SI CLICCA PER ATTIVARE LEDON1:Â
     if (LEDON1) {
      digitalWrite(ledPin1, HIGH);Â
      client.println("Stato: ON
");
     }
     else {
      //OPERAZIONI DA FARE QUANDO SI CLICCA PER SPEGNERE LEDON1:Â
      digitalWrite(ledPin1, LOW );
      client.println("Stato: OFF
");
     }
     //CREA I PULSANTI RELATIVI A LED1 Â
     client.println("<a href='?L1=0'>SPEGNI</a>");
     client.println("<a href='?L1=1'>ACCENDI</a>");
     //INSERISCE IL DIVISORE
     client.println("
______________________________
");
     //TTOLO LED2
     client.println("<h1>Led 2</h1>");
     //OPERAZIONI DA FARE QUANDO SI CLICCA PER ATTIVARE LEDON2:Â
     if (LEDON2) {
      digitalWrite(ledPin2, HIGH);Â
      client.println("Stato: ON
");
     }
     else {
      //OPERAZIONI DA FARE QUANDO SI CLICCA PER SPEGNERE LEDON2: Â
      digitalWrite(ledPin2, LOW);
      client.println("Stato: OFF
");
     }
     //CREA I PULSANTI RELATIVI A LED2
     client.println("<a href='?L2=0'>SPEGNI</a>");
     client.println("<a href='?L2=1'>ACCENDI</a>");
     //CHIUDE I TAG HTML PER LA PAGINA
     client.println("</body></html>");
     //SI PREPARA PER UNA NUOVA ISTRUZIONE
     readString="";
     //TERMINA LE OPERAZIONI CLIENTE
     client.stop();
    }
   }
  }
 }
}
sono codici funzionanti trovati in rete, di cui, per il secondo vi è anche un video con relativo progetto. A me non funzionano, quando collego al mio pc o al router (ho alice) non viene rilevato facendo il ping. Cosa posso fare?
p.s.: la micro sd funziona quindi non credo sia la shield, anche perchè quando collego il cavo ethernet vedo che le luci si attivano