Hola tengo un problema en el control de dos reles por arduino desarrollo el funcionamiento deseado
1 al pisar el primer pedal "avanceIN" tiene un sensor magnetico activa una fresadora "corteCanto" 3 segundos despues activa un rodillo "avanceOUT"
2 AL Pisar un segundo pedal "tijeraIN" desactiva la fresadora "corteCanto" y el rodilEL PROBLEMA lo "avanceOUT"
3 Hay un interruptor para que en posicion off mantenga desactivada la fresadora "corteCanto" aunque se pise el pedal "avanceIN" Y mantenga activado siempre "avanceOUT". y en posicion on permita el funcionamiento de los pasos 1 y 2.
El problema es que en posicion off se activa y desactiva la fresadora " corteCanto" mientra se pisa el primer pedal.
añado comentarios al codigo para que se vea mejor.
cualquier ayuda de mejora del codigo es bienvenida.
gracias
1 al pisar el primer pedal "avanceIN" tiene un sensor magnetico activa una fresadora "corteCanto" 3 segundos despues activa un rodillo "avanceOUT"
2 AL Pisar un segundo pedal "tijeraIN" desactiva la fresadora "corteCanto" y el rodilEL PROBLEMA lo "avanceOUT"
3 Hay un interruptor para que en posicion off mantenga desactivada la fresadora "corteCanto" aunque se pise el pedal "avanceIN" Y mantenga activado siempre "avanceOUT". y en posicion on permita el funcionamiento de los pasos 1 y 2.
El problema es que en posicion off se activa y desactiva la fresadora " corteCanto" mientra se pisa el primer pedal.
añado comentarios al codigo para que se vea mejor.
cualquier ayuda de mejora del codigo es bienvenida.
gracias
Código:
const int avanceIN = A5; //entrada sensor magnetico pedal avance
const int tijeraIn = A1; // entrada sensor optico corte tijera
const int avanceOUT = 9; //salida activacion rele rodillo cola
const int corteCanto = 12; //salida activacion rele fresadora aspiracion
const int paroMarcha= 11; //interruptor paro y encendido Para dejar HIGH rodillo cola y LOW la fresadora.
int optoValor;
int magnetValor;
int control;
int enciende;
int apaga =0;
void setup() {
pinMode(avanceIN,INPUT);
pinMode(avanceOUT,OUTPUT);
pinMode(tijeraIn, INPUT);
pinMode(cortecanto,OUTPUT);
pinMode(paroMarcha,INPUT);
digitalWrite(corteCanto,LOW);
digitalWrite(avanceOUT,LOW);
}
void loop(){
control=digitalRead(paroMarcha);
if (control==LOW){
digitalWrite(avanceOUT,HIGH);
digitalWrite(corteCanto, LOW);
enciende=1; // mantener en off fresadora y permitir activacion y desactivacion de rodillo
}
else if (enciende!=apaga ){
digitalWrite(avanceOUT,LOW);
digitalWrite(corteCanto, LOW);
enciende=0; // permitir activacion y desactivacion de rodillo y fresadora
}
optoValor=analogRead(tijeraIn);//lectura sensor optico
if (optoValor >800){
digitalWrite(corteCanto, LOW);
digitalWrite(avanceOUT,LOW);
delay(1000);
}
magnetValor=digitalRead(avanceIN);
if (magnetValor==LOW && enciende==0){
digitalWrite(cortecanto,HIGH); //activacion fresadora
delay(3000);
digitalWrite(avanceOUT,HIGH); //acivacion rodillo
}
}