Bonjour,
Ce petit topic pour vous soumettre un probleme qui est en train de me rendre fou:
Materiel: carte Duemilanove avec un shield Ethernet DFRobot (W5100)
Je veut piloter des sorties digital via une pages web (bouton ON/OFF) embarquer dans la carte, tous fonctionne bien avec 4 bouton ON/OFF et qd je rajoute un 5eme bouton la page web ne veu plus ce charger.
Voila mon code ce sera plus parlant:
Dès que je met dans le 5eme bouton L = 109 ou 110, plantage.
Merci d'avance pour votre aide.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 172, 16, 1, 150 };
byte gateway[] = { 172, 16, 1, 1 };
byte subnet[] = { 255, 255, 0, 0 };
Server server(80);
int Out1 = 1;
int Out2 = 2;
int Out3 = 3;
int Out4 = 5;
int Out5 = 6;
int Out6 = 7;
int Out7 = 8;
String readString = String(); //string for fetching data from address
String ValeurL;
void setup(){
Ethernet.begin(mac, ip, gateway, subnet);
pinMode(Out1, OUTPUT);
pinMode(Out2, OUTPUT);
pinMode(Out3, OUTPUT);
pinMode(Out4, OUTPUT);
pinMode(Out5, OUTPUT);
pinMode(Out6, OUTPUT);
pinMode(Out7, OUTPUT);
digitalWrite(Out1, HIGH);
digitalWrite(Out2, HIGH);
digitalWrite(Out3, HIGH);
digitalWrite(Out4, HIGH);
digitalWrite(Out5, HIGH);
digitalWrite(Out6, HIGH);
digitalWrite(Out7, HIGH);
Serial.begin(9600);
}
void loop(){
// Create a client connection
Client client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.println(c);
if (readString.length() < 30)
{
readString.concat(c);
}
if (c == '\n') {
Serial.println(readString);
ValeurL = readString.substring (8,11);
if(ValeurL == 101)
{
digitalWrite(Out1, LOW); // set the LED on
Serial.println("Switch 1 = ON");
}
if(ValeurL == 102)
{
digitalWrite(Out1, HIGH); // set the LED OFF
Serial.println("Switch 1 = OFF");
}
if(ValeurL == 103)
{
digitalWrite(Out2, LOW); // set the LED on
Serial.println("Switch 2 = ON");
}
if(ValeurL == 104)
{
digitalWrite(Out2, HIGH); // set the LED OFF
Serial.println("Switch 2 = OFF");
}
if(ValeurL == 105)
{
digitalWrite(Out3, LOW); // set the LED on
Serial.println("Switch 3 = ON");
}
if(ValeurL == 106)
{
digitalWrite(Out3, HIGH); // set the LED OFF
Serial.println("Switch 3 = OFF");
}
if(ValeurL == 107)
{
digitalWrite(Out4, LOW); // set the LED on
Serial.println("Switch 4 = ON");
}
if(ValeurL == 108)
{
digitalWrite(Out4, HIGH); // set the LED OFF
Serial.println("Switch 4 = OFF");
}
if(ValeurL == 1)
{
digitalWrite(Out5, LOW); // set the LED OFF
Serial.println("Switch 5 = ON");
}
if(ValeurL == 2)
{
digitalWrite(Out5, HIGH); // set the LED OFF
Serial.println("Switch 5 = OFF");
}
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println();
client.println("<body BGCOLOR=#C0C0C0><h1><center>Home Controler</h1>");
client.print("<table><tr><td>Sw 1</td><td>Sw 2</td><td>Sw 3</td><td>Sw 4</td><td>Sw 5</td><td>Sw 6</td><td>Sw 7</td></tr>");
client.print("<tr>");
client.print("<td><form method=get name=LED><input type=hidden name=L value=101><input type=submit value=ON></form></td>");
client.print("<td><form method=get name=LED><input type=hidden name=L value=103><input type=submit value=ON></form></td>");
client.print("<td><form method=get name=LED><input type=hidden name=L value=105><input type=submit value=ON></form></td>");
client.print("<td><form method=get name=LED><input type=hidden name=L value=107><input type=submit value=ON></form></td>");
client.print("<td><form method=get name=LED><input type=hidden name=L value=107><input type=submit value=ON></form></td>");
client.print("</tr>");
client.print("<tr>");
client.print("<td><form method=get name=LED><input type=hidden name=L value=102><input type=submit value=OFF></form></td>");
client.print("<td><form method=get name=LED><input type=hidden name=L value=104><input type=submit value=OFF></form></td>");
client.print("<td><form method=get name=LED><input type=hidden name=L value=106><input type=submit value=OFF></form></td>");
client.print("<td><form method=get name=LED><input type=hidden name=L value=108><input type=submit value=OFF></form></td>");
client.print("<td><form method=get name=LED><input type=hidden name=L value=108><input type=submit value=OFF></form></td>");
client.print("</tr>");
client.print("</tr></table>");
client.print("<font size='5'>
Sw1: ");
if ( digitalRead(Out1) == 0){
client.println("<font color='green' size='5'>ON</font>");
} else {
client.println("<font color='grey' size='5'>OFF</font>");
}
client.print("<font size='5'>
Sw2: ");
if ( digitalRead(Out2) == 0 ){
client.println("<font color='green' size='5'>ON</font>");
} else {
client.println("<font color='grey' size='5'>OFF</font>");
}
client.print("<font size='5'>
Sw3: ");
if ( digitalRead(Out3) == 0){
client.println("<font color='green' size='5'>ON</font>");
} else {
client.println("<font color='grey' size='5'>OFF</font>");
}
client.print("<font size='5'>
Sw4: ");
if ( digitalRead(Out4) == 0 ){
client.println("<font color='green' size='5'>ON</font>");
} else {
client.println("<font color='grey' size='5'>OFF</font>");
}
client.print("<font size='5'>
Sw5: ");
if ( digitalRead(Out5) == 0 ){
client.println("<font color='green' size='5'>ON</font>");
} else {
client.println("<font color='grey' size='5'>OFF</font>");
}
client.print("<font size='5'>
Sw6: ");
if ( digitalRead(Out6) == 0 ){
client.println("<font color='green' size='5'>ON</font>");
} else {
client.println("<font color='grey' size='5'>OFF</font>");
}
client.print("<font size='5'>
Sw7: ");
if ( digitalRead(Out7) == 0 ){
client.println("<font color='green' size='5'>ON</font>");
} else {
client.println("<font color='grey' size='5'>OFF</font>");
}
Serial.println(digitalRead(Out1));
Serial.println(digitalRead(Out2));
Serial.println(digitalRead(Out3));
Serial.println(digitalRead(Out4));
client.println("</body></html>");
//clearing string for next read
readString="";
client.stop();
}
}
}
}
}
Edit de Jean-François : Merci de mettre les balise "code".