Buen dia, estoy empezando un proyecto con arduino mega y el shield Ethernet.
La idea es mediante HTML enviar información y hacer mi programa en el arduino.
Aclaro que recién estoy empezando en esto de la programación pero me doy alguna idea.
Probe bastantes proyectos que circulan en la red con los cuales mando información a travez de una petición url para prender y apagar un led. son casi todos iguales.
Para expandir esto cree un tercer botón para que el led parpadee. lo que hice fue copiar y cambiar lo necesario para que sea un botón diferente. El problema es que solo ejecuta el parpadeo una sola vez. si alguien pudiera explicarme por que pasa esto y como puedo solucionarlo me serviría de mucho. muchas gracias
dejo el código que cree
#include <SPI.h>
#include <Ethernet.h>
byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED};
IPAddress ip(192, 168, 1, 77);
EthernetServer servidor(80);
String state="";//=String(3);
void setup() {
Ethernet.begin(mac, ip);
servidor.begin();
pinMode(13,OUTPUT);
}
void loop() {
//EthernetClient Crea un cliente que se puede conectar a
//una dirección específica de Internet IP
EthernetClient cliente= servidor.available();
if(cliente) {
boolean lineaenblanco=true;
String readstring="";
while(cliente.connected()) {
if(cliente.available()) {
char c=cliente.read();
readstring.concat(c);
int LED = readstring.indexOf("LED=");
if(readstring.substring(LED)=="LED=T") {
digitalWrite(13,HIGH);
state="ON"; }
if (readstring.substring(LED)=="LED=F") {
digitalWrite(13,LOW);
state="OFF";}
if (readstring.substring(LED)=="LED=P") {
digitalWrite(13,LOW);
delay(1000);
digitalWrite(13,HIGH);
delay(1000);
state="PARPADEA";}
if(c=='\n' && lineaenblanco) //Si la petición HTTP ha finalizado
{
cliente.println("HTTP/1.1 200 OK");
cliente.println("Content-Type: text/html");
cliente.println(); //Página Web en HTML
cliente.println("");
cliente.println("");
cliente.println("LAMPARA ON/OFF/PARPADEA");
cliente.println("");
cliente.println("");
cliente.println("");
cliente.println("
LAMPARA ON/OFF
");cliente.print("
");
cliente.print("Estado de la lampara: ");
cliente.print(state);
cliente.print("
");
cliente.print("LED: ");
cliente.println(LED);
cliente.print("
");
cliente.print("readstring: ");
cliente.println(readstring);
cliente.print("
");
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("<input type=submit value=PARPADEO style=width:200px;height:75px onClick=location.href='./?LED=P'>");
cliente.println("");
cliente.println("");
cliente.println("");
cliente.stop();
//Cierro conexión con el cliente
readstring="";
}
}
}
}
}