/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int red1 = 4; int green1 = 3; int blue1 = 2; int red2 = 7; int green2 = 6; int blue2 = 5; int red3 = 10; int green3 = 9; int blue3 = 8; int red4 = 13; int green4 = 12; int blue4 = 11; int red5 = 16; int green5 = 15; int blue5 = 14; //one more for enabling the head int enable = 17; // the setup routine runs once when you press reset: void setup() { Serial.begin(9600); // initialize the digital pin as outputs. pinMode(red1, OUTPUT); pinMode(green1, OUTPUT); pinMode(blue1, OUTPUT); pinMode(red2, OUTPUT); pinMode(green2, OUTPUT); pinMode(blue2, OUTPUT); pinMode(red3, OUTPUT); pinMode(green3, OUTPUT); pinMode(blue3, OUTPUT); pinMode(red4, OUTPUT); pinMode(green4, OUTPUT); pinMode(blue4, OUTPUT); pinMode(red5, OUTPUT); pinMode(green5, OUTPUT); pinMode(blue5, OUTPUT); pinMode(enable, OUTPUT); digitalWrite(red1, HIGH); digitalWrite(green1, HIGH); digitalWrite(blue1, HIGH); digitalWrite(red2, HIGH); digitalWrite(green2, HIGH); digitalWrite(blue2, HIGH); digitalWrite(red3, HIGH); digitalWrite(green3, HIGH); digitalWrite(blue3, HIGH); digitalWrite(red4, HIGH); digitalWrite(green4, HIGH); digitalWrite(blue4, HIGH); digitalWrite(red5, HIGH); digitalWrite(green5, HIGH); digitalWrite(blue5, HIGH); digitalWrite(enable, LOW); } // the loop routine runs over and over again forever: void loop() { //temp variables for color data while (Serial.available() > 0) { int user1 = Serial.parseInt(); int user2 = Serial.parseInt(); int user3 = Serial.parseInt(); int user4 = Serial.parseInt(); int user5 = Serial.parseInt(); int enablein = Serial.parseInt(); Serial.print(user1); Serial.print(", "); Serial.print(user2); Serial.print(", "); Serial.print(user3); Serial.print(", "); Serial.print(user4); Serial.print(", "); Serial.print(user5); Serial.print(", "); Serial.println(enablein); if (Serial.read() == '\n') { SetColor(1, user1); SetColor(2, user2); SetColor(3, user3); SetColor(4, user4); SetColor(5, user5); Serial.println("accepted"); if (enablein == HIGH) { digitalWrite(enable, HIGH); } else { digitalWrite(enable, LOW); } } } if (enable == HIGH) { SetColor(1, 6); SetColor(2, 6); SetColor(3, 6); SetColor(4, 6); SetColor(5, 6); } } //easily send color data to each user void SetColor(int user, int color) { int red, green, blue; //set the pins for the correct user switch (user) { case 1: red = red1; blue = blue1; green = green1; break; case 2: red = red2; blue = blue2; green = green2; break; case 3: red = red3; blue = blue3; green = green3; break; case 4: red = red4; blue = blue4; green = green4; break; default: red = red5; blue = blue5; green = green5; break; } //colors: zero=off, 1=red, 2=green, 3=blue, 4=orange, 5=pink, >5=flash switch (color) { case 0: digitalWrite(red, HIGH); digitalWrite(green, HIGH); digitalWrite(blue, HIGH); break; case 1: digitalWrite(red, LOW); digitalWrite(green, HIGH); digitalWrite(blue, HIGH); break; case 2: digitalWrite(red, HIGH); digitalWrite(green, LOW); digitalWrite(blue, HIGH); break; case 3: digitalWrite(red, HIGH); digitalWrite(green, HIGH); digitalWrite(blue, LOW); break; case 4: digitalWrite(red, LOW); digitalWrite(green, LOW); digitalWrite(blue, LOW); break; case 5: digitalWrite(red, LOW); digitalWrite(green, HIGH); digitalWrite(blue, LOW); break; default: digitalWrite(red, LOW); delay(60); digitalWrite(red, HIGH); delay(10); digitalWrite(blue, LOW); delay(60); digitalWrite(blue, HIGH); delay(10); digitalWrite(green, LOW); delay(60); digitalWrite(green, HIGH); break; } }