ciao a tutti!
Ultimamente mi trovo in difficoltà, non riesco a cambiare stato ad un pin dopo tot secondi che è attivo, faccio un esempio se ho il pin 12 su high dopo 5 secondi che e in high vorrei portarlo su low
In pratica vorrei eliminare i delay presenti nello sketch che fanno andare a scatti tutto il programma qui sotto, sostituendoli con la funzione millis ma non so come fare
grazie mille a tutti in anticipo.
di seguito vi posto lo sketch
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = {
192, 168, 0, 199 };
byte subnet[] = {
255, 255, 255, 0 };
EthernetServer server(80);
String readString;
byte out_1 = 22;
byte out_2 = 24;
byte out_3 = 26;
int input_1 = 23;
int input_2 = 25;
int input_3 = 27;
int val=0;
void setup()
{
Ethernet.begin(mac, ip);
pinMode(out_1, OUTPUT);
pinMode(out_2, OUTPUT);
pinMode(out_3, OUTPUT);
pinMode(13, OUTPUT);
pinMode(input_1, INPUT);
pinMode(input_2, INPUT);
pinMode(input_3, INPUT);
}
void loop(){
EthernetClient client = server.available();
if (client) {
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
readString.concat(c);
if (c == '\n' && currentLineIsBlank) {
if(readString.indexOf("on_1") > 0) digitalWrite(out_1, HIGH);
delay(100);
digitalWrite(out_1, LOW);
if(readString.indexOf("on_2") > 0) digitalWrite(out_2, HIGH);
delay(100);
digitalWrite(out_2, LOW);
if(readString.indexOf("on_3") > 0) digitalWrite(out_3, HIGH);
delay(100);
digitalWrite(out_3, LOW);
// PAGINA HTML
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("ARDUINO Controllo WEB");
client.print("
");
client.print("Controllo domotico casa (BY Manuel)");
client.print("
");
//controllo relè1
client.print("
");
if(digitalRead(22)== true) client.println("");
else client.println("");
client.println("
");
client.print("--- LUCE - CORRIDOIO");
val=digitalRead(input_1);
if(val==HIGH) {
client.print("....ON");
}
else{
client.print("....OFF");
}
client.println("
");
client.print("
");
if (digitalRead(24)== true) client.println("");
else client.println("");
client.println("
");
client.print("--- LUCE - SALA");
val=digitalRead(input_2);
if(val==HIGH) {
client.print("....ON");
}
else{
client.print("....OFF");
}
client.println("
");
client.print("
");
if (digitalRead(26)== true) client.println("");
else client.println("");
client.println("
");
client.print("--- LUCE - CAMERA");
val=digitalRead(input_3);
if(val==HIGH) {
client.print("....ON");
}
else{
client.print("....OFF");
}
client.println("
");
client.println("");
readString="";
delay(5);
client.flush();
client.stop();
}
}
}
}
}