Salve. Mio zio mi ha regalato arduino 2009 con un ehternet shield e, dopo vari esercitazoni volevo fare qualcosa di più complesso. Con arduino volevo comandare da remoto 5 servo, ma ogni volta che che clicco su accendi o spegni, arduino inzia ad inviare codici distorti. Riuscite a tovare errori che "sicuramente" a me sono sfuggiti?
#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 177 };
byte gateway[] = { 192, 168, 1, 1 };
byte subnet[] = { 255, 255, 255, 0 };
EthernetServer server(80);
String readString
boolean Pollice = false;
boolean Indice = false;
boolean Medio = false;
boolean Anulare = false;
boolean Mignolo = false;
int angoloPollice = 0;
int angoloIndice = 0;
int angoloMedio = 0;
int angoloAnulare = 0;
int angoloMignolo = 0;
Servo myPollice;
Servo myIndice;
Servo myMedio;
Servo myAnulare;
Servo myMignolo;
void setup() {
Ethernet.begin(mac, ip, gateway, subnet);
Serial.begin(9600);
myPollice.attach(3);
myIndice.attach(5);
myMedio.attach(6);
myAnulare.attach(9);
myMignolo.attach(10);
}
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) {
Serial.print(readString);
if(readString.indexOf("A=1") > 0) {
angoloPollice = 180;
myPollice.write(angoloPollice);
Pollice = true;
delay(1);
}
else if(readString.indexOf("A=0") > 0) {
angoloPollice = 0;
myPollice.write(angoloPollice);
Pollice = false;
delay(1);
}
else if(readString.indexOf("B=1") > 0) {
angoloIndice = 180;
myIndice.write(angoloIndice);
Indice = true;
delay(1);
}
else if(readString.indexOf("B=0") > 0) {
angoloIndice = 180;
myIndice.write(angoloIndice);
Indice = false;
delay(1);
}
else if(readString.indexOf("C=1") > 0) {
angoloMedio = 180;
myMedio.write(angoloMedio);
Medio = true;
delay(1);
}
else if(readString.indexOf("C=0") > 0) {
angoloMedio = 0;
myPollice.write(angoloMedio);
Medio = false;
delay(1);
}
else if(readString.indexOf("D=1") > 0) {
angoloAnulare = 180;
myAnulare.write(angoloAnulare);
Anulare = true;
delay(1);
}
else if(readString.indexOf("D=0") > 0) {
angoloAnulare = 0;
myAnulare.write(angoloAnulare);
Anulare = false;
delay(1);
}
else if(readString.indexOf("E=1") > 0) {
angoloMignolo = 180;
myMignolo.write(angoloMignolo);
Mignolo = true;
delay(1);
}
else if(readString.indexOf("A=1") > 0) {
angoloMignolo = 0;
myMignolo.write(angoloMignolo);
Mignolo = false;
delay(1);
}
else {
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("<html><head><title>ARDUINO Controllo Mano via LAN</title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' ></head><body>");
client.println("<h1>Controllo della Mano Robotizzata</h1>");
client.println("<hr />");
client.println("<h1>Mano control</h1>");
client.println("
");
client.print("<span>Pollice: </span>");
if (Pollice) {
client.println("<span style='color:green'>ALTO</span>");
}
else {
client.println("<span style='color:red'>BASSO</span>");
}
client.print("<a href='/?A=1'>accendi!</a> | <a href='/?A=0'>spegni!</a>");
client.print("
");
client.print("<span>Indice: </span>");
if (Indice) {
client.println("<span style='color:green'>ALTO</span>");
}
else {
client.println("<span style='color:red'>BASSO</span>");
}
client.print("<a href='/?B=1'>accendi!</a> | <a href='/?B=0'>spegni!</a>");
client.print("
");
client.print("<span>Medio: </span>");
if (Medio) {
client.println("<span style='color:green'>ALTO</span>");
}
else {
client.println("<span style='color:red'>BASSO</span>");
}
client.print("<a href='/?C=1'>accendi!</a> | <a href='/?C=0'>spegni!</a>");
client.print("
");
client.print("<span>Anulare: </span>");
if (Anulare) {
client.println("<span style='color:green'>ALTO</span>");
}
else {
client.println("<span style='color:red'>BASSO</span>");
}
client.print("<a href='/?D=1'>accendi!</a> | <a href='/?D=0'>spegni!</a>");
client.print("
");
client.print("<span>Mignolo: </span>");
if (Mignolo) {
client.println("<span style='color:green'>ALTO</span>");
}
else {
client.println("<span style='color:red'>BASSO</span>");
}
client.print("<a href='/?E=1'>accendi!</a> | <a href='/?E=0'>spegni!</a>");
client.print("
");
client.println("<hr />");
client.println("</body></html>");
readString="";
client.stop();
}
}
}
}
}