|  | //
 | 
  
    |  | // By Kyle McDonald
 | 
  
    |  | // From the instructables project at:
 | 
  
    |  | // http://www.instructables.com/id/DIY-3D-Controller/
 | 
  
    |  | 
 | 
  
    |  | #define resolution 8
 | 
  
    |  | #define mains 50 // 60: north america, japan; 50: most other places
 | 
  
    |  | 
 | 
  
    |  | #define refresh 2 * 1000000 / mains
 | 
  
    |  | 
 | 
  
    |  | const long V_GRUNN = 5845;
 | 
  
    |  | 
 | 
  
    |  | const long B_GRUNN = 6090;
 | 
  
    |  | 
 | 
  
    |  | const long H_GRUNN = 5845;
 | 
  
    |  | 
 | 
  
    |  | void setup() {
 | 
  
    |  |   Serial.begin(9600);
 | 
  
    |  |   
 | 
  
    |  | 
 | 
  
    |  |   // Utgangar fyrir LED
 | 
  
    |  |   // settir i LOW
 | 
  
    |  |   for(int i = 0; i < 14; i++) {
 | 
  
    |  |     pinMode(i, OUTPUT);
 | 
  
    |  |     digitalWrite(i, LOW);
 | 
  
    |  |   }
 | 
  
    |  | 
 | 
  
    |  |   // Inngangar fra thettum
 | 
  
    |  |   for(int i = 8; i < 11; i++) {
 | 
  
    |  |     pinMode(i, INPUT);
 | 
  
    |  |     digitalWrite(i, HIGH);
 | 
  
    |  |   }
 | 
  
    |  | 
 | 
  
    |  |     pinMode(A0, OUTPUT); // Breyta Analog inputs to Digital
 | 
  
    |  |     digitalWrite(A0, HIGH); // Jord fyrir 1 haed
 | 
  
    |  |     pinMode(A1, OUTPUT);
 | 
  
    |  |     digitalWrite(A1, HIGH); // Jord fyrir 2 haed
 | 
  
    |  |     pinMode(A2, OUTPUT);
 | 
  
    |  |     digitalWrite(A2, HIGH); // Jord fyrir 3 haed
 | 
  
    |  |      pinMode(A3, OUTPUT);
 | 
  
    |  |     digitalWrite(A3, LOW); // utgangur led
 | 
  
    |  |     pinMode(A4, OUTPUT);
 | 
  
    |  |     digitalWrite(A4, LOW); // utgangur led
 | 
  
    |  |     pinMode(A5, OUTPUT);
 | 
  
    |  |     digitalWrite(A5, LOW); // utgangur led
 | 
  
    |  |  
 | 
  
    |  |   startTimer();
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | void loop() {  
 | 
  
    |  |   long V, B, H;
 | 
  
    |  |   long temp = 0;
 | 
  
    |  |   
 | 
  
    |  |   for(int i = 0; i < 4; i++)
 | 
  
    |  |   {
 | 
  
    |  |     V = time(8, B00000001);
 | 
  
    |  |     temp = temp + V;
 | 
  
    |  |   }
 | 
  
    |  |   temp = temp/4;
 | 
  
    |  |   V = temp;
 | 
  
    |  |   temp = 0;
 | 
  
    |  |   
 | 
  
    |  |   Serial.print("V ");
 | 
  
    |  |   Serial.print(V, DEC);
 | 
  
    |  | 
 | 
  
    |  |   for(int i = 0; i < 4; i++)
 | 
  
    |  |   {
 | 
  
    |  |     B = time(9, B00000010);
 | 
  
    |  |     temp = temp + B;
 | 
  
    |  |   }
 | 
  
    |  |   temp = temp/4;
 | 
  
    |  |   B = temp;
 | 
  
    |  |   temp = 0;
 | 
  
    |  | 
 | 
  
    |  |   Serial.print(" B ");
 | 
  
    |  |   Serial.print(B, DEC);
 | 
  
    |  | 
 | 
  
    |  |   for(int i = 0; i < 4; i++)
 | 
  
    |  |   {
 | 
  
    |  |     H = time(10, B00000100);
 | 
  
    |  |     temp = temp + H;
 | 
  
    |  |   }
 | 
  
    |  |   temp = temp/4;
 | 
  
    |  |   H = temp;
 | 
  
    |  |   temp = 0;
 | 
  
    |  |     
 | 
  
    |  |   Serial.print(" H ");
 | 
  
    |  |   Serial.print(H, DEC);
 | 
  
    |  |   Serial.print('\n');
 | 
  
    |  |  // delay(500);
 | 
  
    |  | 
 | 
  
    |  |   // HAED 1
 | 
  
    |  |   //LED 1.1
 | 
  
    |  |  if(V > 6080 && B > 6350 && (5850 < H && H < 5900)){
 | 
  
    |  |     digitalWrite(2, HIGH);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, LOW);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |     
 | 
  
    |  |  }
 | 
  
    |  |  //LED 1.2
 | 
  
    |  |  else if(V > 6080 && B > 6350 && (5900 < H && H < 6000)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, HIGH);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |      
 | 
  
    |  |     digitalWrite(A0, LOW);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |     
 | 
  
    |  |  }
 | 
  
    |  |   //LED 1.3
 | 
  
    |  |  else if(V > 6080 && B > 6350 && H > 6000){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, HIGH);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, LOW);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  | 
 | 
  
    |  |   //LED 1.4
 | 
  
    |  |  else if((V > 5930 && V < 6080) && B > 6350 && (5850 < H && H < 5900)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, HIGH); 
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, LOW);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  | 
 | 
  
    |  | //LED 1.5
 | 
  
    |  |  else if((V > 5930 && V < 6080) && B > 6350 && (5900 < H && H < 6000)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, HIGH);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, LOW);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  | 
 | 
  
    |  | //LED 1.6
 | 
  
    |  |  else if((V > 5930 && V < 6080) && B > 6350 && H > 6000){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, HIGH);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, LOW);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  |  
 | 
  
    |  | //LED 1.7
 | 
  
    |  |  else if((V > 5850 && V < 5930) && B > 6350 && (5850 < H && H < 5900)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, HIGH);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, LOW);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  |  
 | 
  
    |  | //LED 1.8
 | 
  
    |  |  else if((V > 5850 && V < 5930) && B > 6350 && (5900 < H && H < 6000)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, HIGH);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, LOW);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  |  
 | 
  
    |  | //LED 1.9
 | 
  
    |  |  else if((V > 5850 && V < 5930) && B > 6350 && H > 6000){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, HIGH);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, LOW);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  | 
 | 
  
    |  |  // HAED 2
 | 
  
    |  |  
 | 
  
    |  |  //LED 2.1
 | 
  
    |  |  else if(V > 6085 && (B > 6150 && B < 6350) && (5850 < H && H < 5900)){
 | 
  
    |  |     digitalWrite(2, HIGH);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, LOW);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  | //LED 2.2
 | 
  
    |  |  else if(V > 6085 && (B > 6150 && B < 6350) && (5900 < H && H < 6000)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, HIGH);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, LOW);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  | //LED 2.3
 | 
  
    |  |  else if(V > 6085 && (B > 6150 && B < 6350) && H > 6000){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, HIGH);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, LOW);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  | //LED 2.4
 | 
  
    |  |  else if((V > 5900 && V < 6085) && (B > 6150 && B < 6350) && (5850 < H && H < 5900)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, HIGH);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, LOW);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  | //LED 2.5
 | 
  
    |  |  else if((V > 5900 && V < 6085) && (B > 6150 && B < 6350) && (5900 < H && H < 6000)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, HIGH);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, LOW);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  | //LED 2.6
 | 
  
    |  |  else if((V > 5900 && V < 6085) && (B > 6150 && B < 6350) && H > 6000){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, HIGH);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, LOW);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  | //LED 2.7
 | 
  
    |  |  else if((V > 5850 && V < 5900) && (B > 6150 && B < 6350) && (5850 < H && H < 5900)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, HIGH);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, LOW);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  |  //LED 2.8
 | 
  
    |  |  else if((V > 5850 && V < 5900) && (B > 6150 && B < 6350) && (5900 < H && H < 6000)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, HIGH);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, LOW);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  |  //LED 2.9
 | 
  
    |  |  else if((V > 5850 && V < 5900) && (B > 6150 && B < 6350) && H > 6000){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, HIGH);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, LOW);
 | 
  
    |  |     digitalWrite(A2, HIGH);
 | 
  
    |  |  }
 | 
  
    |  | 
 | 
  
    |  |  //HAED 3
 | 
  
    |  |  
 | 
  
    |  |  //LED 3.1
 | 
  
    |  |  else if(V > 6090 && (B > 6091 && B < 6150) && (5850 < H && H < 5900)){
 | 
  
    |  |     digitalWrite(2, HIGH);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, LOW);
 | 
  
    |  |  }
 | 
  
    |  |   //LED 3.2
 | 
  
    |  |  else if(V > 6090 && (B > 6091 && B < 6150) && (5900 < H && H < 6000)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, HIGH);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, LOW);
 | 
  
    |  |  }
 | 
  
    |  | //LED 3.3
 | 
  
    |  |  else if(V > 6090 && (B > 6091 && B < 6150) && H > 6000){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, HIGH);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, LOW);
 | 
  
    |  |  }
 | 
  
    |  | //LED 3.4
 | 
  
    |  |  else if((V > 5930 && V < 6090) && (B > 6091 && B < 6150) && (5850 < H && H < 5900)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, HIGH); 
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, LOW);
 | 
  
    |  |  }
 | 
  
    |  | //LED 3.5
 | 
  
    |  |  else if((V > 5930 && V < 6090) && (B > 6091 && B < 6150) && (5900 < H && H < 6000)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, HIGH);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, LOW);
 | 
  
    |  |  }
 | 
  
    |  |   //LED 3.6
 | 
  
    |  |  else if((V > 5930 && V < 6090) && (B > 6091 && B < 6150) && H > 6000){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, HIGH);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, LOW);
 | 
  
    |  |  }
 | 
  
    |  |   //LED 3.7
 | 
  
    |  |  else if((V > 5850 && V < 5930) && (B > 6091 && B < 6150) && (5850 < H && H < 5900)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, HIGH);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, LOW);
 | 
  
    |  |  }
 | 
  
    |  |   //LED 3.8
 | 
  
    |  |  else if((V > 5850 && V < 5930) && (B > 6091 && B < 6150) && (5900 < H && H < 6000)){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, HIGH);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, LOW);
 | 
  
    |  |  }
 | 
  
    |  |   //LED 3.9
 | 
  
    |  |  else if((V > 5850 && V < 5930) && (B > 6091 && B < 6150) && H > 6000){
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, HIGH);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, LOW);
 | 
  
    |  |  }
 | 
  
    |  | /*
 | 
  
    |  | else
 | 
  
    |  | {
 | 
  
    |  |     digitalWrite(2, LOW);
 | 
  
    |  |     digitalWrite(3, LOW);
 | 
  
    |  |     digitalWrite(4, LOW);
 | 
  
    |  |     digitalWrite(5, LOW);
 | 
  
    |  |     digitalWrite(6, LOW);
 | 
  
    |  |     digitalWrite(7, LOW);
 | 
  
    |  |     digitalWrite(A3, LOW);
 | 
  
    |  |     digitalWrite(A4, LOW);
 | 
  
    |  |     digitalWrite(A5, LOW);
 | 
  
    |  |     
 | 
  
    |  |     digitalWrite(A0, HIGH);
 | 
  
    |  |     digitalWrite(A1, HIGH);
 | 
  
    |  |     digitalWrite(A2, HIGH);  
 | 
  
    |  | }
 | 
  
    |  |     
 | 
  
    |  |    */ 
 | 
  
    |  | 
 | 
  
    |  | } 
 | 
  
    |  | 
 | 
  
    |  | long time(int pin, byte mask) {
 | 
  
    |  |   unsigned long count = 0, total = 0;
 | 
  
    |  |   while(checkTimer() < refresh) {
 | 
  
    |  |     // pinMode is about 6 times slower than assigning
 | 
  
    |  |     // DDRB directly, but that pause is important
 | 
  
    |  |     pinMode(pin, OUTPUT);
 | 
  
    |  |     PORTB = 0;
 | 
  
    |  |     pinMode(pin, INPUT);
 | 
  
    |  |     while((PINB & mask) == 0)
 | 
  
    |  |       count++;
 | 
  
    |  |     total++;
 | 
  
    |  |   }
 | 
  
    |  |   startTimer();
 | 
  
    |  |   
 | 
  
    |  |   return (count << resolution) / total;
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | extern volatile unsigned long timer0_overflow_count;
 | 
  
    |  | 
 | 
  
    |  | void startTimer() {
 | 
  
    |  |   timer0_overflow_count = 0;
 | 
  
    |  |   TCNT0 = 0;
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | unsigned long checkTimer() {
 | 
  
    |  |   return ((timer0_overflow_count << 8) + TCNT0) << 2;
 | 
  
    |  | }
 | 
  
    |  | 
 | 
  
    |  | 
 | 
  
    |  | 
 |