Proyecto Final






Plantilla implementacion final from Yorleny Ureña


  1. Descripción breve del prototipo interactivo del proyecto final  Mi prototipo  consiste  en  crear  un Semáforo  Inteligente  el  cual  programe  con las luces LEDs, el  piezo, y los  sensores. La idea  es  que  simule  el  funcionamiento  de un semáforo el  cual cambie  automáticamente  cada  cierto  tiempo,  pero   que  también  pueda  cambiarse la  presionar  un botón  cuando  se  requiera  el  paso peatonal.





Vídeo






Código del  programa
#include <LiquidCrystal.h>

//Pines utilizados para los  Led
int Ledverde1 =2;
int Ledamarillo1 =3;
int Ledrojo1 = 4;
int Ledverde2 = 5;
int Ledamarillo2 = 6;
int Ledrojo2 = 7;
int pu1sador1 = 8;
float  pulsador2 =9;
int piezo = 10;

//declaracion de  variables
bool accion1 = true; //Se indica  que  el  semafoto  1  se  active
int tiempocambio = 2000; //Tiempo  asignado  entre el  cambio  de los  Leds
int tiempoespera = 4000; //Tiempo de  espera   para  comensar el  cambio

void setup() {
 Serial.begin (9600); //Iniciamos  el  monitor
 //Modo  entrada y  salida  de pines
 pinMode (Ledverde1, OUTPUT );  
 pinMode (Ledamarillo1, OUTPUT );  
 pinMode (Ledrojo1, OUTPUT );  
 pinMode (Ledverde2, OUTPUT );  
 pinMode (Ledamarillo2, OUTPUT );  
 pinMode (Ledrojo2, OUTPUT );  
 pinMode (pu1sador1, INPUT ); 
 pinMode (pulsador2, INPUT ); 
 pinMode (piezo, OUTPUT ); 

 //Apagado de los Leds

 digitalWrite (Ledverde1, LOW );  
 digitalWrite (Ledamarillo1, LOW );  
 digitalWrite (Ledrojo1, LOW );  
 digitalWrite (Ledverde2, LOW);  
 digitalWrite(Ledamarillo2, LOW );  
 digitalWrite(Ledrojo2, LOW );  

 //Estado inical Semaforo 1  encendido, semaforo2  apagado
 digitalWrite (Ledverde1, HIGH );  
 digitalWrite (Ledrojo2, HIGH );
}

 void loop(){
  if (accion1)
  {
   int valor2 = digitalRead (pulsador2); // Semaforo1  esta activo cprobamos el pulsador 2
    
   if (valor2 = HIGH) //Si  hay  carros  esperando   se pulsa  el  boton  o  pulsador
   {

    //Encendido  de  semáforo 2
   EncenderSemaforo2();
   
   tone  (piezo, 320, 200);
    delay (100);
    tone (piezo, 549, 60);
    delay (100);
    
    accion1 = false;

    
      }

  }

else

{
//Si  hay un carro esperando, se  pulsa   el  boton

int valor1 = digitalRead(pu1sador1);  //Lee  el  valor  del  pin

//SI  hay un carro  esperando pulsar  el  boton

  if (valor1= HIGH)
{
  EncenderSemaforo1(); //Semaforo encendido

  accion1 = true;
   pinMode (piezo, LOW ); 
   }
  } 
 }

void EncenderSemaforo2()
{

  //se  apaga el  semaforo 1

  delay (tiempoespera);

//Pasa a luz  amarilla

  digitalWrite (Ledverde1, LOW);
  digitalWrite (Ledamarillo1, HIGH);
  
  delay (tiempocambio);

  //Paso  del  semaforo  luz  roja
  digitalWrite (Ledamarillo1, LOW);
  digitalWrite (Ledrojo1, HIGH);

  delay (tiempocambio);
  
   //encender Semaforo 2
   
   digitalWrite (Ledrojo2, LOW);
   digitalWrite (Ledverde2, HIGH);
}     
//----------------------------------------------------//
void EncenderSemaforo1()
{

  //se  apaga el  semaforo 2

  delay (tiempoespera);
//Paso de luz  amarilla

  digitalWrite (Ledverde2, LOW);
  digitalWrite (Ledamarillo2, HIGH);
  
  delay (tiempocambio);
  
  //Paso  del  semaforo  luz  roja
  digitalWrite (Ledamarillo2, LOW);
  digitalWrite (Ledrojo2, HIGH);

  delay (tiempoespera);
   //encender Se maforo 1

   delay (tiempocambio);

   
   digitalWrite (Ledrojo1, LOW);
   digitalWrite (Ledverde1, HIGH);
}     

Problemas Técnicos

  1. Problemas  en el reconocimiento  de la placa, en  varias  ocasiones  no reconocía  la placa, tuve  que colocar  el puerto  en  varias   ocasiones para  que funcionara,
  2. con respecto  a la  circuiteria   no  me  funcianaba  al principio tuve que revisar   los cables con  el   tester  y  uno  estaba  dañado.lo  cambie  y  se soluciono  el problema.

Comentarios

Entradas populares de este blog