arduino e ethernet sheild

Buongiorno amici del forum.
Torno oggi su di un argomento già trattato altre volte sia qui che su internet ma mai risolto del tutto.
Io posseggo due arduino uno compatibile su quali monto la sheild anch'essa compatibile con il cip wd5100.
Carico la sketch per la prova web.

Il comportamento delle schede e star no ossia se collegate al PC o a raspberry o a un router di qualità i led si accendono e la scheda va in comunicazione.
Mentre se le collego a un router semplice o un hub o a uno switch o altre parti non vanno in comunicazione.

Sembra come che l apparecchiatura sulla qualche si collega la sheild dev'essere "intellogente" ossia non qualsiasi apparecchio riesce a comunicare con arduino.

questo è possibile secondo voi?
sono limiti hardware?
o nel codice manca qualcosa per cui lo switch non lo vede?

grazie a chi vorrà collaborare

ok presentazioni fatte

Nessuno sa darmi qualche idea?

Prova a postare il codice e facci sapere quale compatibile hai

alessandropa:
Carico la sketch per la prova web.

Quale sketch di preciso ?
E posta i link ai prodotti che hai.

eccomi qua allora questo è la sketch che uso

#include <Mudbus.h>
#include <Servo.h>
#include <SPI.h>    
#include <Ethernet.h>

Mudbus Mb; 
Servo myservo;    

int pos =  0;
bool pulsante2 = 2;
bool pulsante3 = 3;
bool pulsante4 = 4;
bool pulsante5 = 5;
bool pulsante6 = 6;
bool pulsante7 = 7;
bool pulsante8 = 8;
byte mac[]     = { 0xE0, 0x02, 0x4D, 0x6A, 0x60, 0x12 }; 
      
 byte gateway[] = { 192, 168, 0, 10};      
 byte subnet[]  = { 255, 255, 255, 0 }; 
     
IPAddress ip(192,168,0,109);

void setup()
{
   Ethernet.begin(mac,ip);      
 delay(5000);  
 myservo.attach(9);


  pinMode(pulsante2, INPUT); 
   pinMode(pulsante3, INPUT); 
    pinMode(pulsante4, INPUT); 
     pinMode(pulsante5, INPUT); 
      pinMode(pulsante6, INPUT); 
       pinMode(pulsante7, INPUT); 
        pinMode(pulsante8, OUTPUT); 
    


}
void loop()
{
Mb.Run();             
 Mb.R[2] = pos ;
 Mb.C[2] = digitalRead (2);
 Mb.C[3] = digitalRead (3);
 Mb.C[4] = digitalRead (4);
 Mb.C[5] = digitalRead (5);
 Mb.C[6] = digitalRead (6); 
 Mb.C[7] = digitalRead (7);
 if( Mb.C[9]== 1){ digitalWrite (pulsante8, HIGH );}
 else {digitalWrite (pulsante8, LOW);}
pos = Mb.R[1] ;
      delay(10);
    
 myservo.write (pos);



}

e questo e il link dove ho acquistato la scheda

http://www.ebay.it/itm/271728140545?_trksid=p2057872.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

wall mall si chiama il sito

>alessandropa: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra). Grazie.

Guglielmo

un passo avanti......
ossia con questo sketch trovato sul forum

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

byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte ip[] = {192, 168, 0, 75};

EthernetServer server(80);

void setup() {
  Serial.begin(9600);
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}


void loop() {
 
}

la scheda sembra rispondere anche su di un hub (anche se c'e ancora qualche problema di ping)
la proverò nei prossimi giorni con l'applicazione che volevo costruire.

qualcuno che ne sa piu di me che grandi differenze ci sono tra il mio primo sketch postato e questo?
dove sbagliavo

La differenza è che nel secondo sketch hai un server che gira su Arduino e che risponde alla porta 80.
Nel primo sketch hai solo un "client" senza server sopra e quindi penso sia normale non risponde ai ping.

Grazie mille per la esposta.
Ma anche se fosse solo client i led tx ed rx non dovrebbero blinkare cmq magari in attesa di un server?
Oppure su di un hub o una rete che sia ogni componente deve avere un server e una porta?

Presumo che un hub colloquia con arduino, se non c'e' un server ma solo un client, che non dà certe risposte alle richieste dell'hub o router, questi non lo "riconosce". Penso.

oppure bisogna sempre dichiarare se client o server