Help to debug my code "RGB sensor"

int ledArray[] = {2,3,4};
boolean balanceSet = false;
int red = 0;
int green = 0;
int blue = 0;

float colourArray[] = {0,0,0};
float whiteArray[] = {0,0,0};
float blackArray[] = {0,0,0};

int avgRead;

void setup(){
 
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
 
  Serial.begin(9600);
 
}

void loop(){

    checkBalance();
    checkColour();
    printColour();
    }

void checkBalance(){
  if(balanceSet == false){
    setBalance();
  }
}

void setBalance(){
   delay(5000);
  //scan the white sample.
  for(int i = 0;i<=2;i++){
     digitalWrite(ledArray[i],HIGH);
     delay(100);
     getReading(5);
     whiteArray[i] = avgRead;
     digitalWrite(ledArray[i],LOW);
     delay(100);
  }
   //set black balance
    delay(5000);
  for(int i = 0;i<=2;i++){
     digitalWrite(ledArray[i],HIGH);
     delay(100);
     getReading(5);
     blackArray[i] = avgRead;
     //blackArray[i] = analogRead(2);
     digitalWrite(ledArray[i],LOW);
     delay(100);
  }
  balanceSet = true;
  delay(5000);
  }

void checkColour(){
    for(int i = 0;i<=2;i++){
     digitalWrite(ledArray[i],HIGH);
     delay(100);
     getReading(5);
     colourArray[i] = avgRead;
     float greyDiff = whiteArray[i] - blackArray[i];
     colourArray[i] = (colourArray[i] - blackArray[i])/(greyDiff)*255;
     digitalWrite(ledArray[i],LOW);
     delay(100);
  }
}
void getReading(int times){
  int reading;
  int tally=0;

for(int i = 0;i < times;i++){
   reading = analogRead(0);
   tally = reading + tally;
   delay(10);
}
//calculate the average and set it
avgRead = (tally)/times;
}
.
void printColour(){
Serial.print("");
Serial.println(int(colourArray[0]));
Serial.print("");
Serial.println(int(colourArray[1]));
Serial.print("");
Serial.println(int(colourArray[2]));
}

I want to add other option to control PIN13 from VB.net
but seems there is interfere every-time I try to add this option
This is how I edit my first code

int ledArray[] = {2,3,4};
boolean balanceSet = false;
int red = 0;
int green = 0;
int blue = 0;

float colourArray[] = {0,0,0};
float whiteArray[] = {0,0,0};
float blackArray[] = {0,0,0};

int avgRead;

void setup(){
  pinMode(13,OUTPUT);
  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);
  Serial.begin(9600);
}

void loop(){
int val;
if (Serial.available()){
  delay(100);
  while (Serial.available()>0){
    val=Serial.read();
    if(val=='^'){digitalWrite(13,HIGH);}
    else if (val=='<'){digitalWrite(13,LOW);
   {
    checkBalance();
    checkColour();
    printColour();
    }
   }
  }
 }
}
void checkBalance(){
 
  if(balanceSet == false){
    setBalance();
  }
}

void setBalance(){
   delay(5000); 
  for(int i = 0;i<=2;i++){
     digitalWrite(ledArray[i],HIGH);
     delay(100);
     getReading(5);
     whiteArray[i] = avgRead;
     digitalWrite(ledArray[i],LOW);
     delay(100);
  }

    delay(5000);
  for(int i = 0;i<=2;i++){
     digitalWrite(ledArray[i],HIGH);
     delay(100);
     getReading(5);
     blackArray[i] = avgRead;
     //blackArray[i] = analogRead(2);
     digitalWrite(ledArray[i],LOW);
     delay(100);
  }
  balanceSet = true;
  delay(5000);
  }

void checkColour(){
    for(int i = 0;i<=2;i++){
     digitalWrite(ledArray[i],HIGH);
     delay(100);
     getReading(5);
     colourArray[i] = avgRead;
     float greyDiff = whiteArray[i] - blackArray[i];
     colourArray[i] = (colourArray[i] - blackArray[i])/(greyDiff)*255;
     digitalWrite(ledArray[i],LOW);
     delay(100);
  }
}
void getReading(int times){
  int reading;
  int tally=0;

for(int i = 0;i < times;i++){
   reading = analogRead(0);
   tally = reading + tally;
   delay(10);
}
avgRead = (tally)/times;
}
void printColour(){
Serial.print("");
Serial.println(int(colourArray[0]));
Serial.print(" ");
Serial.println(int(colourArray[1]));
Serial.print("");
Serial.println(int(colourArray[2]));
}

Can someone help me to debug this code!
There is a button to control PIN13 inside my VB.net, work great but when I press it my whole code stop working until I press reset

I am sure my problem from "}" but where exactly I don't know!!

well your { and } don't match up.

I didn't understand? can you explain more please :slight_smile: