How did you measure that 5.0 volts? It will read 5.0 volts if the connector is unplugged, and that will set a code. You have to back-probe through the rubber seal while the connector is plugged into the sensor, or you can read the voltage on a scanner. When the sensor is plugged in and the circuit is completed, you should find between 0.5 and 4.5 volts on the signal, (5.0 volt feed wire), and 0.2 volts on the ground wire. Anything outside that 0.5 to 4.5 volt range is what triggers a fault code. The only way to get a "voltage too high" code is with a break in either of the wires, or the sensor is unplugged, and the only way to get a "voltage too low" code is if the signal wire is grounded to the engine or body.
Based on the voltage reading on those two wires, we can determine which wire has the problem and go from there. Voltage readings right at the sensor are more trustworthy on older GM products than readings on a scanner. When a defect is detected in a sensor circuit, the Engine Computer will "inject" an approximately-correct reading based on other sensor readings and operating conditions, and run on that. The confusing part is on some scanners, it's that injected value they display, not the improper value that set the code. You could read a normal 2.5 volts, for example, on the scanner, but find 5.0 volts at the sensor.
Erase the code, then watch when it sets again. If it sets as soon as you turn on the ignition switch or right after you erase it, you have a definite wiring problem. If it doesn't set until the engine has started to warm up, there is something else going on that isn't very common.
You can also monitor the voltage as the engine warms up. As the temperature goes up, the voltage will go down. At somewhere around 120 to 140 degrees, as I recall, the voltage will be down to around 1.5 volts, then the computer switches in a different internal circuit to achieve more accuracy. You'll see the voltage suddenly pop back up to around 3.5 volts, then slowly go down again as the engine warms up completely.
It is very unlikely the sensor is defective. There's only one part inside and it has an extremely low failure rate. Only Ford managed to have a rash of failures, but that's to be expected. By far the most common cause of fault codes on almost any car brand is stretched terminals in the connector that don't make good contact with their mating terminals on the sensor. The next most common thing is corroded connector terminals in other connectors between the engine and body. Those will show up as incorrect voltages at the sensor.
Saturday, August 9th, 2014 AT 2:23 AM