// this code is ment to be used with Wifi RGB app. // Wirings for RGB led: // RED leg -> 220ohm -> arduino pin 3 // GRN leg -> 220ohm -> arduino pin 5 //BLU leg -> 220ohm -> arduino pin 6 // GND leg -> Arduino GND #include #include char inputBuffer[400]; int redVal = 0; int greenVal = 0; int blueVal = 0; int redPin = 3; int greenPin = 5; int bluePin = 6; int var1; int var2; byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDA, 0x02 }; IPAddress ip(192,168,0,100); //<<< ENTER YOUR IP ADDRESS HERE!!! EthernetServer server(80); // 80 is the default port void setup() { pinMode(2, OUTPUT); pinMode(redPin, OUTPUT); pinMode(greenPin, OUTPUT); pinMode(bluePin, OUTPUT); digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); // start the Ethernet connection and the server: Ethernet.begin(mac, ip); server.begin(); Serial.begin(9600); } void loop() { EthernetClient client = server.available(); if (client) { boolean currentLineIsBlank = true; while (client.connected()) { if (client.available()) { client.readBytes(inputBuffer, 400); Serial.println("Received from iPhone"); Serial.print(inputBuffer[5]); Serial.print(inputBuffer[6]); Serial.print(inputBuffer[7]); Serial.println(inputBuffer[8]); Serial.println(inputBuffer[6], DEC); if(inputBuffer[5] == '$'){ setLEDS(); } if(inputBuffer[5] == '&'){ if(inputBuffer[6] == 'o'){ fluctuation(); } if(inputBuffer[6] == 'p'){ longMixed(); } } break; delay(1); // close the connection: client.stop(); } } } } void setLEDS(void){ redVal = inputBuffer[6]-65; greenVal = inputBuffer[7]-65; blueVal = inputBuffer[8]-65; Serial.println(redVal, DEC); Serial.print("RED: "); Serial.println(redVal*15); Serial.print("GREEN: "); Serial.println(greenVal*15); Serial.print("BLUE: "); Serial.println(blueVal*15); analogWrite(redPin, redVal*15); analogWrite(greenPin, greenVal*15); analogWrite(bluePin, blueVal*15); return; } //**********FLUCTUATION SEQUENCE********************* void fluctuation(void){ digitalWrite(redPin , LOW); digitalWrite(greenPin, LOW); digitalWrite(bluePin, LOW); for(var2 = 0; var2 <= 3; var2++){ for(var1 = 0; var1 <=1; var1 ++){ for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); delay(50); } delay(50); for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); delay(50); } } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); // Green for(var1 = 0; var1 <=1; var1 ++){ for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(greenPin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(greenPin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(greenPin, fadeValue); delay(50); } delay(50); for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(greenPin, fadeValue); delay(50); } } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); // Blue for(var1 = 0; var1 <=1; var1 ++){ for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(bluePin, fadeValue); delay(50); } delay(50); for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(bluePin, fadeValue); delay(50); } } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); for(var1 = 0; var1 <=1; var1 ++){ // yellow for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue); delay(50); } delay(50); for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue); delay(50); } } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); for(var1 = 0; var1 <=1; var1 ++){ // White for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } delay(50); for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); for(var1 = 0; var1 <=2; var1 ++){ // GreBlu for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } delay(50); } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); for(var1 = 0; var1 <=2; var1 ++){ // GreBlu for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue/2); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue/2); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue/2); analogWrite(bluePin, fadeValue); delay(50); } delay(50); } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); for(var1 = 0; var1 <=2; var1 ++){ // GreBlu for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue/2); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue/2); analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue/2); analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } delay(50); } } digitalWrite(redPin, 255); digitalWrite(greenPin, 50); digitalWrite(bluePin, 255); return; } // ****************LONG MIXED SEQUENCE******************** //******************************************************** // ******************************************************* //******************************************************** void longMixed(void){ for(var2 = 0; var2 <= 10; var2++){ for(var1 = 0; var1 <=4; var1 ++){ for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); delay(50); } delay(50); for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); delay(50); } } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); // Green for(var1 = 0; var1 <=4; var1 ++){ for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(greenPin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(greenPin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(greenPin, fadeValue); delay(50); } delay(50); for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(greenPin, fadeValue); delay(50); } } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); // Blue for(var1 = 0; var1 <=4; var1 ++){ for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(bluePin, fadeValue); delay(50); } delay(50); for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(bluePin, fadeValue); delay(50); } } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); for(var1 = 0; var1 <=4; var1 ++){ // yellow for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue); delay(50); } delay(50); for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue); delay(50); } } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); for(var1 = 0; var1 <=4; var1 ++){ // White for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } delay(50); for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); for(var1 = 0; var1 <=4; var1 ++){ // GreBlu for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } delay(50); } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); for(var1 = 0; var1 <=2; var1 ++){ // GreBlu for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue/2); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue/2); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue); analogWrite(greenPin, fadeValue/2); analogWrite(bluePin, fadeValue); delay(50); } delay(50); } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); for(var1 = 0; var1 <=4; var1 ++){ // GreBlu for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue/2); analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, fadeValue/2); analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, fadeValue/2); analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue); delay(50); } delay(50); } digitalWrite(redPin, 0); digitalWrite(greenPin, 0); digitalWrite(bluePin, 0); for(var1 = 0; var1 <=4; var1 ++){ // GreBlu for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, 0.2*fadeValue); analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue/2); delay(50); } for(int fadeValue = 255 ; fadeValue >= 10; fadeValue -=5) { analogWrite(redPin, 0.2*fadeValue); analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue/2); delay(50); } for(int fadeValue = 10 ; fadeValue <= 255; fadeValue +=5) { analogWrite(redPin, 0.2*fadeValue); analogWrite(greenPin, fadeValue); analogWrite(bluePin, fadeValue/2); delay(50); } delay(50); } } digitalWrite(redPin, 255); digitalWrite(greenPin, 50); digitalWrite(bluePin, 255); return; }