C'è anche della roba in più.
La funzione "stato grigliatore" non la utilizzo.
Uso solo la "muovi bottoni".
#include <SPI.h>
#include <Ethernet.h>
#define out_A 7
#define out_B 8
#define buttonPin 13 // controllo lo stato del grigliaotre
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,1, 20 };
byte gateway[] = { 192,168,1, 1 };
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server(23);
boolean gotAMessage = false;
boolean buttA = false;
boolean buttB = false;
boolean grigliatore = false;
int buttonState = 0; // current state of the button
void setup()
{
pinMode(out_A,OUTPUT);
pinMode(out_B,OUTPUT);
pinMode(buttonPin, INPUT);
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Serial.begin(57600);
}
void loop()
{
// telnet is sending us ASCII char bytes:
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {grigliatore = true;}
else
if (buttonState == LOW) {grigliatore = false;}
boolean validCommand = 0;
char inputChar, speedString[2];
EthernetClient client = server.available();
if (client) {
if (!gotAMessage) {
Serial.println("connected to telnet client");
//client.println("Conn");
gotAMessage = true;
}
if (server.available() > 0) { // 5 characters in each command
inputChar = client.read();
//Serial.println(inputChar);
if (inputChar == 'A') {buttA = true;muovi_bottoni();client.println("-A---");}
else if (inputChar == 'B') {buttB = true;muovi_bottoni();client.println("-B---");}
else if (inputChar == 'C') {rispondi_stato_grigliatore();}
}
buttA = false;
buttB = false;
}
}
void muovi_bottoni()
{
Serial.println("Sono nella funzione");
EthernetClient client = server.available();
if (buttA == true) {digitalWrite(out_A,HIGH);delay(1000);digitalWrite(out_A,LOW);Serial.println("Muovo A");}
else if (buttB == true) {digitalWrite(out_B,HIGH);delay(1000);digitalWrite(out_B,LOW);Serial.println("Muovo B");}
}
void rispondi_stato_grigliatore()
{
Serial.println("Sono nella funzione STATO GRIGLIATORE");
Serial.println(grigliatore);
EthernetClient client = server.available();
client.println(grigliatore);
}