Forum: Mikrocontroller und Digitale Elektronik Arduino Ethernet-Problem


von Ben (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe folgendes Beispiel
http://jleopold.de/wp-content/uploads/2010/10/Arduino_Webserver.txt
von Seite http://goo.gl/jwtbD getestet, funktioniert tadellos.

Nun wollte ich es testweise um einen zusätzliche Buttons erweitern, das 
funktionierte dann nicht mehr.

Ich habe dazu den Code zwischen "client.println("<tr 
bgColor='#222222'>");"
und "client.println("</tr>");" nach der if-else Abfrage dupliziert, 
angepasst und
auch die Funktion oben "if(readString.indexOf("3=einschalten") > -1) 
{...." erweitert.

Nichts geht und ich finde das Problem nicht.

File hab ich mal in den Anhang gepackt



Ich hab die Frage auch schon im dortigen Forum gestellt, warte aber noch 
auf die Zugangsdaten (ohne diese erscheint die Frage nicht im Forum), so 
das ich hier mal anfrage.


Danke Ben

von Verwirrter Anfänger (Gast)


Lesenswert?

Hi,
was bedeutet "nichts geht" ?
Kompiliert der Code nicht und es kommt eine Fehlermeldung?
Kompiliert der Code aber du kommst nicht auf die Webseite?
Kompiliert der Code, du kommst auf dei Webseite aber die Schalter 
funktionieren nicht?
Kompiliert der Code, du kommst auf die Webseite und alle Schalter bis 
auf den Schalter 5 funktionieren?

Wenn der Code kompiliert, bekommst du Ausgaben über die Serielle 
Schnittstelle?

von Ben (Gast)


Lesenswert?

Ich komme nicht auf den Server und auch keine Ausgabe auf RS232.

Wenn ich anderes Button-Paar (gemeint ist die Reihemit ein/aus Button) 
und deren Funktion auskommentiere, dann funktioniert auch mein 
Codeerweiterung.

Button-Paar A,B,C.

A+B ok, A+C ok, B+C ok, aber nicht A+B+C.

Es funktioniert immer nur mit 2 Buttonpaaren, nicht mit 3,4,...

von Verwirrter Anfänger (Gast)


Lesenswert?

Meine Vermutung ist, das du nicht genug Speicher für die ganzen Strings 
hast.

Versuch mal den Text zu kürzen, z.B. aus:
1
client.println("<tr bgColor='#222222'>");
2
3
 client.println("<td bgcolor='#222222'><font face='Verdana' color='#CFCFCF' size='2'>Ausgang 4<br></font></td>");
4
 
5
 client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=4 value='einschalten'></form></td>");
6
 
7
 client.println("<td align='center' bgcolor='#222222'><form method=get><input type=submit name=4 value='ausschalten'></form></td>");
1
client.println("<tr>");
2
3
 client.println("<td>Ausgang 4<br></td>");
4
 
5
 client.println("<td align='center'><form method=get><input type=submit name=4 value='on'></form></td>");
6
 
7
 client.println("<td align='center'><form method=get><input type=submit name=4 value='off'></form></td>");

zu machen und aus:
1
 if(readString.indexOf("4=ausschalten")
1
 if(readString.indexOf("4=off")

wenn du das konsequent machst, könnte das alles schon wieder 
funktionieren, danach kannst du ja gucken, wie du das html schön machst.

Grundsätzlich könnte es Sinn machen den ganzen statischen Text mit Hilfe 
von http://arduiniana.org/libraries/flash/ im Flash zu speichern.

und nur nebenbei hier ist noch ein kleiner Bug drin:
1
          if(readString.indexOf("all=Alles+aus") > -1){
2
            digitalWrite(Pin3, LOW);
3
            digitalWrite(Pin4, LOW);
4
            digitalWrite(Pin4, LOW);
5
            Serial.println("Alles ausgeschaltet");
6
            Pin3ON = false;
7
            Pin4ON = false;
8
            Pin5ON = false;
9
          }

du schaltest Pin4 2 mal aus, und dafür Pin5 gar nicht

von Ben (Gast)


Lesenswert?

Jo, jetzt gehts.

Scheint doch der Speicher zu knapp zu sein.

Leider sieht das Ganze jetzt nicht mehr so augenfreundlich aus wie das 
Beispiel.


Danke für die Hilfe!

von Verwirrter Anfänger (Gast)


Lesenswert?

Wenn du irgendwo anders Platz hast (eigener Server, Webhoster, etc), 
dann würde ich die einzelnen tags nur mit CSS Klassen machen, und das 
style sheet auslagern. Dann kannst du das so schön machen, wie du willst 
und verbrauchst trotzdem kaum Platz auf dem Arduino.

Ausserdem könntest du den HTML Code für die einzelnen Schalter in einer 
Schleife erstellen, dann bräuchtest du den ganzen Text nur einmal, und 
hast das Ganze gleich auf 1/5 reduziert.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.