Pages: [1]   Go Down
Author Topic: Problemas ethernet shield  (Read 857 times)
0 Members and 1 Guest are viewing this topic.
bilbao
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola.

Recientemente he montado una cámara móvil con 2 servos y la ethernet. Esta la controlo por internet con la shield, pero resulta que al cabo de un rato, la web acaba petando y deja de tirar.

Me gustaría saber si sabéis como puedo solucionarlo. Como podréis observar, el codigo es reutilizado, esta hecho a partir de uno que encontré (gracias por cierto, http://www.geekytheory.com/arduino-ethernet-shield-relay/ ). Os dejo el código:

Quote
#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h>
 
Servo x; 
Servo y;

int posX = 90;
int posY = 90;
//Declaración de la direcciones MAC e IP. También del puerto 80
byte mac[]={0x00,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC
IPAddress ip(192,168,1,100); //IP
EthernetServer servidor(80);


String readString=String(30);
String state=String(3);

void setup()
{
  Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
  servidor.begin();
 
  state="OFF";
  x.attach( 8 );
  y.attach(9);
}

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+7)=="LED=ARR")
          {
            posY = posY -36;
           
            if(posY < 0){
             posY = 0;
            }
           
            y.write(posY);
           
            delay(1000);
          } else if (readString.substring(LED,LED+7)=="LED=ABA")
          {
             posY = posY +36;
           
            if(posY > 180){
             posY = 180;
            }
           
            y.write(posY);
                        delay(1000);

          }else if (readString.substring(LED,LED+7)=="LED=DER")
          {
             posX = posX + 36;
           
            if(posX > 180){
             posX = 180;
            }
           
            x.write(posX);
                        delay(1000);

          }else if (readString.substring(LED,LED+7)=="LED=IZQ")
          {
             posX = posX - 36;
           
            if(posX < 0){
             posX = 0;
            }
           
           x.write(posX);
                       delay(1000);

          }
         
         
          //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=IZQ style=width:200px;height:75px onClick=location.href='./?LED=IZQ\'>");
          cliente.println("<input type=submit value=DER style=width:200px;height:75px onClick=location.href='./?LED=DER\'>");
          cliente.println("<input type=submit value=ARR style=width:200px;height:75px onClick=location.href='./?LED=ARR\'>");
          cliente.println("<input type=submit value=ABA style=width:200px;height:75px onClick=location.href='./?LED=ABA\'>");
          cliente.println("</center>");
          cliente.println("</body>");
          cliente.println("</html>");
          cliente.stop();//Cierro conexión con el cliente
          readString="";
         
        }
      }
    }
  }
}
Logged

Pages: [1]   Go Up
Jump to: