Hi everyone ,
I am eray , I am doing projects with ethernet shields but I have a some problem about this job
first of all I have a rgb led and I must change color rgb led through internet
for example when I press "red led" at web page firstly, code will go to arduino through ethernet shield and rgb led is red.
then when I press "red led" at web page secondly,rgb led will close.
Blue and green colors will apply to same situation : When I press "green led" at web page firstly, code will go to arduino through ethernet shield and rgb led is green.
then when I press "red led" at web page secondly,rgb led will close etc... but I could not do it
by the way,
I created variable names "counter" and whenever I send code ,counter must increase one by one but counter increases three by three or two by two .I guess that after I send the code from web page, it sends another code to renovate web page .
what is your opinion about that?
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 177}; // IP address in LAN – need to change according to your Network address
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(80); //server port
String readString;
int redpin = 2;
int greenpin =3;
int bluepin= 4;
int counter=0;
void setup(){
pinMode(redpin,OUTPUT);
pinMode(greenpin,OUTPUT);
pinMode(bluepin,OUTPUT);
//start Ethernet
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
}
void loop(){
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
//read char by char HTTP request
if (readString.length() < 100) {
//store characters to string
readString += c;
}
//if HTTP request has ended– 0x0D is Carriage Return \n ASCII
if (c == 0x0D) {
client.println("HTTP/1.1 200 OK"); //send new page
client.println("Content-Type: text/html");
client.println();
client.println("<HTML>");
client.println("<HEAD>");
client.println("<TITLE> ARDUINO ETHERNET SHIELD</TITLE>");
client.println("</HEAD>");
client.println("<BODY>");
client.println("<hr>");
client.println("<hr>");
client.println("
");
client.println("<H1 style=\"color:green;\">ARDUINO ETHERNET SHIELD — LED ON/OFF FROM WEBPAGE</H1>");
client.println("<hr>");
client.println("
");
client.println("<H2><a href=\"/?redledon\"\">Turn On Red Led</a>
</H2>");
client.println("<H2><a href=\"/?greenledon\"\">Turn On Green Led</a>
</H2>");
client.println("<H2><a href=\"/?blueledon\"\">Turn On Blue Led</a>
</H2>");
client.println("</BODY>");
client.println("</HTML>");
delay(10);
//stopping client
client.stop();
counter=counter+1;
// control arduino pin
if(readString.indexOf("?redledon") > 0) //checks for red led on
{
while(counter==1)
{
digitalWrite(redpin, HIGH); // set pin HIGH
digitalWrite(greenpin, LOW); // set pin LOW
digitalWrite(bluepin, LOW); // set pin LOW
}
while(counter==2)
{
digitalWrite(redpin, LOW); // set pin HIGH
digitalWrite(greenpin, HIGH); // set pin LOW
digitalWrite(bluepin, LOW); // set pin LOW
delay(5000);
counter=0; // for counter reset
}
}
else if(readString.indexOf("?greenledon") > 0) //checks for green led on
{ while(counter==1)
{
digitalWrite(redpin, LOW); // set pin LOW
digitalWrite(greenpin, HIGH); // set pin HIGH
digitalWrite(bluepin, LOW); // set pin LOW
}
while(counter==2)
{
digitalWrite(redpin, LOW); // set pin HIGH
digitalWrite(greenpin, HIGH); // set pin LOW
digitalWrite(bluepin, LOW); // set pin LOW
delay(5000);
counter=0; // for counter reset
}
}
else if(readString.indexOf("?blueledon") > 0) //checks for blue led on
{
while(counter==1)
{
digitalWrite(redpin, LOW); // set pin LOW
digitalWrite(greenpin, LOW); // set pin LOW
digitalWrite(bluepin, HIGH); // set pin HIGH
}
while(counter==2)
{
digitalWrite(redpin, LOW); // set pin HIGH
digitalWrite(greenpin, HIGH); // set pin LOW
digitalWrite(bluepin, LOW); // set pin LOW
delay(5000);
counter=0; // for counter reset
}
}
//clearing string for next read
readString="";
}
}
}
}
}
ethernetshiledrgb.ino (5.54 KB)