prototipo circuito para montaje de stops para chaleco ciclistas

 


materiales:

10 resistencias de 330 ohmios

10 led

3 push botton

3 resistencias de 10 k

16 jumper macho -macho

1 arduino uno

1 protoboard


codigo:

/* Programa ChalecoV5.ino

 Realiza el control de encendido de los leds del chaleco

 de seguridad para ciclistas */

// Variables

int bot[] = {1,2,3};

int led[] = {4,5,6,7,8,9,10,11,12,13};

int numLeds = 10;

int numBots = 3;

int tiempoRet = 400;

int tiempoRetOciosa = 200;

int estePin;

int cuenta_der = 0;

int cuenta_alto = 0;

int cuenta_izq = 0;

int cuenta_ocio = 0;

boolean bot_derecha = LOW;

boolean bot_alto = LOW;

boolean bot_izquierda = LOW;

// Función setup

void setup ()

{

 for (estePin = 0; estePin < numBots; estePin++)

 {

 pinMode (bot[estePin],INPUT);

 }

 for (estePin = 0; estePin < numLeds; estePin++)

 {

 pinMode (led[estePin],OUTPUT);

 }

}

// Función loop

void loop ()

{

 for (estePin = 0; estePin < numLeds; estePin++)

 {

 digitalWrite (led[estePin], LOW);

 }

 bot_derecha = digitalRead (bot[0]);

 bot_alto = digitalRead (bot[1]);

 bot_izquierda = digitalRead (bot[2]);

 if (bot_derecha==LOW)



{

 Derecha ();


}

 else if (bot_alto==LOW

 

)


{

 Alto ();


}

 else if (bot_izquierda==LOW

)


{

 Izquierda ();


}

 else


{

 Ociosa ();


}

}

// Función Derecha

void Derecha () {

 switch (cuenta_der)


{

 case 0:

 digitalWrite (led[0],HIGH);

 digitalWrite (led[8],HIGH);

 digitalWrite (led[6],HIGH);

 break

;

 case 1

:

 digitalWrite (led[1],HIGH);

 digitalWrite (led[9],HIGH);

 digitalWrite (led[5],HIGH);

 break

;

 case 2

:

 digitalWrite (led[2],HIGH);

 digitalWrite (led[3],HIGH);

 digitalWrite (led[4],HIGH);

 break

;

 default

:


;


}

 delay (tiempoRet);

 cuenta_der++;

 if (cuenta_der > 3)


{


 cuenta_der = 0;

 }

}

// Función Alto

void Alto ()

{

 if (cuenta_alto == 1)

 {

 for (estePin = 0; estePin < numLeds; estePin++)

 {

 digitalWrite (led[estePin],HIGH);

 }

 }

 else

 {

 for (estePin = 0; estePin < numLeds; estePin++)

 {

 digitalWrite (led[estePin],LOW);

 }

 }

 delay (tiempoRet);

 cuenta_alto++;

 if (cuenta_alto > 1)

 {

 cuenta_alto = 0;

 }

}

// Función Izquierda

void Izquierda ()

{

 switch (cuenta_izq)

 {

 case 0:

 digitalWrite (led[2],HIGH);

 digitalWrite (led[9],HIGH);

 digitalWrite (led[4],HIGH);

 break;

 case 1:

 digitalWrite (led[1],HIGH);

 digitalWrite (led[8],HIGH);

                                                                                                                             

 digitalWrite (led[5],HIGH);

 break;

 case 2:

 digitalWrite (led[0],HIGH);

 digitalWrite (led[7],HIGH);

 digitalWrite (led[6],HIGH);

 break;

 default:

 ;

 }

 delay (tiempoRet);

 cuenta_izq++;

 if (cuenta_izq > 3)

 {

 cuenta_izq = 0;

 }

}

// Función Ociosa

void Ociosa ()

{

 digitalWrite (led[cuenta_ocio],HIGH);

 digitalWrite (led[cuenta_ocio+4],HIGH);

 delay (tiempoRetOciosa);

 cuenta_ocio++;

 if (cuenta_ocio > 3)

 {

 cuenta_ocio = 0;

 }

}

montaje fisico:




Comentarios

Entradas populares de este blog

semaforo con arduino