#define ledVerde 22
#define ledRojom 23
#define ledRojoM 21

int contador = 20; // Valor inicial del contador

void setup() {
  pinMode(ledVerde, OUTPUT);
  pinMode(ledRojom, OUTPUT);
  pinMode(ledRojoM, OUTPUT);
  Serial.begin(115200);
  Serial.println("Contador inicial: " + String(contador));
}

void loop() {
  // Espera a que haya datos disponibles en el puerto serie
  while (!Serial.available()) {
    // Esperar
  }
  
  // Lee el carácter del puerto serie
  char input = Serial.read(); 
  
  // Incrementa o decrementa el contador según la entrada
  if (input == '+') {
    contador++;
    if (contador > 23) {
      contador = 20; // Reinicia el contador si excede 23
    }
  } else if (input == '-') {
    contador--;
    if (contador < 20) {
      contador = 20; // No permitir que el contador baje de 20
    }
  }

  // Controla los LEDs según el valor del contador
  digitalWrite(ledVerde, LOW);
  digitalWrite(ledRojom, LOW);
  digitalWrite(ledRojoM, LOW);

  // Enciende el LED correspondiente al valor del contador
  if (contador == 21) {
    digitalWrite(ledVerde, HIGH);
  } else if (contador == 22) {
    digitalWrite(ledRojom, HIGH);
  } else if (contador == 23) {
    digitalWrite(ledRojoM, HIGH);
  }

  // Muestra el estado actual del contador por el puerto serie
  Serial.println("Contador: " + String(contador));

  // Pequeña pausa para evitar saturar la salida
  delay(100); 
}