Go Down

Topic: Problema con Ethernet Shield para Arduino W5100(SOLUCIONADO) (Read 17523 times) previous topic - next topic

elyokko

Jul 30, 2014, 01:34 am Last Edit: Aug 01, 2014, 09:04 am by elyokko Reason: 1
Que tal este es mi primer post tengo horas buscando infomacion y no encuentro nada parecido a mi problema . lo redacto a continuacion :

tengo un arduino MEGA 2560 y un Ethernet Shield para Arduino W5100,  estoy tratando de hacer el servidor o cualquier ejemplo tengo conocimientos basicos sobre redes ., el problema es que mi modem no me detecta el dispositivo como si no conectara nada heee hay lo que me preocupa pues no me da ni IP  ni nada es como si no conectara nada .  

mi modem es un Thomson TG585 v8






he tratado de encontrar la opcion de agregar dispositivo manualmente pero no lo hay solo funciona por DHCP

a alguien le ha pasado algo asi o tendre que pedir garantia por el producto ..

el producto si enciende y enciende los focos



y esto es lo que pasa si conecto el Ethernet Shield para Arduino W5100 el cable RJ45 directamente a mi computador esta es la ip que me da .



a hora quiero preguntar con que router va mejor alguna recomendacion de router ???? o que hago lo mando a garantia ?

alguna ayuda de ante mano gracias por el espacio.

Naruto128

#1
Jul 30, 2014, 05:35 am Last Edit: Jul 30, 2014, 05:42 am by Naruto128 Reason: 1
pone tu code.

proba primero en conectar directo a la pc por e puerto rj45,

y ponele una ip fija.

---- PC
DIRECCION IP:  192.168.1.100
MASCARA : 255.255.255.0
PUERTA DE ENLACE:   192.168.1.72                          <--- ip ARDUINO  ETHERNET
SERVIDOR DNS  : 192.168.1.72                          <--- ip ARDUINO  ETHERNET



---ARDUINO EHETNET
IP:    192.168.1.72


teoricamente si pones esta direccion ip : 192.168.1.72    , en el navegador(firefox,internet explore)
deberias ver algo


-------------
otra cosa es el cable que usas,
creo que si lo conectas directo a la pc necesitas un cable rj45 cruzado ,
y si lo conectas al moden necesitas un cable rj45 normal o viversa.
no recuerdo bien



maxid

si va directo al pc es cable cruzado., y asignas una ip acorde a la que tienes en tu pc.
Si tienes dhcp en el router, pon una fija en arduino en el rango y listo.

Ejemplo:
ves que ip tiene tu pc. 10.0.0.4 mascara 255.255.255.0
En arduino colocas 10.0.0.5 mascara 255.255.255.0
y ya se deberian ver la pc con arduino.
El que pregunta aprende, el que responde aprende a responder.

elyokko

por el momento ya trate de hacer conecion tanto con cables  cruzados como normales y nada me sale una duda de la cual solucionaria todo mi poroblema ..


alguien de ustedes a usado realmente este modulo ? me interesaria saber si es nesesario configurar manualmente la ip en el router o si los router comunes le asignan ip normalmente  sin hacer nada

. me interesa saber por que ya son 2 modems a los que lo he conectado y no me lo detecta ni nada .

empiezo a creer que el problema es mi modulo , pero quiero asegurarme antes de pedir garantia .

creo que lo mejor sera comprar un ROUTER en el cual pueda yo asignar dispositivos y IP manualmente .


GRACIAS  todos.

noter

Hola.
Tal vez estás empezando la casa por el tejado ¿Estás seguro de que el problema es de la red? Creo que deberías comenzar por ver si el módulo está bien instalado y configurado. Comienza por poner un vínculo a tu modelo de shield para ver las características (por ejemplo, qué pin SS utiliza) y el programa que quieres probar.
Saludos

elyokko

#5
Jul 31, 2014, 12:39 am Last Edit: Jul 31, 2014, 12:45 am by elyokko Reason: 1
ante todo gracias por su tiempo . lo que sea nesesario lo are.

aqui dejo el link de donde lo compre es identico a las fotos .

http://circuit.banshee.mx/shields-arduino/ethernet-shield-para-arduino-w5100/28

este es el codigo

Code: [Select]

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

