## **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:**
 
 
 
int ledRojo = 13;
int ledAmarillo = 12;
int ledVerde = 11;
 
void setup() {
//tengo que configurar los pines como salida
pinMode(ledRojo, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledVerde, OUTPUT);
}
 
void loop(){
//encender el led rojo y apagar los otros
digitalWrite(ledRojo, HIGH);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledVerde, LOW);
delay(3000); //se va a mantener encendido 3 segundos
 
//ahora toca prender el verde
digitalWrite(ledRojo, LOW);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledVerde, HIGH);
delay(1500);//se mantendra encendido 1.5 segundos
 
for(int i = 0; i < 3; i++){//ahora toca el amarillo
digitalWrite(ledRojo, LOW);
digitalWrite(ledAmarillo, HIGH);
digitalWrite(ledVerde, LOW);
delay(500);
digitalWrite(ledAmarillo, LOW);//apaga el led amarillo
delay(500);
}
}
 
 
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.