## **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:**
 
Screen Shot 2024-10-08 at 8.07.28 PM
 
   “`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() {
 
Screen Shot 2024-10-08 at 7.57.46 PM
     // 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.