Programa Arduino con for y while: secuencia de LEDs controlada por botón

Informática3,01 KB

Programa con for

int leds[] = {10, 11, 2, 3, 4, 5, 8, 7, 6};
int boton = 9;
int numLeds = 9;
int presionado = 0;

void setup() {
  for (int i = 0; i < numLeds; i++) {
    pinMode(leds[i], OUTPUT);
  }
  pinMode(boton, INPUT_PULLUP);
}

void loop() {
  int lectura = digitalRead(boton);

  // Espera a que se presione el botón
  if (lectura == LOW && presionado == 0) {
    presionado = 1;

    // Secuencia individual (uno encendido a la vez)
    for (int i = 0; i < numLeds; i++) {
      for (int j = 0; j < numLeds; j++) {
        digitalWrite(leds[j], LOW);
      }
      digitalWrite(leds[i], HIGH);
      delay(500);
    }

    // Encendido final de todos los LEDs
    for (int i = 0; i < numLeds; i++) {
      digitalWrite(leds[i], HIGH);
      delay(200);
    }
  }

  // Si no se ha presionado el botón, todos apagados
  if (presionado == 0) {
    for (int i = 0; i < numLeds; i++) {
      digitalWrite(leds[i], LOW);
    }
  }
}

Programa con while

int LED1 = 2;
int LED2 = 3;
int LED3 = 4;
int LED4 = 5;
int LED5 = 6;
int LED6 = 7;
int LED7 = 8;
int LED8 = 9;
int LED9 = 10;
int boton = 11;

void setup() {
  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);
  pinMode(LED4, OUTPUT);
  pinMode(LED5, OUTPUT);
  pinMode(LED6, OUTPUT);
  pinMode(LED7, OUTPUT);
  pinMode(LED8, OUTPUT);
  pinMode(LED9, OUTPUT);
  pinMode(boton, INPUT_PULLUP);
}

void loop() {
  int botonpres = digitalRead(boton);

  while (botonpres == HIGH) {
    digitalWrite(LED1, LOW);
    digitalWrite(LED2, LOW);
    digitalWrite(LED3, LOW);
    digitalWrite(LED4, LOW);
    digitalWrite(LED5, LOW);
    digitalWrite(LED6, LOW);
    digitalWrite(LED7, LOW);
    digitalWrite(LED8, LOW);
    digitalWrite(LED9, LOW);
  }

  while (botonpres == LOW) {
    digitalWrite(LED1, HIGH);
    delay(500);
    digitalWrite(LED1, LOW);
    delay(500);
    digitalWrite(LED2, HIGH);
    delay(500);
    digitalWrite(LED2, LOW);
    delay(500);
    digitalWrite(LED3, HIGH);
    delay(500);
    digitalWrite(LED3, LOW);
    delay(500);
    digitalWrite(LED4, HIGH);
    delay(500);
    digitalWrite(LED4, LOW);
    delay(500);
    digitalWrite(LED5, HIGH);
    delay(500);
    digitalWrite(LED5, LOW);
    delay(500);
    digitalWrite(LED6, HIGH);
    delay(500);
    digitalWrite(LED6, LOW);
    delay(500);
    digitalWrite(LED7, HIGH);
    delay(500);
    digitalWrite(LED7, LOW);
    delay(500);
    digitalWrite(LED8, HIGH);
    delay(500);
    digitalWrite(LED8, LOW);
    delay(500);
    digitalWrite(LED9, HIGH);
    delay(500);
    digitalWrite(LED9, LOW);
    delay(500);

    digitalWrite(LED1, HIGH);
    delay(500);
    digitalWrite(LED2, HIGH);
    delay(500);
    digitalWrite(LED3, HIGH);
    delay(500);
    digitalWrite(LED4, HIGH);
    delay(500);
    digitalWrite(LED5, HIGH);
    delay(500);
    digitalWrite(LED6, HIGH);
    delay(500);
    digitalWrite(LED7, HIGH);
    delay(500);
    digitalWrite(LED8, HIGH);
    delay(500);
    digitalWrite(LED9, HIGH);
    delay(500);
  }
}

Descargar

PDF Word HTML