Ciao a tutti, ho uno strano problema con la ethernet shield... Il mio progetto consiste nell'attivare via web una lampada a 220v mediante un relè FINDER 26.01 con bobina a 220v... Per fare ciò ho quindi pensato di pilotare questo relè mediante un altro relè con bobina a 5v da collegare ad arduino... Qui si presenta il problema con la ethernet shield: il codice che ho uplodato su arduino è questo:
#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168,0, 5 }; // ip in lan
byte gateway[] = { 192, 168, 0, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
int ledPin = 9; // LED pin
char link[]="http://www.ioscripto.it"; //link data
String readString; //string
boolean LEDON = false; //LED status flag
void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
delay(2000);
digitalWrite(ledPin,HIGH);
}
void loop(){
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
readString.concat(c); //store characters to string
//if HTTP request has ended
if (c == '\n' && currentLineIsBlank) {
Serial.print(readString);
if(readString.indexOf("L=1") > 0) {//lets check if LED should be lighted
//led has to be turned ON
digitalWrite(ledPin,LOW); // Turns ON Relays 1
delay(500); // Wait 2 seconds
digitalWrite(ledPin,HIGH); // Turns Relay Off
LEDON = true;
}else{
//led has to be turned OFF
}
// now output HTML data starting with standart header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
// inizializzo pagina (da togliere se uso ajax)
client.print("<html><head><title>ARDUINO Controllo Led via WEB</title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' ></head><body>");
//send first heading
if (LEDON) {
client.println("<span style='color:green'>ON</span>");
}
else
{
client.println("<span style='color:grey'>OFF</span>");
}
client.print("<h2><a href='/?L=1'>accendi!</a> | <a href='/?L=0'>spegni!</a></h2>");
//print link
client.println("<hr />");
client.print("<h2><a href='link'>Visita www.ioscripto.it!</a></h2>");
client.println("<hr />");
// chiudo pagina da togliere se uso ajax
client.println("</body></html>");
//clearing string for next read
readString="";
//stopping client
client.stop();
} //if c == /n .... devo capire che significa
} // if client available
} // while client connesso
} // if client
} //loop
Collegandomi alla pagina web creata e cliccando sul dovuto pulsante, il relè a 5v mi scatta: il problema è che se a questo relè non collego nulla tutto funziona perfettamente, quando invece ad esso collego il relè a 220v dopo 2 o 3 click sul pulsante nella pagina web, la ethernet shield smette di funzionare... Qualcuno saprebbe spiegarmi perchè senza relè a 220v collegato tutto funziona bene e queando invece lo collego non funziona più?... Grazie mille a tutti...