//Declaración de la direcciones MAC e IP. También del puerto 80
byte mac[]={0x00,0x22,0x48,0x9f,0xe2,0x3d}; //MAC
IPAddress ip(192,168,1,71); //IP
EthernetServer servidor(80);

int PIN_LED=8;
String readString=String(30);
String state=String(3);

void setup()
{
 Ethernet.begin(mac,ip); //Inicializamos con las direcciones asignadas
 servidor.begin();
 pinMode(PIN_LED,OUTPUT);
 digitalWrite(PIN_LED,HIGH);
 state="OFF";
}

void loop()
{
 EthernetClient cliente= servidor.available();
 
 if(cliente)
 {
   boolean lineaenblanco=true;
   while(cliente.connected())//Cliente conectado
   {
     if(cliente.available())
     {
       char c=cliente.read();
       if(readString.length()<30)//Leemos petición HTTP caracter a caracter
       {
         readString.concat(c); //Almacenar los caracteres en la variable readString
       }
       if(c=='\n' && lineaenblanco)//Si la petición HTTP ha finalizado
       {
         int LED = readString.indexOf("LED=");
         if(readString.substring(LED,LED+5)=="LED=T")
         {
           digitalWrite(PIN_LED,LOW);
           state="ON";
         } else if (readString.substring(LED,LED+5)=="LED=F")
         {
           digitalWrite(PIN_LED,HIGH);
           state="OFF";
         }
         
         
         //Cabecera HTTP estándar
         cliente.println("HTTP/1.1 200 OK");
         cliente.println("Content-Type: text/html");
         cliente.println();
         //Página Web en HTML
         cliente.println("<html>");
         cliente.println("<head>");
         cliente.println("<title>LAMPARA ON/OFF</title>");
         cliente.println("</head>");
         cliente.println("<body width=100% height=100%>");
         cliente.println("<center>");
         cliente.println("<h1>LAMPARA ON/OFF</h1>");
         cliente.print("<br><br>");
         cliente.print("Estado de la lampara: ");
         cliente.print(state);
         cliente.print("<br><br><br><br>");
         cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED=T\'>");
         cliente.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED=F\'>");
         cliente.println("</center>");
         cliente.println("</body>");
         cliente.println("</html>");
         cliente.stop();//Cierro conexión con el cliente
         readString="";
       }
     }
   }
 }
}


este es un ifconfig  de computador de escritorio



estos son los dispositivos totales en mi modem y en ningun momento me detecta el SHIELD W5100  (o la IP  192,168,1,71)





este es mi arduino en funcionamiento




EL problema es que mi modem no me deja agregar dispositivos ni IP de ninguna manera , no se si eso influya la unica manera de agregar dispositivos  es por medio automatica por DHCP   no se si sea ese el problema .

por eso digo si es nesesario comprar un router el cual yo pueda asignar digamos la ip 192,168,1,71 y la mac 0x00,0x22,0x48,0x9f,0xe2,0x3d   directamente al dispositivo de esta manera no usara DHCP  para detectar el SHIELD W5100

estoy en lo correcto o no es nesesario comprar router y mando a garantia mi SHIELD W5100 ??

Naruto128

:smiley-eek-blue:
probastes lo que te mencionamos ??
q resultados te arojo ?

Naruto128


cualquier mode funciona.
solo debes poner la ip correcta.



ante todo gracias por su tiempo . lo que sea nesesario lo are.

aqui dejo el link de donde lo compre es identico a las fotos .

http://circuit.banshee.mx/shields-arduino/ethernet-shield-para-arduino-w5100/28

este es el codigo

Code: [Select]

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

//Declaración de la direcciones MAC e IP. También del puerto 80
byte mac[]={0x00,0x22,0x48,0x9f,0xe2,0x3d}; //MAC
IPAddress ip(192,168,1,71); //IP
EthernetServer servidor(80);

int PIN_LED=8;
String readString=String(30);
String state=String(3);

void setup()
{
 Ethernet.begin(mac,ip); //Inicializamos con las direcciones asignadas
 servidor.begin();
 pinMode(PIN_LED,OUTPUT);
 digitalWrite(PIN_LED,HIGH);
 state="OFF";
}

