const int GreenLED = 13;
const int RedLED = 12;
const int BlueLED = 14;
const int YellowLED = 27;
int pattern = 0; // Variável para armazenar o padrão atual
void setup() {
pinMode(GreenLED, OUTPUT);
pinMode(RedLED, OUTPUT);
pinMode(BlueLED, OUTPUT);
pinMode(YellowLED, OUTPUT);
Serial.begin(115200);
while (!Serial) {
; // Aguarde até que a porta serial esteja disponível
}
Serial.println("Escolha um padrão: 1, 2 ou 3");
}
void loop() {
if (Serial.available() > 0) {
pattern = Serial.parseInt(); // Leia o padrão do Monitor Serial
Serial.println("Padrão selecionado: " + String(pattern));
}
switch (pattern) {
case 1:
pattern1();
break;
case 2:
pattern2();
break;
case 3:
pattern3();
break;
default:
// Se um padrão inválido for selecionado, desligue todos os LEDs
digitalWrite(GreenLED, LOW);
digitalWrite(RedLED, LOW);
digitalWrite(BlueLED, LOW);
digitalWrite(YellowLED, LOW);
break;
}
}
void pattern1() {
// Padrão 1: Um LED aceso por vez, em sequência.
digitalWrite(GreenLED, HIGH);
delay(500);
digitalWrite(GreenLED, LOW);
digitalWrite(RedLED, HIGH);
delay(500);
digitalWrite(RedLED, LOW);
digitalWrite(BlueLED, HIGH);
delay(500);
digitalWrite(BlueLED, LOW);
digitalWrite(YellowLED, HIGH);
delay(500);
digitalWrite(YellowLED, LOW);
}
void pattern2() {
// Padrão 2: Dois LEDs acesos por vez de “fora para dentro”.
digitalWrite(GreenLED, HIGH);
digitalWrite(YellowLED, HIGH);
delay(500);
digitalWrite(GreenLED, LOW);
digitalWrite(YellowLED, LOW);
digitalWrite(RedLED, HIGH);
digitalWrite(BlueLED, HIGH);
delay(500);
digitalWrite(RedLED, LOW);
digitalWrite(BlueLED, LOW);
}
void pattern3() {
// Padrão 3: Todos os LEDs acendem e apagam a cada segundo.
digitalWrite(GreenLED, HIGH);
digitalWrite(RedLED, HIGH);
digitalWrite(BlueLED, HIGH);
digitalWrite(YellowLED, HIGH);
delay(1000);
digitalWrite(GreenLED, LOW);
digitalWrite(RedLED, LOW);
digitalWrite(BlueLED, LOW);
digitalWrite(YellowLED, LOW);
delay(1000);
}