Professional Documents
Culture Documents
Semáforo Doble Vía Arduino
Semáforo Doble Vía Arduino
- Materiales:
• 1 Arduino UNO,
• 2 LEDs rojos,
• 2 LEDs amarillos,
• 2 LEDs verdes,
• 6 Resistencia de 220 ohms,
• 1 Protoboard y Jumpers.
CODIGO
Comenzamos el desarrollo del programa definiendo los pines digitales de los LEDs. Para
identificar el color de los leds dentro del código, las variables las llamaremos conforme al
color y en que semáforo pertenece.
int Rojo1 = 5;
int Amarillo1 = 6;
int Verde1 = 7;
int Rojo2 = 8;
int Amarillo2 = 9;
void setup() {
pinMode(Rojo1,OUTPUT);
pinMode(Amarillo1,OUTPUT);
pinMode(Verde1,OUTPUT);
pinMode(Rojo2,OUTPUT);
pinMode(Amarillo2,OUTPUT);
pinMode(Verde2,OUTPUT);
En void loop() programaremos la lógica de ambos semáforos. Separaremos los cambios por
secciones utilizando comentarios para no repetir algún cambio durante el proceso.
En la primera sección será el semaforo1 estando en rojo y el semaforo2 en verde, listo para
comenzar con su ciclo de cambio. Durará 3 segundos prendido el LED verde.
void loop() {
digitalWrite(Rojo1,HIGH);
digitalWrite(Amarillo1,LOW);
digitalWrite(Verde1,LOW);
digitalWrite(Rojo2,LOW);
digitalWrite(Amarillo2,LOW);
digitalWrite(Verde2,HIGH);
delay(6000);
Para el parpadeo abrimos otra sección solo para manipular el pin digital de LED verde. Se
hará 2 parpadeo y cada uno durará 1 segundo.
digitalWrite(Verde2,LOW);
delay(2000);
digitalWrite(Verde2,HIGH);
delay(2000);
digitalWrite(Verde2,LOW);
delay(2000);
digitalWrite(Verde2,HIGH);
delay(2000);
Para finalizar el ciclo del semaforo2, prenderemos el LED ambar para poder pasar al ciclo
del semaforo1, esté cambio solo durará 1 segundo.
digitalWrite(Amarillo2,HIGH);
digitalWrite(Verde2,LOW);
delay(2000);
Para la programación del semaforo1 es igual al del semaforo2 solo debemos cambiar los
pines de los LEDs, asi quedaría completo:
int Rojo1=5;
int Amarillo1=6;
int Verde1=7;
int Rojo2=8;
int Amarillo2=9;
int Verde2=10;
void setup() {
pinMode(Rojo1,OUTPUT);
pinMode(Amarillo1,OUTPUT);
pinMode(Verde1,OUTPUT);
pinMode(Rojo2,OUTPUT);
pinMode(Amarillo2,OUTPUT);
pinMode(Verde2,OUTPUT);
void loop() {
digitalWrite(Rojo1,HIGH);
digitalWrite(Amarillo1,LOW);
digitalWrite(Verde1,LOW);
digitalWrite(Rojo2,LOW);
digitalWrite(Amarillo2,LOW);
digitalWrite(Verde2,HIGH);
delay(6000);
digitalWrite(Verde2,LOW);
delay(2000);
digitalWrite(Verde2,HIGH);
delay(2000);
digitalWrite(Verde2,LOW);
delay(2000);
digitalWrite(Verde2,HIGH);
delay(2000);
digitalWrite(Amarillo2,HIGH);
digitalWrite(Verde2,LOW);
delay(2000);
digitalWrite(Amarillo1,LOW);
digitalWrite(Verde1,HIGH);
digitalWrite(Rojo2,HIGH);
digitalWrite(Amarillo2,LOW);
digitalWrite(Verde2,LOW);
delay(6000);
digitalWrite(Verde1,LOW);
delay(2000);
digitalWrite(Verde1,HIGH);
delay(2000);
digitalWrite(Verde1,LOW);
delay(2000);
digitalWrite(Verde1,HIGH);
delay(2000);
digitalWrite(Amarillo1,HIGH);
digitalWrite(Verde1,LOW);
delay(2000);