Arduino Ethernet-Problem

Gast #1981036
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
Angehängte Dateien:
Gast
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?
Gast
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,...
Gast
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
Gast
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!
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 15 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.