Need Help With Code!!

Hi Guys (and Girls),
I am writing a program that uses a HC-06 bluetooth module to control an RGB LED strip via Transistors and after writing my code i got this error message:
'readString' was not declared in this scope

Here is the code:

int redPin = 3;
int greenPin = 5;
int bluePin = 6;

void setup() {
  Serial.begin(9600);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop() {
  while (Serial.available()) {
    delay(3);
    char c = Serial.read();
    readString += c;
   
  }
  if (readString.length()  >0) {
    Serial.printin(readString);
    if (readString == "RED")
    {
      digitalWrite(redPin, HIGH);
      digitalWrite(greenPin, LOW);
      digitalWrite(bluePin, LOW);
    }
    if (readString == "GREEN");
    {
      digitalWrite(greenPin, HIGH);
      digitalWrite(redPin, LOW);
      digitalWrite(redPin, LOW);
    }
    if (readString == "BLUE");
    {
      digitalWrite(bluePin, HIGH);
      digitalWrite(greenPin, LOW);
      digitalWrite(REDPin, LOW);
    }
    if (readString == "PURPLE");
    {
      digitalWrite(redPin, HIGH);
      digitalWrite(greenPin, LOW);
      digitalWrite(bluePin, HIGH);
    }
    if (readString == "YELLOW");
    {
      digitalWrite(redPin, LOW);
      digitalWrite(greenPin, HIGH);
      digitalWrite(bluePin, HIGH);
    }
    if (readString == "WHITE");
    {
      digitalWrite(redPin, HIGH);
      digitalWrite(greenPin, HIGH);
      digitalWrite(bluePin, HIGH);
    }
    
  }

}

Any Help is appreciated :slight_smile:

const byte redPin = 3;
const byte greenPin = 5;
const byte bluePin = 6;

String readString;  // 

void setup() {
  Serial.begin(9600);
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);
}

void loop() {
  while (Serial.available()) {
    delay(3);
    char c = Serial.read();
    readString += c;
   
  }
  if (readString.length()  >0) {
    Serial.printin(readString);
    if (readString == "RED")
    {
      digitalWrite(redPin, HIGH);
      digitalWrite(greenPin, LOW);
      digitalWrite(bluePin, LOW);
    }
    if (readString == "GREEN");
    {
      digitalWrite(greenPin, HIGH);
      digitalWrite(redPin, LOW);
      digitalWrite(redPin, LOW);
    }
    if (readString == "BLUE");
    {
      digitalWrite(bluePin, HIGH);
      digitalWrite(greenPin, LOW);
      digitalWrite(REDPin, LOW);
    }
    if (readString == "PURPLE");
    {
      digitalWrite(redPin, HIGH);
      digitalWrite(greenPin, LOW);
      digitalWrite(bluePin, HIGH);
    }
    if (readString == "YELLOW");
    {
      digitalWrite(redPin, LOW);
      digitalWrite(greenPin, HIGH);
      digitalWrite(bluePin, HIGH);
    }
    if (readString == "WHITE");
    {
      digitalWrite(redPin, HIGH);
      digitalWrite(greenPin, HIGH);
      digitalWrite(bluePin, HIGH);
    }
   
  }

}

Then you're left with the problem that it may compile, but since you never clear out readString, it'll only "work" once.

Hi,
What type of variable is readString ?

Tom.... :slight_smile:

Never mind,
I fixed it :slight_smile:

it turns out that I forgot to add one line to the top of the code
thanks for your help anyway