// Definir pines para los LEDs
int led1 = 12;
int led2 = 14;
int led3 = 27;
int led4 = 32;
int led5 = 33;

// Definir pines para los pines táctiles
int touchPin1 = T0; // Pin táctil 1 en T0 (GPIO 4)
int touchPin2 = T1; // Pin táctil 2 en T1 (GPIO 15)

// Definir variables para el brillo y los límites
int intensity = 0;
int maxIntensity = 255;
int intensityStep = 20;
int THRESHOLD = 50;

void setup()
{
  // Configurar pines de los LEDs como salidas
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  
  // Configurar pines táctiles como entradas
  pinMode(touchPin1, INPUT);
  pinMode(touchPin2, INPUT);
}

void loop()
{
  // Leer el estado de los pines táctiles
  int touchState1 = touchRead(touchPin1);
  int touchState2 = touchRead(touchPin2);

  // Aumentar el brillo con el primer pin táctil
  if (touchState1 < THRESHOLD) {
    intensity += intensityStep;
    if (intensity > maxIntensity){
      intensity = maxIntensity;
    }
  }
  // Disminuir el brillo con el segundo pin táctil
  if (touchState2 < THRESHOLD) {
    intensity -= intensityStep;
    if (intensity < 0){
      intensity = 0;
    }
  }

  // Aplicar el brillo a todos los LEDs
  analogWrite(led1, intensity);
  analogWrite(led2, intensity);
  analogWrite(led3, intensity);
  analogWrite(led4, intensity);
  analogWrite(led5, intensity);
}