I would try clearing results.value after you use them, so they are not holding the same value during the next pass thru loop. And add some { }s
if(results.value ==2){
digitalWrite(ledPin,HIGH);
results.value = 0;
}
else{
digitalWrite(ledPin,LOW);
}
if(results.value ==1){
digitalWrite(fan,HIGH);
delay(500);
digitalWrite(fan,LOW);
results.value = 0;
}
results.value = 0; // bad result received
} // end loop