Hi, I'm new to programming. I don't have an Arduino kit, so I made this code at Tinkercad. I downloaded onto the Arduino software. Before I could upload it, however, I decided to verify it. One problem I have is the error message saying 'state' was not declared in this scope. Help is deeply appreciated. The code is for a Serial Monitor with 4 LED lights:
int blueLED = 8;
int whiteLED = 9;
int greenLED = 10;
int orangeLED = 11;
void setup()
{
pinMode(blueLED, OUTPUT);
pinMode(whiteLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(orangeLED, OUTPUT);
Serial.begin(9600);
while(!Serial);
Serial.println("Input the corresponding numbers to do actions:");
Serial.println(" [1] Turn on Blue LED");
Serial.println(" [2] Turn on White LED");
Serial.println(" [3] Turn on Green LED");
Serial.println(" [4] Turn on Orange LED");
Serial.println(" [5] Turn off LED");
}
void loop()
{
if(Serial.available()){
int state = Serial.parseInt();
}
if(state==1){
digitalWrite(blueLED, HIGH);
digitalWrite(whiteLED, LOW);
digitalWrite(greenLED, LOW);
digitalWrite(orangeLED,LOW);
}
if(state==2){
digitalWrite(whiteLED, HIGH);
digitalWrite(blueLED, LOW);
digitalWrite(greenLED, LOW);
digitalWrite(orangeLED, LOW);
}
if(state==3){
digitalWrite(greenLED, HIGH);
digitalWrite(blueLED, LOW);
digitalWrite(whiteLED, LOW);
digitalWrite(orangeLED, LOW);
}
if(state==4){
digitalWrite(orangeLED, HIGH);
digitalWrite(blueLED, LOW);
digitalWrite(whiteLED, LOW);
digitalWrite(greenLED, LOW);
}
if(state==5){
digitalWrite(blueLED, LOW);
digitalWrite(whiteLED, LOW);
digitalWrite(greenLED, LOW);
digitalWrite(orangeLED, LOW);
}
}
Because state is declared inside a pair of { and }, its scope is limited to inside them, not loop() as a whole.
{
int state = Serial.parseInt();
}
You could declare it just above that and keep its scope in loop(), or if you may need it in another function later, put it outside of loop() and make it global.