void loop()
{
 EthernetClient cliente= servidor.available();
 
 if(cliente)
 {
   boolean lineaenblanco=true;
   while(cliente.connected())//Cliente conectado
   {
     if(cliente.available())
     {
       char c=cliente.read();
       if(readString.length()<30)//Leemos petición HTTP caracter a caracter
       {
         readString.concat(c); //Almacenar los caracteres en la variable readString
       }
       if(c=='\n' && lineaenblanco)//Si la petición HTTP ha finalizado
       {
         int LED = readString.indexOf("LED=");
         if(readString.substring(LED,LED+5)=="LED=T")
         {
           digitalWrite(PIN_LED,LOW);
           state="ON";
         } else if (readString.substring(LED,LED+5)=="LED=F")
         {
           digitalWrite(PIN_LED,HIGH);
           state="OFF";
         }
         
         
         //Cabecera HTTP estándar
         cliente.println("HTTP/1.1 200 OK");
         cliente.println("Content-Type: text/html");
         cliente.println();
         //Página Web en HTML
         cliente.println("<html>");
         cliente.println("<head>");
         cliente.println("<title>LAMPARA ON/OFF</title>");
         cliente.println("</head>");
         cliente.println("<body width=100% height=100%>");
         cliente.println("<center>");
         cliente.println("<h1>LAMPARA ON/OFF</h1>");
         cliente.print("<br><br>");
         cliente.print("Estado de la lampara: ");
         cliente.print(state);
         cliente.print("<br><br><br><br>");
         cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED=T\'>");
         cliente.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED=F\'>");
         cliente.println("</center>");
         cliente.println("</body>");
         cliente.println("</html>");
         cliente.stop();//Cierro conexión con el cliente
         readString="";
       }
     }
   }
 }
}


este es un ifconfig  de computador de escritorio



estos son los dispositivos totales en mi modem y en ningun momento me detecta el SHIELD W5100  (o la IP  192,168,1,71)





este es mi arduino en funcionamiento




EL problema es que mi modem no me deja agregar dispositivos ni IP de ninguna manera , no se si eso influya la unica manera de agregar dispositivos  es por medio automatica por DHCP   no se si sea ese el problema .

por eso digo si es nesesario comprar un router el cual yo pueda asignar digamos la ip 192,168,1,71 y la mac 0x00,0x22,0x48,0x9f,0xe2,0x3d   directamente al dispositivo de esta manera no usara DHCP  para detectar el SHIELD W5100

estoy en lo correcto o no es nesesario comprar router y mando a garantia mi SHIELD W5100 ??

Naruto128

mirate esto

http://www.youtube.com/watch?v=ISwLluQWrgc

elyokko

ya realize lo mensionado en el video paso a paso  y sigo sin poder comunicarme con mi arduino enviare mi shield W5100 a garantia ya les contare que pasa ya me rompi la cabeza 2 dias lo dejo por la paz  . gracias



Naruto128


elyokko

24 , por que naruto  un poco irrelevante  no cres, pero agradesco toda tu ayuda  como comento  mandare mi dispositivo a garantia y ya les contare que paso.

carmeloco

Pero a ver, ¿has probado a hacer un ping al arduino?

A mi, ese código, me funciona perfectamente, con un ethernet shield. Que no aparezca en la lista del router, me parece totalmente irrelevante, vamos, a mi me daría absolutamente igual, mientras funcione, ¿que más me dá que no salga en una lista del router?

Yo lo he probado, me responde a ping, y en un navegador me sale una página con dos botones de on y off para encender y apagar el led en el pin 8. Lo único que veo raro, es que al darle a on, el led se apaga, y al darle a off, se enciende, pero funcionar, funciona.

elyokko

Bueno agradesco a todos .

mande a garantia mi shield y efectivamente estaba dañado ..

me mandaron un remplazo y en menos de 1 minuto lo eche a andar de manera local en mi computador.



aun sigo sin que el modem me lo detecte . pero eso ya no es problema se que ya hace coneccion solo es cuestion de comprar un router  que pueda asignar ip estaticamente  .


carmeloco

¿Asignar IP estáticamente? Hay algunos routers, que permiten crear una lista de direcciones MAC, a las que asignarles siempre una misma IP, pero nunca le he visto la utilidad práctica. Para eso, pongo ip's fijas a los dispositivos que me interesa, y dejo un rango fuera del DHCP para las ip's fijas.

Go Up