int A = 6;
int B = 2;
int C = 3;
int D = 4;
Nice names for some pins.
pinMode(6, OUTPUT); //pin selected to control
Names? We don't need no steenking names!
(Yes, we do!)
if (readString.length() < 100) {
//store characters to string
readString += c;
//Serial.print(c);
}
Why limit the damage to 100 times? You've already shot your foot off using the String class. What's one more bullet going to do?
if((digitalRead(A)) == HIGH)
{
client.println("<a href=\"/?lightAoff\"\"><img src='http://www.shedbass.com/dtokez/buttons/off2.png'></a>
");
}
else if((digitalRead(A)) == LOW)
{
client.println("<a href=\"/?lightAon\"\"><img src='http://www.shedbass.com/dtokez/buttons/on2.png'></a>
");
}
If reading an OUTPUT pin doesn't result in HIGH, is there any possibility that the function will return something other than LOW?
Why are you reading from an OUTPUT pin? Surely you can (have the Arduino) remember what it set the pin to.
I'd suspect that you are running out of memory. Unpredictable things can happen when you are out of memory. The F() macro will cause all those massive literal strings from occupying both program memory (where they are OK) and SRAM (where they are not).
else{
if(readString.indexOf("?lightAoff") >0)//checks for off
Whyisn'tthisasimpleelseif?
(A subtle hint to use the space bar!)
What does your serial output show?