## **Práctica: Semáforo con Arduino**
### **Objetivo:**
Construir un semáforo controlado por un Arduino, utilizando LEDs de tres colores (rojo, amarillo y verde), para aprender a manejar salidas digitales y controlar el tiempo de encendido/apagado de cada LED.
### **Materiales:**
– 1 Placa Arduino Uno
– 1 Protoboard
– 1 LED rojo
– 1 LED amarillo
– 1 LED verde
– 3 Resistencias de 220 ohmios
– Cables de conexión
### **Diagrama del circuito:**
Conectarás cada LED a un pin digital del Arduino, con una resistencia en serie para limitar la corriente y proteger los LEDs. Usa el siguiente esquema:
1. **LED rojo**: Pin digital 13 → Resistencia → Ánodo (+) del LED rojo. El cátodo (-) a tierra (GND).
2. **LED amarillo**: Pin digital 12 → Resistencia → Ánodo (+) del LED amarillo. El cátodo (-) a GND.
3. **LED verde**: Pin digital 11 → Resistencia → Ánodo (+) del LED verde. El cátodo (-) a GND.
### **Procedimiento paso a paso:**
1. **Configura tu entorno:**
– Instala el Arduino IDE en tu computadora si aún no lo tienes.
– Conecta la placa Arduino a la computadora mediante un cable USB.
2. **Conexión de los LEDs:**
– Coloca el LED rojo en el protoboard y conecta su terminal positiva (ánodo) al pin digital 13 del Arduino a través de una resistencia de 220 ohmios.
– Conecta la terminal negativa (cátodo) del LED a GND (tierra).
– Repite los mismos pasos para los LEDs amarillo y verde, pero conéctalos a los pines 12 y 11, respectivamente.
3. **Escribe el código (Sketch) en el IDE de Arduino:**

“`cpp
// Definir pines para cada LED
int ledRojo = 13;
int ledAmarillo = 12;
int ledVerde = 11;
void setup() {
// Configurar los pines como salidas
pinMode(ledRojo, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledVerde, OUTPUT);
}
void loop() {

// Encender el LED rojo y apagar los otros dos
digitalWrite(ledRojo, HIGH);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledVerde, LOW);
delay(5000); // Mantener encendido por 5 segundos
// Encender el LED amarillo
digitalWrite(ledRojo, LOW);
digitalWrite(ledAmarillo, HIGH);
digitalWrite(ledVerde, LOW);
delay(2000); // Mantener encendido por 2 segundos
// Encender el LED verde
digitalWrite(ledRojo, LOW);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledVerde, HIGH);
delay(5000); // Mantener encendido por 5 segundos
}
“`
4. **Explicación del código:**
– Se definen tres variables que corresponden a los pines donde conectaste los LEDs.
– En la función `setup()`, los pines se configuran como salidas, ya que se necesita enviar corriente para encender los LEDs.
– En la función `loop()`, se controla la secuencia de los LEDs:
– Primero, se enciende el LED rojo durante 5 segundos.
– Luego, el LED amarillo se enciende por 2 segundos.
– Finalmente, el LED verde se enciende por 5 segundos.
– El ciclo se repite indefinidamente, simulando el funcionamiento de un semáforo.
5. **Subir el código:**
– Verifica que el código no tenga errores haciendo clic en el botón de verificación (el ícono de “check” en la parte superior izquierda del IDE).
– Si todo está correcto, haz clic en “Subir” (el ícono de flecha hacia la derecha) para cargar el código en tu Arduino.
6. **Prueba del semáforo:**
– Una vez cargado el código, los LEDs comenzarán a encenderse siguiendo la secuencia de un semáforo: rojo → amarillo → verde.
### **Desafío adicional:**
Pide a los estudiantes que modifiquen el código para cambiar los tiempos de encendido de los LEDs, o que añadan un botón para controlar el cambio manual del semáforo.