No acabo de entender lo que quieres, pero a ver si te ayuda un poco:
byte ledPin1 = 3;
byte infraPin = 5;
byte motor = 2;
byte botonPin = 8; // Este lo supuse
bool valorInfra;
bool estadoBoton;
bool estadoAnterior = false;
bool salida = false;
void setup()
{
pinMode(ledPin1, OUTPUT); // Inicializa el pin del LED1 como salida digital
pinMode(motor, OUTPUT);
pinMode(infraPin, INPUT);
pinMode(botonPin, INPUT);
}
void loop()
{
valorInfra = digitalRead(infraPin); // Lee el valor de la entrada 5, esto es, el valor que lee el infrarrojo
digitalWrite(ledPin1, valorInfra);
estadoBoton = digitalRead(infraPin);
if(estadoBoton && !estadoAnterior)
{
salida = !salida ;
delay(20);
}
estadoAnterior = estadoBoton;
digitalWrite(motor,salida);
}