Hola buenas, soy nuevo en el mundo de Arduino, y recientemente, adquirí un Shield Eterneth para controlar un led por medio de internet, lo que pasa que al programar la placa, y subir el programa, el pin 13(al cual esta conectado el led) y algunos otros pines No referenciados están como si los hubiera declarado HIGH, y al intentar apagar el led no me permite hacerlo, intente dejarlo LOW en el setup y el loop pero nada, y lo que me parece aun mas extraño, es ¿porque pines que no eh declarado están activos?, aquí les adjunto el código para ver si me pueden ayudar.
/* Control Arduino Ethernet*/
#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //Direccion Fisica MAC
byte ip[] = { 192, 168, 1, 50 }; // IP Local que usted debe configurar
byte gateway[] = { 192, 168, 1, 1 }; // Puerta de enlace
byte subnet[] = { 255, 255, 255, 0 }; //Mascara de Sub Red
EthernetServer server(80); //Se usa el puerto 80 del servidor
String readString;
void setup() {
// Serial.begin(9600); // Inicializa el puerto serial
//while (!Serial) { // Espera a que el puerto serial sea conectado, Solo necesario para el Leonardo
//}
pinMode(13,OUTPUT); // Se configura como salidas los puertos del 2 al 6
Ethernet.begin(mac, ip, gateway, subnet); // Inicializa la conexion Ethernet y el servidor
server.begin();
Serial.print("El Servidor es: ");
Serial.println(Ethernet.localIP()); // Imprime la direccion IP Local
}
void loop() {
// Crea una conexion Cliente
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//Lee caracter por caracter HTTP
if (readString.length() < 100) {
//Almacena los caracteres a un String
readString += c;
}
// si el requerimiento HTTP fue finalizado
if (c == '\n') {
Serial.println(readString); //Imprime en el monitor serial
client.println("HTTP/1.1 200 OK"); //envia una nueva pagina en codigo HTML
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE>Ethernet Arduino</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<hr />");
client.println("<H1>Arduino Ethernet Shield</H1>");
client.println("
");
client.println("<H2>Control on/off 2-6 Servo 7</H2>");
client.println("
");
client.println("<a href=\"/?button2on\"\"> Encender Pin2</a> "); // construye en la pagina cada uno de los botones
client.println(" | | | ");
client.println("<a href=\"/?button2off\"\"> Apagar Pin2</a>
");
client.println("
");
client.println("
");
//client.println("<a href=\"/?left\"\">Girar Izq Pin7</a>");
//client.println(" | | | ");
//client.println("<a href=\"/?right\"\">Girar Der Pin7</a>
");
client.println("<hr />");
client.println("
");
client.println("</BODY>");
client.println("</HTML>");
delay(1);
//detiene el cliente servidor
client.stop();
//control del arduino si un boton es presionado
if (readString.indexOf("?butto2on") >0){
digitalWrite(13, HIGH);
}
if (readString.indexOf("?button2off") >0){
digitalWrite(13, LOW);
}
// Limpia el String(Cadena de Caracteres para una nueva lectura
readString="";
}
}
}
}
}