Bueno, espero que pueda ser de ayuda al mayor numero de personas posible, quitando un error tonto
para poder alargar el tiempo de apertura. Por el resto la confirmación la devuelve OK.
Aquí os dejo el código.
long S=0; //Segundos transcurridos desde puesta en marcha. Pin 2 Pulsador.
long CV=0; //Contador ciclos del programa. Pin 3 Final de carrera apertura.
byte EP=0; //Estado puerta 1 para abierta 0 para cerrada. Pin 4 Final de carrera cierre.
long TIA=0; //Tiempo inicio apertura. Pin 5 Final de carrera cierre.
byte TRA=90; //Tiempo recorido apertura. Pin 10 Motor apertura.
byte TA=90; //Tiempo puerta abierta. Pin 11 Cerradura.
long TIC=0; //Tiempo inicio de cierre. Pin 12 Motor cierre.
byte TRC=90; //Tiempo recorrido cierre. Pin 13 Señal aviso marcha.
byte TRCC=3; //Tiempo recorrido cierre para el cerrojo.
byte TC=5; //Tiempo cerrojo.
byte TSA=10; //Tiempo señal de aviso puesta en marcha.
int TVC=900; //Tiempo verificacion cierre.
byte TPVC=0; //Tiempo proxima verificacion cierre.
int SP=0; //Segudos pulsador.
int TIPA=0; //Tiempo incremeto puerta abierta.
void setup()
{
for(byte i=1;i<6;i++){pinMode(i,INPUT);}
for(byte i=14;i>9;i--){pinMode(i,OUTPUT);}
}
void loop() {
//RELOJ CONTADOR DE SEGUNDOS
CV++;
if(CV>=160000){S++;CV=0;}
// TIEMPO INCREMENTO PUERTA ABIERTA
SP=-10;
//TIPA=SP*900; // Por algún motivo que desconosco cuando activo esta orden genera un error.
//SECUENCIA APERTURA PUERTA
if(digitalRead(2)==1&&EP==0){EP=1;TIA=S;TIC=2140000000;digitalWrite(13,HIGH);digitalWrite(10,LOW);digitalWrite(12,LOW);}
if(S=TIA+TSA){digitalWrite(10,LOW);digitalWrite(11,HIGH);digitalWrite(12,HIGH);}
if(S=TIA+TSA+TRCC){digitalWrite(12,LOW);digitalWrite(10,HIGH);}
if(S=TIA+TSA+TC){digitalWrite(11,LOW);}
if(S=TIA+TSA+TRCC+TRA){digitalWrite(10,LOW);digitalWrite(13,LOW);}
if(S=TIA+TSA+TRCC+TRA+TA+TIPA){digitalWrite(13,HIGH);}
if(S=TIA+TSA+TRCC+TRA+TA+TIPA+TSA){digitalWrite(10,LOW);digitalWrite(12,HIGH);}
if(S=TIA+TSA+TRCC+TRA+TA+TIPA+TSA+TRC){digitalWrite(10,LOW);digitalWrite(12,LOW);digitalWrite(13,LOW);SPP=0;}
//CONTROL PULSADOR PULSADO
while(digitalRead(2)==1){
//RELOJ CONTADOR DE SEGUNDOS
CV++ ;
if(CV>=160.000){S++;CV=0;SP++;}
//CONTROL FINALES DE CARRERA
if(digitalRead(3)==1){digitalWrite(10,LOW);digitalWrite(13,LOW);}
if(digitalRead(4)==1||digitalRead(5)==1){TIC=TRCC+S;if(S==TIC){digitalWrite(12,LOW);EP=0;}}
//CONTROL PUERTA CERRADA
if(digitalRead(4)==0 && digitalRead(5)==0 && EP==0 && S==TPVC ){TPVC=S+TVC;digitalWrite(12,HIGH);}
}
//SECUENCIA CIERRE PUERTA
if(digitalRead(2)==1&&EP==1){EP==0;TIC=S;TIA=2140000000;digitalWrite(13,HIGH);digitalWrite(10,LOW);digitalWrite(12,LOW);}
if(S=TIC+TSA){digitalWrite(10,LOW);digitalWrite(12,HIGH);}
if(S=TIC+TSA+TRC){digitalWrite(10,LOW);digitalWrite(12,LOW);digitalWrite(13,LOW);}
//CONTROL FINALES DE CARRERA
if(digitalRead(3)==1){digitalWrite(10,LOW);digitalWrite(13,LOW);}
if(digitalRead(4)==1||digitalRead(5)==1){TIC=TRCC+S;if(S==TIC){digitalWrite(12,LOW);EP=0;}}
//CONTROL PUERTA CERRADA
if(digitalRead(4)==0 && digitalRead(5)==0 && EP==0 && S==TPVC ){TPVC=S+TVC;digitalWrite(12,HIGH);}
//CONTROL PULSADOR PULSADO
while(digitalRead(2)==1){
//RELOJ CONTADOR DE SEGUNDOS
CV++;
if(CV>=160.000){S++;CV=0;}
//CONTROL FINALES DE CARRERA
if(digitalRead(3)==1){digitalWrite(10,LOW);}
if(digitalRead(4)==1||digitalRead(5)==1){TIC=TRCC+S;if(S==TIC){digitalWrite(12,LOW);EP=0;}}
//CONTROL PUERTA CERRADA
if(digitalRead(4)==0 && digitalRead(5)==0 && EP==0 && S==TPVC ){TPVC=S+TVC;digitalWrite(12,HIGH);}
}
}
Mis Primeros pasos con arduino controlador puerta valla.
- troglodita
- Mensajes: 2336
- Registrado: Lun Mar 29, 2010 10:47 am
- País: España
- Ciudad: Alcorcón Madrid
Re: Mis Primeros pasos con arduino controlador puerta valla.
Curiosamente, a mí me daba error esta otra línea:Vicen escribió://TIPA=SP*900; // Por algún motivo que desconozco cuando activo esta orden genera un error.
int SP=0; //Segundos pulsador.
Parece ser que ese tipo de error lo da cuando usamos como nombre de variable una palabra reservada. Al cambiarle el nombre a la variable ha desaparecido el problema.error escribió:sketch_jan11a:13: error: expected unqualified-id before 'volatile'
sketch_jan11a:13: error: expected `)' before 'volatile'
sketch_jan11a:13: error: expected `)' before 'volatile'
Qué bien y qué pronto, le dijo la tonta al tonto.
Re: Mis Primeros pasos con arduino controlador puerta valla.
Gracias Troglodita, Pero esa fue la primera causa que contemple y ni si quiera anulando esa variable y creando nuevas funcionaba.Pero si a ti te funciona. sera algo interno de mi ordenador lo de la variable SP fue un cambio de ultima hora viendo que podía abreviar un poquito mas en su origen era SPP.
Y te deseo que seas un mal negocio para los médicos y los señores de la PARCA.
Y te deseo que seas un mal negocio para los médicos y los señores de la PARCA.
- troglodita
- Mensajes: 2336
- Registrado: Lun Mar 29, 2010 10:47 am
- País: España
- Ciudad: Alcorcón Madrid
Re: Mis Primeros pasos con arduino controlador puerta valla.
En un foro a alguien le pasaba lo mismo y era por usar una palabra reservada, pero curiosamente tenía dos placas Arduino de distintos modelos; dependiendo de cuál de las dos tuviera seleccionadas en la configuración le daba error o no.Vicen escribió:sera algo interno de mi ordenador
Qué bien y qué pronto, le dijo la tonta al tonto.
Re: Mis Primeros pasos con arduino controlador puerta valla.
Error subsanado, he hecho la comprobación en otro ordenador y da ok en todas las comprobaciones. Ahora estoy en el accionamiento a distancia mediante wifi, he encontrado un programa que lo hace y estoy en la adaptación de los dos, lo que me esta costando es encontrar información sobre la librería WIFI para poder interpretar las ordenes del mismo.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados