Buenas es una tonteria pero estoy atascado. Tengo dos barreras de infrarojos conectadas a las patas RB4 y RB5, que se ponen a 1 cuando se cortan los haces.
Pues quiero hacer un programa muy simple, que me indique si el sentido es RB4->RB5 o bien RB5->RB4, y que mande un pulso o dos en función de si es en un sentido y otro pero al final de la ultima barrera. Por ejemplo su pasa por RB4 y despues por RB5 que saque un pulso.
El inconveniente que estoy teniendo es que las barreras estan a dos centimetros, y si va en el sentido RB4->RB5, cuando llega a RB5 SIGUE cortando RB4 y en el sentido contrario lo mismo .(Es para un tren electrico). No puedo poner los leds separados porque despues quiero ponerle mas vagones. Asi que el problema principalmente es que siempre se quedan cortado los dos haces y como en la interrupcion al preguntar por RB4 o RB5 uno va primero, me da problemas.
if(input(pin_b5)==1)
{
flag_RB4=0; //Flag de la barrera 1
if (flag_RB5==0) //
{
flag_RB5=1;
pulso_ID(2);
}
}
if(input(pin_b4)==1)
{
flag_RB5=0; //Flag de la barrera 2
if (flag_RB4==0)
{
flag_RB4=1;
pulso_ID(1);
}
}
Con esto funciona bien si las barreras estan separadas y no se cortan nunca las dos a la vez.
¿Alguna ayudita? Gracias!!!