I'm having trouble trying to make my lighBulltin function only be active when I press 'P' in the serial monitor. It would be a great help to have someone helped I've watched 100 videos and still am not sure what to do.
int redLED = 7;
int greenLED = 6;
int blueLED = 5;
int yellowLED = 4;
//int delayTime=200;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
pinMode(blueLED, OUTPUT);
pinMode(yellowLED, OUTPUT);
lightBulltin(11);
Serial.begin(9600);
while (! Serial);
Serial.println("Enter LED Number 0 to 3 or 'x' to clear. For a new function press p!");
}
// the loop routine runs over and over again forever:
void loop() {
if (Serial.available()){ //This funtion turns lights on individually based on the character or number selected in the serial monitor
char ch;
ch = Serial.read();
if (ch == '0'){
digitalWrite(redLED, HIGH);
Serial.println("Red LED is on");
}
else if (ch == '1'){
digitalWrite(greenLED, HIGH);
Serial.println("Green LED is on");
}
else if (ch == '2'){
digitalWrite(blueLED, HIGH);
Serial.println("Blue LED is on");
}
else if (ch == '3'){
digitalWrite(yellowLED, HIGH);
Serial.println("Yellow LED is on");
}
else if (ch == 'x'){
digitalWrite(redLED, LOW);
digitalWrite(greenLED, LOW);
digitalWrite(blueLED, LOW);
digitalWrite(yellowLED, LOW);
Serial.println("Shut off");
}
}
}
void lightBulltin(int n) //This function sequntially turns on LED's 10 times
{
for(int i=0;i<n;i++)
{
digitalWrite(redLED, HIGH);
delay(500);
digitalWrite(redLED, LOW);
delay(500);
digitalWrite(greenLED, HIGH);
delay(500);
digitalWrite(greenLED, LOW);
delay(500);
digitalWrite(blueLED, HIGH);
delay(500);
digitalWrite(blueLED,LOW);
delay(500);
digitalWrite(yellowLED, HIGH);
delay(500);
digitalWrite(yellowLED, LOW);
}
}