Hola.
En el código que ya tengo, lo que se afecta con ese pin es la primera sección del loop, aquí es donde tengo que asegurarme que no lea el pin 2 si el 3 está activo; esto es lo que se me ocurre:
int timer = 10000; //Timer predefinido
byte pulsador, opto, pin3;
//****************************************************
void setup()
{
pinMode(6, INPUT);
pinMode(13, OUTPUT);
pinMode(5, INPUT);
pinMode(4, INPUT);
pinMode(3, INPUT); //Para mayor facilidad, el mismo numero
Serial.begin(9600);
}
//****************************************************
void loop()
{
int x = timer / 1000; //Convierte el timer en segundos
Serial.println(String("El temporizador actual es: ") + x + String(" Segundos"));
Serial.println("Comprobando computador y pulsador...");
pulsador = digitalRead(6); //Lee el pulsador
Serial.println(String("Pulsador: ") + pulsador);
pin3 = digitalRead(3); //Lee el pin 3
Serial.println(String("Pin 3: ") + pin3);
opto = digitalRead(4); //Lee el optoacoplador
Serial.println(String("Computador: ") + opto);
pin3 = digitalRead(3); //Lee (de nuevo) el pin 3
Serial.println(String("Pin 3: ") + pin3);
delay(50);
Serial.flush(); //Vacía el bufer de puerto serie
if (pin3 == 0) //modifica el tiempo solo si el pin3 está desactivado
{
if (opto == HIGH) //El optoacoplador se activa segun tiempo definido en programa
{
Serial.println("Computador activado \nModo activación + ajuste temporizador");
timer = 0; //Pone a 0 el timer para ajustarlo
Serial.println("Temporizador puesto a 0");
timer = encender(0); //Activar torniquete y ajustar timer
}
}
//...
}
Ahora bien, en este momento tengo el pin 2 de LPT conectado por medio del optoacoplador, según lo que me dices, se podría obviar (en especial porque no tiene sentido que un pin lo use y el otro no), pero no veo como lo conectaría directo sin generar problemas por la conexión a tierra (no se si exista esa posibilidad).
