En este artículo, vamos a expandir nuestro primer proyecto de control de un LED con Arduino, agregando más LED y explorando nuevas formas de encenderlos y apagarlos. Estas variaciones no solo te ayudarán a controlar múltiples LED, sino que también te permitirán entender mejor cómo modificar los tiempos y secuencias de funcionamiento de cada uno. Al final, culminaremos en la creación de un sencillo semáforo con tres LED.
Primera Variación: Control de Dos LEDs en Secuencia
En esta primera variación, controlaremos dos LED que se encenderán y apagarán de forma alternada, con un intervalo de un segundo entre cada cambio.
Materiales:
- 1 Placa Arduino Uno
- 2 LED (de cualquier color)
- 2 resistencias de 220 ohmios
- Cables de conexión
Circuito
Conecte el pin digital 12 de Arduino al ánodo del primer LED (LED1) y el pin digital 13 al ánodo del segundo LED (LED2). Los cátodos de ambos LED deben conectarse a sus respectivas resistencias, y luego llevar las resistencias al pin GND de Arduino.
Código
// Definir los pines de los LEDs
int led1 = 12;
int led2 = 13;
void setup() {
// Configurar los pines de los LEDs como salidas
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
// Encender el LED1 y apagar LED2
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
delay(1000); // Esperar 1 segundo
// Apagar el LED1 y encender LED2
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(1000); // Esperar 1 segundo
}
Explicación del Código
El código define dos pines (12 y 13) para controlar los dos LED. El bucle loop()
alterna entre encender el LED1 y apagar el LED2, luego intercambia los estados después de 1 segundo. Este patrón se repite continuamente.Variando el valor del delay cambiaremos el tiempo de encendido o apagado de los leds: 1000 = 1 segundo.
Segunda Variación: Control de Tres LEDs en Secuencia
Ahora agregaremos un tercer LED al circuito, controlando los tres en secuencia para que se enciendan uno tras otro, cada uno por un segundo.
Materiales:
- 3 LED (de cualquier color)
- 3 resistencias de 220 ohmios
Circuito
Conecta el tercer LED al pin digital 11 de Arduino. Mantenga las conexiones de los otros LED igual que en la variación anterior.
Código
// Definir los pines de los LEDs
int led1 = 12;
int led2 = 13;
int led3 = 11;
void setup() {
// Configurar los pines de los LEDs como salidas
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
}
void loop() {
// Encender LED1, apagar LED2 y LED3
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
delay(1000); // Esperar 1 segundo
// Encender LED2, apagar LED1 y LED3
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
delay(1000); // Esperar 1 segundo
// Encender LED3, apagar LED1 y LED2
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
delay(1000); // Esperar 1 segundo
}
Explicación del Código
Este código añade un tercer LED (conectado al pin 11) y ajusta la secuencia para que cada LED se encienda durante 1 segundo mientras los otros dos están apagados. Este patrón se repite indefinidamente, lo que te permite experimentar con el control de múltiples salidas.
Proyecto Final: Semáforo con Tres LEDs
Para el proyecto final, construiremos un sencillo semáforo con tres LEDs que simulan los colores de un semáforo real: rojo, amarillo y verde.
Materiales:
- 1 LED rojo
- 1 LED amarillo
- 1 LED verde
- 3 resistencias de 220 ohmios
Circuito
- Conecte el LED rojo al pin digital 13 de Arduino.
- Conecte el LED amarillo al pin digital 12.
- Conecte el LED verde al pin digital 11.
- Como en los proyectos anteriores, conecta cada LED a una resistencia y luego a GND.
Código
// Definir los pines de los LEDs (Semáforo)
int ledRojo = 13;
int ledAmarillo = 12;
int ledVerde = 11;
void setup() {
// Configurar los pines de los LEDs como salidas
pinMode(ledRojo, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledVerde, OUTPUT);
}
void loop() {
// Encender el LED rojo
digitalWrite(ledRojo, HIGH);
delay(5000); // Mantener encendido por 5 segundos
// Encender el LED amarillo
digitalWrite(ledRojo, LOW);
digitalWrite(ledAmarillo, HIGH);
delay(2000); // Mantener encendido por 2 segundos
// Encender el LED verde
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledVerde, HIGH);
delay(5000); // Mantener encendido por 5 segundos
// Apagar el LED verde y reiniciar el ciclo
digitalWrite(ledVerde, LOW);
}
Explicación del Código
El código simula un ciclo de semáforo con tres LED. El rojo se enciende durante 5 segundos, luego el amarillo durante 2 segundos, seguido por el verde durante 5 segundos. Este ciclo se repite de forma indefinida.
Conclusión
Con estas variaciones, habremos aprendido cómo manejar múltiples LEDs con Arduino y cómo modificar tiempos y secuencias de encendido y apagado. Estos conocimientos son esenciales para proyectos más avanzados en el mundo de la electrónica y la domótica. ¿Y si ahora aprendemos a controlar motores con Arduino?, ¡Anímate a seguir experimentando y mejorando tus habilidades!