Ciao a tutti,
sto provando ad accendere dei LED attraverso la Ethernet Shield usando un codice trovato in rete:
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0x00, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192, 168, 1, 150 };
Server server(80);
String readString = String(30);
void setup(){
Ethernet.begin(mac, ip);
pinMode(2, OUTPUT); digitalWrite(2, LOW); // led 2
pinMode(3, OUTPUT); digitalWrite(3, LOW); // acts a ground
pinMode(4, OUTPUT); digitalWrite(4, LOW); // led 4
pinMode(5, OUTPUT); digitalWrite(5, LOW); // acts a ground
pinMode(6, OUTPUT); digitalWrite(6, LOW); // led 6
pinMode(7, OUTPUT); digitalWrite(7, LOW); // acts a ground
pinMode(8, OUTPUT); digitalWrite(8, LOW); // led 8
pinMode(9, OUTPUT); digitalWrite(9, LOW); // acts a ground
}
void loop(){
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100){
readString.append(c);
}
if (c == '\n') {
if(readString.contains("led2")) {
toggle(2);
} else if(readString.contains("led4")) {
toggle(4);
} else if(readString.contains("led6")) {
toggle(6);
} else if(readString.contains("led8")) {
toggle(8);
}
}
//LEDS
if(readString.contains("led")){
client.println("<html><center>");
client.println("Light 2
");
if (digitalRead(2) == LOW){
client.println("OFF");
} else if (digitalRead(2) == HIGH){
client.println("ON");
}
client.println("<form method='get'><input type=submit name=led2 value=toggle></form>");
client.println("Light 4
");
if (digitalRead(4) == LOW){
client.println("OFF");
} else if (digitalRead(4) == HIGH){
client.println("ON");
}
client.println("<form method='get'><input type=submit name=led4 value=toggle></form>");
client.println("Light 6
");
if (digitalRead(6) == LOW){
client.println("OFF");
} else if (digitalRead(6) == HIGH){
client.println("ON>");
}
client.println("<form method='get'><input type=submit name=led6 value=toggle></form>");
client.println("Light 8
");
if (digitalRead(8) == LOW){
client.println("OFF");
} else if (digitalRead(8) == HIGH){
client.println("ON");
}
client.println("<form method='get'><input type=submit name=led8 value=toggle></form>");
client.println("</center></html>");
}
readString="";
client.stop();
}
}
}
}}
}
int toggle(int pin){
if(digitalRead(pin) == LOW){
digitalWrite(pin, HIGH);
} else {
digitalWrite(pin, LOW);
}
}
Se non ho capito male nella versione 0019 WString è incluso "di serie" (premetto che nella cartella libraries io non ho la libreria) e quindi non serve neppure includere la libreria..sbaglio?
Comunque se non includo la libreria in compilazione mi restituisce questi errori:
ethhome2.cpp: In function 'void loop()':
ethhome2:27: error: 'class String' has no member named 'append'
ethhome2:30: error: 'class String' has no member named 'contains'
ethhome2:32: error: 'class String' has no member named 'contains'
ethhome2:34: error: 'class String' has no member named 'contains'
ethhome2:36: error: 'class String' has no member named 'contains'
ethhome2:41: error: 'class String' has no member named 'contains'
ethhome2.cpp: At global scope:
ethhome2:80: error: expected declaration before '}' token
Grazie per l'aiuto..sto impazzendo con queste stringhe!!! >:(