encender o apagar pin 34 de arduino mega por boton en html

Hola, Les dejo un archivo adjunto que no es mas que una pagina web que tiene un boton, que al presionarlo cambia su valor de "ENCENDER" por "APAGAR" y viceversa. Me podrían subir un ejemplo de como quedaría este mismo código si quisiera que encienda un pin determinado de la arduino mega (ej. pin 34)? Cuando me refiero al codigo me refiero en lo posible a todo el codigo arduino + html cosa que pueda cargar el archivo y me ande? entiendo que tengo que cambiar la direccion ip. :slight_smile: Gracias.

Archivo.txt (769 Bytes)

Saludos GorloLaguzzi.

Aquí te adjunto el código probado, no se te olvide cambiar la IP por una valida. El botón lo diseñe para que funcionara como un ToggleButton.

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

byte mac[] = {  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED  
}; 
IPAddress ip(100,100,100,100); 
EthernetServer servidor(80);

// Pin que se desea modificar mediante el boton
int PIN = 13;

String readString = String(30);
String Estado_Pin = String(8);
void setup()
{
  Ethernet.begin(mac, ip);
  Serial.begin(9600);
  servidor.begin();
  pinMode(PIN, OUTPUT);
  digitalWrite(PIN, LOW);
  Estado_Pin = "ENCENDER";
}
void loop()
{
  EthernetClient cliente = servidor.available();
  if (cliente)
  {

    boolean lineaenblanco = true;
    while (cliente.connected())
    {

      if (cliente.available())
      {
        char c = cliente.read();
        if (readString.length() < 30)
        {
          readString.concat(c);         
        }
        if (c == '\n' && lineaenblanco) //Si la peticion HTTP ha finalizado
        {
          int Dato = readString.indexOf("PIN");
          String LED2 = readString.substring(Dato , Dato + 5);
          if (readString.substring(Dato, Dato + 5) == "PIN=S")
          {
            if (Estado_Pin == "ENCENDER") {
              digitalWrite(PIN, HIGH);
              Estado_Pin = "APAGAR";
            }
            else {
              digitalWrite(PIN, LOW);
              Estado_Pin = "ENCENDER";
            }
          }
          cliente.println("HTTP/1.1 200 OK");
          cliente.println("Content-Type: text/html");
          cliente.println();
          cliente.println("<html>");
          cliente.println("<head>");
          cliente.println("<title>Encender/Apagar Pin</title>");
          cliente.println("</head>");
          cliente.println("<body width=100% height=100%>");
          cliente.println("<center>");
          cliente.println("<h1>Encender/apagar Pin Arduino</h1>");
          cliente.print("

");
          cliente.print("<input type=submit value=");
          cliente.print(Estado_Pin);
          cliente.print(" style=width:200px;height:75px onClick=location.href='./?PIN=S\'>");
          cliente.print("</center>");
          cliente.print("</body>");
          cliente.print("</html>");
          cliente.stop();
          readString = "";
        }
      }
    }
  }
}