Go Down

Topic: Ethernet shield Question (Read 3 times) previous topic - next topic

uwefed

buio pesto? accendere una luce??  ;) ;)
Ciao Uwe

matrix77

Salve a tutti e grazie innanzitutto per il Vostro intervento,

Per essere giustamente più preciso, posterò lo sketch che tra l'altro è quello preconfezionato nel software di arduino e io non ho fatto nient'altro che modificare i parametri di rete.

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

// network configuration.  gateway and subnet are optional.

// the media access control (ethernet hardware) address for the shield:
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x6C, 0xE3 }; (MAC DELLA MIA SCHEDA) 
//the IP address for the shield:
byte ip[] = { 192, 168, 0, 6 };    (IP LIBERO DELLA MIA RETE)
// the router's gateway address:
byte gateway[] = { 192, 168, 0, 1 }; (IP MODEM)
// the subnet:
byte subnet[] = { 255, 255, 255, 0 }; (CLASSICO PARAMETRO ORMAI UN DEFAULT PER MOLTE RETI)

// Initialize the Ethernet server library
// with the IP address and port you want to use
// (port 80 is default for HTTP):
EthernetServer server(80);

void setup()
{
   // initialize the ethernet device
   Ethernet.begin(mac, ip, gateway, subnet);

  // start listening for clients
   server.begin();
}

void loop()
{
   // if an incoming client connects, there will be bytes available to read:
   EthernetClient client = server.available();
   if (client == true) {
     // read bytes from the incoming client and write them back
     // to any clients connected to the server:
     server.write(client.read());
   }
}

Per quanto riguarda l'hw, possiedo un Arduino UNO, con shield ethernet che trovate rappresentata in questa immagine: http://arduino.cc/en/Guide/ArduinoEthernetShield



Rammento che se collego arduino direttamente al pc, funziona tutto alla perfezione, visualizzando ad esempio, una pagina di prova nel browser.
Come ultima cosa, ho provato a collegare al mio modem, un piccolo convertitore USB/ETHERNET, attribuendogli un indirizzo ip, sia statico che dinamico e funziona sempre.
Altro test che ho eseguito è stato quello di disabilitare e abilitare il DHCP, ma il modem già a priori, non visualizza lo shield collegato, nella lista preposta...., mah che rabbia :0

ciao

per capire meglio... se colleghi con un cavo l'ethernet shield alla presa di rete del PC riesci a pingare Arduino e a collegarti?
Se invece entrambi (PC e Arduino) sono connessi al router no?
Veramente strano, il router dovrebbe avere un semplice "switch" al suo interno...

prova così: carica uno sketch che risponda al ping, dal PC fai:

ping <indirizzo_ip_arduino>

e se non ti risponde dai

arp -a

vedi se almeno il PC riesce ad ottenere l'ARP che hai definito nel tuo sketch


Proverò anche (ARP-A) e vediamo se fa qualcosa.


Ciao

matrix77

Aggiorno il mio post, perchè penso di essere prossimo alla soluzione; ho fatto un altro esperimento che consiste nell utilizzare un dispositivo, per inviare segnali ethernet, tramite onde convogliate, nella linea elettrica, in sostanza se interpongo questo dispositivo, il modulo lo vedo e funziona, in caso contrario, nulla da fare.

Riepilogando: nella porta del router, inserisco il dispositivo ad onde convogliate, che verrà collegato tramite presa elettrica.

Nella mia stanza, prelevo dal secondo dispositivo ad onde convogliate, il segnale ethernet che verrà collegato al modulo shield ethernet.
Magia! Funziona, a questo punto devo dare una spiegazione tecnica all'inghippo e l'unica cosa che mi viene in mente è: non che sta m....ia di shield, voglia un cavo incrociato???


Ciao a tutti :)

lucadentella

Ciao

normalmente la configurazione è

- dispositivo di rete -> altro dispositivo di rete (es. Arduino -> PC) = cavo incrociato
- dispositivo di rete -> switch (o router) = cavo dritto

in realtà quasi tutti i dispositivi "moderni" hanno la funzionalità di Auto-MDIX ovvero "capiscono" che cavo stai usando e agiscono di conseguenza. Potrebbe essere però che tu stia usando un cavo cross, che quindi va bene per un collegamento diretto ma non verso il router se questo non fa auto-sensing...
lucadentella.it

matrix77

#9
Feb 04, 2012, 10:39 pm Last Edit: Feb 04, 2012, 10:44 pm by matrix77 Reason: 1

Ciao

normalmente la configurazione è

- dispositivo di rete -> altro dispositivo di rete (es. Arduino -> PC) = cavo incrociato
- dispositivo di rete -> switch (o router) = cavo dritto

in realtà quasi tutti i dispositivi "moderni" hanno la funzionalità di Auto-MDIX ovvero "capiscono" che cavo stai usando e agiscono di conseguenza. Potrebbe essere però che tu stia usando un cavo cross, che quindi va bene per un collegamento diretto ma non verso il router se questo non fa auto-sensing...
Salve Luca,


Si effettivamente hai ragione, purtroppo mi ero illuso che funzionasse, ma a questo punto, la causa potrebbe essere da imputare ad un probabile guasto dello shield, dal momento che ancora adesso non funziona :0; nel contempo ho potuto constatare, anche un altro problema ed in sostanza, lo shield non accetta gli indirizzi ip es: 192.168.0.4, con la conseguente mancata trasmissione dell' ip stesso anche collegandolo direttamente al pc, se però l'indirizzo lo modifico in: 192.168.1.4, ecco che riappare alla perfezione col ping e nel browser.

A questo punto ho reimpostato il modem, perchè accettasse ip, con numerazione x.x.1.0, anzichè x.x.0.1. ma anche in questo caso nessun risultato.

Ciao

Go Up