// ========================================================
// CONTROL DE LEDs CON PULSADORES (PULL-UP) - SIN ELSE
// Para alumnos de 3er año - Nivel inicial
// ========================================================
// 1. DEFINIR los pines donde conectamos los pulsadores.
int pinPulsador2 = 2; // Pulsador conectado al pin digital 2.
int pinPulsador3 = 3; // Pulsador conectado al pin digital 3.
// 2. DEFINIR los pines donde conectamos los LEDs.
int pinLED8 = 8; // LED conectado al pin digital 8.
int pinLED9 = 9; // LED conectado al pin digital 9
int pinLED10 = 10; // LED conectado al pin digital 10
int pinLED11 = 11; // LED conectado al pin digital 11
int pinLED12 = 12; // LED conectado al pin digital 12
int pinLED13 = 13; // LED conectado al pin digital 13.
//3. DEFINIR tiempo de delay
int tiempoLento = 350; // 350 ms = lento al encender
void setup() {
// 3. Iniciar la comunicación serial a 9600 baudios.
Serial.begin(9600);
Serial.println("Pedro Bigolin 3ero A técnica");
// 4. Configurar los pines de los pulsadores como ENTRADA.
// Con una resistencia pull-down externa, el pin estará LOW si no se presiona.
pinMode(pinPulsador2, INPUT);
pinMode(pinPulsador3, INPUT);
// 5. Configurar todos los pines de los LEDs como SALIDA.
// Incluso los que no usaremos en este programa específico, es buena práctica configurarlos.
digitalWrite(pinLED8, LOW); // Apaga el LED en pin 8 al inicio.
pinMode(pinLED8, OUTPUT);
digitalWrite(pinLED9, LOW); // Apaga el LED en pin 9 al inicio.
pinMode(pinLED9, OUTPUT);
digitalWrite(pinLED10, LOW); // Apaga el LED en pin 10 al inicio.
pinMode(pinLED10, OUTPUT);
digitalWrite(pinLED11, LOW); // Apaga el LED en pin 11 al inicio.
pinMode(pinLED11, OUTPUT);
digitalWrite(pinLED12, LOW); // Apaga el LED en pin 12 al inicio.
pinMode(pinLED12, OUTPUT);
digitalWrite(pinLED13, LOW); // Apaga el LED en pin 13 al inicio.
pinMode(pinLED13, OUTPUT);
// 6. Enviar un mensaje de inicio al Monitor Serial.
Serial.println("--- Control de LEDs con Pull-Up (sin ELSE) ---");
Serial.println("Pulsa P2 para secuencia 1: LED8, LED9, LED10");
Serial.println("Pulsa P3 para secuencia 2: LED11, LED12, LED13");
}
void loop() {
// 7. Leer el estado del Pulsador del pin 2.
// En Pull-Down: LOW = suelto, HIGH = apretado.
int estadoPulsador2 = digitalRead(pinPulsador2);
// 8. Si el Pulsador 2 está apretado (HIGH)...
if (estadoPulsador2 == HIGH) {
digitalWrite(pinLED8, LOW); // ...enciende el LED del pin 8.
digitalWrite(pinLED9, LOW);
digitalWrite(pinLED10, LOW);
}
// 9. Si el Pulsador 2 NO está apretado (LOW)...
// (Aquí no usamos ELSE, así que es otra condición IF independiente)
if (estadoPulsador2 == LOW) {
Serial.println("Secuencia 1 activada (LED8, LED9, LED10)");
digitalWrite(pinLED8, LOW); // ...apaga el LED del pin 8.
delay(tiempoLento);
digitalWrite(pinLED9, LOW);
delay(tiempoLento);
digitalWrite(pinLED10, LOW);
delay(tiempoLento);
digitalWrite(pinLED8, HIGH); // ...apaga el LED del pin 8.
delay(tiempoLento);
digitalWrite(pinLED9, HIGH);
delay(tiempoLento);
digitalWrite(pinLED10, HIGH);
delay(tiempoLento);
}
// 10. Leer el estado del Pulsador del pin 3.
int estadoPulsador3 = digitalRead(pinPulsador3);
// 11. Si el Pulsador 3 está apretado (HIGH)...
if (estadoPulsador3 == HIGH) {
digitalWrite(pinLED11, LOW); // ...enciende el LED del pin 13.
digitalWrite(pinLED12, LOW);
digitalWrite(pinLED13, LOW);
}
// 12. Si el Pulsador 3 NO está apretado (LOW)...
if (estadoPulsador3 == LOW) {
Serial.println("Secuencia 2 activada (LED11, LED12, LED13)");
digitalWrite(pinLED11, HIGH); // ...apaga el LED del pin 13.
delay(tiempoLento);
digitalWrite(pinLED12, HIGH);
delay(tiempoLento);
digitalWrite(pinLED13, HIGH);
delay(tiempoLento);
digitalWrite(pinLED11, LOW); // ...apaga el LED del pin 13.
delay(tiempoLento);
digitalWrite(pinLED12, LOW);
delay(tiempoLento);
digitalWrite(pinLED13, LOW);
delay(tiempoLento);
}
// 13. Pequeña pausa para evitar lecturas muy rápidas y rebotes de los pulsadores.
delay(300);
}