Está en la página 1de 5

EJERCICIO 3 SEMAFORO CON REPETICIONES CONFIGURABLES CON PULSANTE

FABIAN MARTINEZ

6A

17 04 2019

//==========================================================================

//PRACTICA N3_SEMAFORO DOS VIAS_CONTADOR DE PULSOS

//==========================================================================

/*

//SEMAFORO 1 VIA.

// T1 T2 T3 T4

//ROJO1 0 0 1 1

//AMAR1 0 1 0 0

//VERD1 1 1 0 0

//ROJO2 1 1 0 0

//AMAR2 0 0 0 1

//VERD2 0 0 1 1

//PROGRAMADOR: FABIAN MARTINEZ

//FECHA: 15 ABRIL 2019

//VERSION: 1.0

*/

//==========================================================================

//IDENTIFICACION Y ASIGNACION DE VARIABLES A LOS PINES SELECCIONADOS

//RUTINA DE CONFIGURACION DE PUERTOS_SE EJECUTA UNA VEZ AL PRESIONAR


REINICIAR O ENCENDER LA PLACA

# define VERD1 3 //DESIGNAMOS VERD1 AL PIN DE SALIDA 3

# define AMAR1 7 //DESIGNAMOS AMAR1 AL PIN DE SALIDA 7

# define ROJO1 10 //DESIGNAMOS ROJO1 AL PIN DE SALIDA 10

# define VERD2 32 //DESIGNAMOS VERD2 AL PIN DE SALIDA 32

# define AMAR2 36 //DESIGNAMOS AMAR2 AL PIN DE SALIDA 36

# define ROJO2 40 //DESIGNAMOS ROJO2 AL PIN DE SALIDA 40


# define Boton 28 //DESIGNAMOS BOTON AL PIN DE ENTRADA 28

int Testeo = 0;

int Pulsos = 0;

int Repeticiones = 0;

int end;

//==========================================================================
====

//ZONA DE HABILITACION DE LAS VARIABLES_ASIGNACION DE LOS PINES COMO SALIDAS

void setup() {

Serial.begin (9600);

pinMode (VERD1, OUTPUT); // ASIGNAMOS EL PIN VERDE COMO SALIDA

pinMode (AMAR1, OUTPUT); // ASIGNAMOS EL PIN AMARILLO COMO SALIDA

pinMode (ROJO1, OUTPUT); // ASIGNAMOS EL PIN ROJO COMO SALIDA

pinMode (VERD2, OUTPUT); // ASIGNAMOS EL PIN VERDE COMO SALIDA

pinMode (AMAR2, OUTPUT); // ASIGNAMOS EL PIN AMARILLO COMO SALIDA

pinMode (ROJO2, OUTPUT); // ASIGNAMOS EL PIN ROJO COMO SALIDA

pinMode (Boton, INPUT); // ASIGNAMOS EL PIN BOTconteo COMO ENTRADA

//==========================================================================
====

//ZONA DE INSTRUCCIONES (RUTINA PRINCIPAL)

//LA FUNCION DE BUCLE SE EJECUTA UNA Y OTRA VEZ PARA SIEMPRE

void loop()

if (Repeticiones == 0)

if (Pulsos == 0) //Compara si Pulsante ingresa señal de conteo Alto


{

while (Testeo < 50) //Compara si Pulsante apaga señal a bajo, para evitar REBOTE

Pulsos = digitalRead(Boton);

delay(500);

Testeo ++;

Repeticiones = Repeticiones+Pulsos;

Serial.println(Repeticiones);

for (int i=0; i!=Repeticiones; i=i+1) //Bucle para efectuar el proceso segun el nuemero de
pulsos seteado

digitalWrite(ROJO1, false); //Apaga led rojo 1

digitalWrite(AMAR1, false); //Apaga led Amarillo 1

digitalWrite(VERD1, true); //Enciende led Verde 1

digitalWrite(ROJO2, true); //Enciende led Rojo 2

digitalWrite(AMAR2, false); //Enciende led Amarillo 2

digitalWrite(VERD2, false); //Enciende led Verde 2

delay (2000);

digitalWrite(ROJO1, false);

digitalWrite(AMAR1, true);

digitalWrite(VERD1, true);

digitalWrite(ROJO2, true);
digitalWrite(AMAR2, false);

digitalWrite(VERD2, false);

delay (2000);

digitalWrite(ROJO1, true);

digitalWrite(AMAR1, false);

digitalWrite(VERD1, false);

digitalWrite(ROJO2, false);

digitalWrite(AMAR2, false);

digitalWrite(VERD2, true);

delay (2000);

digitalWrite(ROJO1, true);

digitalWrite(AMAR1, false);

digitalWrite(VERD1, false);

digitalWrite(ROJO2, false);

digitalWrite(AMAR2, true);

digitalWrite(VERD2, true);

delay (2000);

//contador = 0;

digitalWrite(ROJO1, false); //Apaga led rojo 1

digitalWrite(AMAR1, false); //Apaga led Amarillo 1

digitalWrite(VERD1, false); //Apaga led Verde 1

digitalWrite(ROJO2, false); //Apaga led Rojo 2

digitalWrite(AMAR2, false); //Apaga led Amarillo 2

digitalWrite(VERD2, false); //Apaga led Verde 2


delay(10000);

También podría gustarte