Hola, buenas tardes.
He llevado a cabo la programación para un proyecto en el que he utilizado la shield de ethernet junto con un arduino mega.
El objetivo era conectar 5 motores por medio de interruptores (boton on y off) y luego un ultimo motor que sería la puerta de un garaje la quería activar a través de un pulsador, cuya función sería activar el motor y a través de un delay desactivarlo.
Mi código es el siguiente, lo que me preocupa es el tema del pulsador pues no me funciona.
¿Alguien puede echarme una mano?
Gracias
#include <SPI.h>
#include <Ethernet.h>
//Declaración de la direcciones MAC e IP. También del puerto 80
byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC
IPAddress ip(192,168,1,80); //IP
EthernetServer servidor(8080);
int PIN_LED1=5;
String readString1=String(30);
String state1=String(3);
int PIN_LED2=6;
String state2=String(3);
int PIN_LED3=7;
String state3=String (3);
int PIN_LED4=8;
String state4=String (3);
int PIN_LED5=9;
String state5=String (3);
int PIN_LED6=10; // pulsador
String state6=String (3);
void setup()
{
Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
servidor.begin();
pinMode(PIN_LED1,OUTPUT);
digitalWrite(PIN_LED1,HIGH);
state1="OFF";
pinMode(PIN_LED2,OUTPUT);
digitalWrite(PIN_LED2,HIGH);
state2="OFF";
pinMode(PIN_LED3,OUTPUT);
digitalWrite(PIN_LED3,HIGH);
state3="OFF";
pinMode(PIN_LED4,OUTPUT);
digitalWrite(PIN_LED4,HIGH);
state4="OFF";
pinMode(PIN_LED5,OUTPUT);
digitalWrite(PIN_LED5,HIGH);
state5="OFF";
pinMode(PIN_LED6,OUTPUT);
digitalWrite(PIN_LED6,HIGH);
}
void loop()
{
EthernetClient cliente= servidor.available();
if(cliente)
{
boolean lineaenblanco=true;
while(cliente.connected())//Cliente conectado
{
if(cliente.available())
{
char c=cliente.read();
if(readString1.length()<30)//Leemos petición HTTP caracter a caracter
{
readString1.concat(c); //Almacenar los caracteres en la variable readString
}
if(c=='\n' && lineaenblanco)//Si la petición HTTP ha finalizado
{
int LED1 = readString1.indexOf("LED1=");
int LED2 = readString1.indexOf("LED2=");
int LED3 = readString1.indexOf("LED3=");
int LED4 = readString1.indexOf("LED4=");
int LED5 = readString1.indexOf("LED5=");
int LED6 = readString1.indexOf("LED6=");
if(readString1.substring(LED1,LED1+6)=="LED1=T")
{
digitalWrite(PIN_LED1,LOW);
state1="ON";
} else if (readString1.substring(LED1,LED1+6)=="LED1=F")
{
digitalWrite(PIN_LED1,HIGH);
state1="OFF";
}
if(readString1.substring(LED2,LED2+6)=="LED2=T")
{
digitalWrite(PIN_LED2,LOW);
state2="ON";
} else if (readString1.substring(LED2,LED2+6)=="LED2=F")
{
digitalWrite(PIN_LED2,HIGH);
state2="OFF";
}
if (readString1.substring(LED3,LED3+6)=="LED3=T")
{
digitalWrite(PIN_LED3,LOW);
state3="ON";
}
else if (readString1.substring(LED3,LED3+6)=="LED3=F")
{
digitalWrite(PIN_LED3,HIGH);
state3="OFF";
}
if (readString1.substring(LED4,LED4+6)=="LED4=T")
{
digitalWrite(PIN_LED4, LOW);
state4="ON";
}
else if (readString1.substring(LED4,LED4+6)=="LED4=F")
{
digitalWrite(PIN_LED4, HIGH);
state4= "OFF";
}
if (readString1.substring(LED5,LED5+6)=="LED5=T")
{
digitalWrite(PIN_LED5, LOW);
state5="ON";
}
else if (readString1.substring(LED5,LED5+6)=="LED5=F")
{
digitalWrite(PIN_LED5,HIGH);
state5="OFF";
}
if (readString1.substring(LED6+LED6+6)=="LED6=F") //PULSADOR
{
digitalWrite(PIN_LED6,LOW);
delay(100);
digitalWrite (PIN_LED6,HIGH);
}
//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>MOTOR EXPRESION ON/OFF</title>");
cliente.println("</head>");
cliente.println("<body width=100% height=100%>");
cliente.println("<center>");
cliente.println("<h1>MOTORES DE HUERTA ON/OFF</h1>");
cliente.print("
");
cliente.print("Estado del motor de RIEGO: ");
cliente.print(state1);
cliente.print("
");
cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED1=T\'>");
cliente.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED1=F\'>");
cliente.print("
");
cliente.print("Estado del motor de EXPRESION: ");
cliente.print(state2);
cliente.print("
");
cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED2=T\'>");
cliente.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED2=F\'>");
cliente.print("
");
cliente.print("Estado del motor de LUCES: ");
cliente.print(state3);
cliente.print("
");
cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED3=T\'>");
cliente.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED3=F\'>");
cliente.print("
");
cliente.print("Estado del motor de CALEFACCION: ");
cliente.print(state4);
cliente.print("
");
cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED4=T\'>");
cliente.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED4=F\'>");
cliente.print("
");
cliente.print("Estado del motor DEPURADORA: ");
cliente.print(state5);
cliente.print("
");
cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED5=T\'>");
cliente.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED5=F\'>");
cliente.print("
");
cliente.print("PULSADOR: ");
cliente.print("
");
cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED6=F\'>");
cliente.println("</center>");
cliente.println("</body>");
cliente.println("</html>");
cliente.stop();//Cierro conexión con el cliente
readString1="";
}
}
}
}
}