Proyecto Final
Plantilla implementacion final from Yorleny Ureña
- 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
Problemas Técnicos
- 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,
- 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
Publicar un comentario