FASE 2 (Semana 2): Proyecto Chaleco para Ciclistas

link de simulación en protoboard


https://www.youtube.com/watch?v=xiJeEpIu1xw


Implementacion en circuito impreso(foto)



Implementacion en circuito impreso(vídeo)

tarea asignada en laboratorio (vídeo)

https://youtu.be/YomrGzXvn38

programa de modificación al programa

/* 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 = 100;
int tiempoRetOciosa = 200;
int tiempoPausa = 500;
int bIzq=0;
int bDer=0;
int bAlto=0;
int numeroVueltas=6;
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==HIGH)


{
 Derecha ();

}
 else if (bot_alto==HIGH
)

{
 Alto ();

}
 else if (bot_izquierda==HIGH
)

{
 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)

{
 bDer++;
 cuenta_der = 0;
 }
 if (bDer == 5)
 {
 bDer = 0;
 delay(tiempoPausa);
 }
}
// 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);
 }
 if(bAlto==10)
 {
   delay(tiempoPausa);
   bAlto=0;
 }
 }
 bAlto++;
 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;
 bIzq++;
 }
 if (bIzq == 5)
 {
 bIzq = 0;
 delay(tiempoPausa);
 }

}
// Función Ociosa
void Ociosa ()
{
 bIzq=0;
 bDer=0;
 bAlto=0;
 digitalWrite (led[cuenta_ocio],HIGH);
 digitalWrite (led[cuenta_ocio+4],HIGH);
 delay (tiempoRetOciosa);
 cuenta_ocio++;
 if (cuenta_ocio > 3)
 {
 cuenta_ocio = 0;
 }
}

Comentarios