fbpx
Clase 25 de 73
En Progreso

Clase 25: Desafío semáforo doble

Clase
Materiales

En esta clase vamos a:

  • Plantear un desafío que integra todo lo que vimos en esta sección.
  • Dicho desafío se llama “el semáforo doble” o “semáforo de cruce de avenida”.

Un breve resumen de esta clase:

         Aquí les dejo un ejemplo para que entendamos mejor de que se trata este desafío. En principio podemos suponer que se cruzan 2 calles que son de sentido único. Entonces para que los autos puedan pasar sin ningún inconveniente…cuando de un lado este en verde, el otro debería estar en rojo y viceversa. 

      Dejo a criterio del programador que hacer con el amarillo, he visto en varios lugares y Paises esta secuencia es distinta.

 

//defino las constantes para ambos semaforos
const int semaforo_1_rojo = 2;
const int semaforo_1_amarillo = 3;
const int semaforo_1_verde = 4;

const int semaforo_2_rojo = A2;
const int semaforo_2_amarillo = A1;
const int semaforo_2_verde = A0;

//aqui incia el setup
void setup()
{
  //definos todos los pines como salida
  pinMode(semaforo_1_rojo, OUTPUT);
  pinMode(semaforo_1_amarillo, OUTPUT);
  pinMode(semaforo_1_verde, OUTPUT);
  
  pinMode(semaforo_2_rojo, OUTPUT);
  pinMode(semaforo_2_amarillo, OUTPUT);
  pinMode(semaforo_2_verde, OUTPUT);
}

//aqui incia el setup
void loop()
{
  //activo el rojo del semaf_1 y verde del semaf_2
  digitalWrite(semaforo_1_amarillo, LOW);
  digitalWrite(semaforo_1_rojo, HIGH);
  
  digitalWrite(semaforo_2_amarillo, LOW);
  digitalWrite(semaforo_2_verde, HIGH);
  delay(1000); 
  
  //activo el amarillo del semaf_1 y amarillo del semaf_2
  digitalWrite(semaforo_1_rojo, LOW);
  digitalWrite(semaforo_1_amarillo, HIGH);
  
  digitalWrite(semaforo_2_verde, LOW);
  digitalWrite(semaforo_2_amarillo, HIGH);
  delay(1000); 
  //-------aqui seria la mitad-----
  
  //activo el verde del semaf_1 y rojo del semaf_2
  digitalWrite(semaforo_1_amarillo, LOW);
  digitalWrite(semaforo_1_verde, HIGH);
  
  digitalWrite(semaforo_2_amarillo, LOW);
  digitalWrite(semaforo_2_rojo, HIGH);
  delay(1000); 
  
  //activo el amarillo del semaf_1 y amarillo del semaf_2
  digitalWrite(semaforo_1_verde, LOW);
  digitalWrite(semaforo_1_amarillo, HIGH);
  
  digitalWrite(semaforo_2_rojo, LOW);
  digitalWrite(semaforo_2_amarillo, HIGH);
  delay(1000); 
}

Descargar el PDF aquí 👉 Clase 25

Responses

[uo_login_ui]