IAC valve is a control not a sensor, but can cause a code if it is not changing RPMs as computer expects.
Codes are about the computer's preset parameters of ranges that are for the most part reliable if taken with a grain of salt.
A code doesn't mean a sensor or control is bad, and no code doesn't mean a sensor or control is good.
i.e. you can have perfect engine operation and have the CEL come on, or you can have engine problems and no CEL will come on........
The computer has two modes of operation, Open Loop and Closed Loop.
Open Loop doesn't use any "feedback" from sensors, computer runs preset spark and fuel/air mixtures from tables it has in memory.
This mode is enabled when computer first starts up, and it will stay in this mode for a minute or two if engine was already warmed up or it will stay in Open Loop until engine coolant temp is above about 150degF, about 5 minutes.
This is also "Choke mode" if engine is cold, computer will set high idle, 1,000rpms, advanced spark, and a rich fuel mix.
As engine warms idle will slowly drop down until preset warm idle RPM is reached, 650-750rpm depending on transmission.
Once engine is warmed up computer will switch to Closed Loop, it will now use O2 sensors to adjust fuel/air mix in real time and use the CPS(cam position sensor) to adjust spark and injector timing, so it is using feed back from the sensors instead of tables in memory.
The ECT(engine coolant temp) sensor is what the computer uses to "see" engine temp, this is a TWO-wire sensor only used by the computer.
The dashboard temp gauge uses a one-wire SENDER to show you the engine temp.
If you have an OBD II reader then I would check the engine temp, cold and then warm.
If ECT sensor is reporting the wrong temp to computer then you would get hard starts.
i.e. if ECT says engine is at 190degF all the time then when engine is cold it wouldn't have a high idle and would have too lean of a mix for a cold engine, computer wouldn't think anything is wrong because all its parameters are based on engine temp of 190degF, but engine would lack power, stall and be hard to restart.
Same for IAC valve, if it is dirty then computer might set a code if it wasn't moving but if it was just sticking now and then it wouldn't, engine would stall when put in gear because IAC valve/idle is to low, and then not restart easily because IAC valve is stuck and not opening all the way.
Computer can't monitor IAC valve, it is a step motor, computer sends it a voltage "pulse" to set motor/valve to a specific point, computer does monitor RPM but if engine has stalled it would have no way to tell if "full open voltage pulse" it sends for cranking actually opened the IAC valve.
And you should never change sensors or controls without testing them first, a $25 Volt/OHM Meter will save you hundreds of dollars if you mistakenly replace perfectly good sensors or controls.
Last edited by RonD; 05-16-2014 at 01:58 PM.