Me podrían ayudar con éste código..

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);
}