Hola a todos, estoy intentando hacer el proyecto de u puente levadizo, utilizando un integrado l293d.
explico el proceso del programa que me gustaría que hiciera, cuando active el pulsador quiero que el led verde pase a rojo y suba el puente unos segundos , en cuanto suba se active el motor que haga pasar un barco, y a continuación que baje el puente, y en cuanto se vuelva a pulsar haga el proceso contrario.
a continuación dejo aquí mi programa podéis modificar lo que me creáis que esta mal o se podría mejorar:
#define Pulsador 7 //EL PIN DEL BOTON
#define verde 13
#define red 2
#define parpadeo 8
int inicio = 0; //Estado de la salida al arrancar arduino
int estadoAC = 0; // Estado actual del boton
int estadoAN = 0; //Variable para guardar el estado anterior del pulsador
int barcoviene = 5;
int barcova = 6;
int puentebajad = 9;
int puentesubed = 10;
int puentebajai = 3;
int puentesubei = 11;
int vel = 150;
void setup (){
pinMode(puentebajad, OUTPUT);
pinMode(puentesubed, OUTPUT);
pinMode(puentebajai, OUTPUT);
pinMode(puentesubei, OUTPUT);
pinMode(barcoviene, OUTPUT);
pinMode(barcova, OUTPUT);
pinMode(Pulsador, INPUT); //Ponemos el pin en modo entrada
pinMode(verde,OUTPUT);
pinMode(red,OUTPUT);
pinMode(parpadeo,OUTPUT);
}
void loop(){
digitalWrite(parpadeo, LOW);
delay(100);
digitalWrite (parpadeo, HIGH);
delay(100);
estadoAC = digitalRead (Pulsador); //Actualizamos el valor de la variable
if(estadoAC && estadoAN == 0)
{
inicio = 1 - inicio;// asignamos el estado contrario
delay(100);
digitalWrite(verde, LOW);
digitalWrite (red, HIGH);
}
estadoAN = estadoAC;
if(inicio == 1)
{
digitalWrite(red, LOW);
digitalWrite (verde, HIGH);
analogWrite(puentesubei, vel); // sube puente 2seg
analogWrite(puentebajai, 0);
analogWrite(puentesubed, vel);
analogWrite(puentebajad, 0);
delay (2000);
analogWrite(barcova, vel); // pasa barco 5seg
analogWrite(barcoviene, 0);
delay (5000);
analogWrite(puentesubei, 0); // baja puente 2seg
analogWrite(puentebajai, vel);
analogWrite(puentesubed, 0);
analogWrite(puentebajad, vel);
delay (2000);
digitalWrite (verde, HIGH);
digitalWrite(red, LOW);
}else
{
digitalWrite(red, LOW);
digitalWrite (verde, HIGH);
analogWrite(puentesubei, vel); // sube puente 2seg
analogWrite(puentebajai, 0);
analogWrite(puentesubed, vel);
analogWrite(puentebajad, 0);
delay (2000);
analogWrite(barcova, 0); // pasa barco 5seg
analogWrite(barcoviene, vel);
delay (5000);
analogWrite(puentesubei, 0); // baja puente 2seg
analogWrite(puentebajai, vel);
analogWrite(puentesubed, 0);
analogWrite(puentebajad, vel);
delay (2000);
digitalWrite (verde, HIGH);
digitalWrite(red, LOW);
}
}
Code tags por favor. el </> button. Gracias, Moderator.
