I don't know why I'm doin' this here 'cause it should be in 101, but here goes.
First thing is that all the different manufacturers have their own type of controls, most with different names for parts that achieve the same thing. Wayne has correctly remembered, (as a student of Automotive 101, The Hobos' guide to car care), that you can get a check engine light for many different components, none of which are the actual problem. Waynes' first fault was for an O2 sensor. What did it say? System rich. Remember, that don't mean too much fuel. O2s measure oxygen. The O2 was seein' too much air. Why? First indication of a vacuum leak or an exhaust leak. (That's right. A crack in the Y pipe before or at the O2 fitting, or broken Exhaust Manifold stud, allows additional air, (oxygen) to scavenge in past the O2, which immediately sees it).
After that, he started seein' other faults. I've never counted them; never attempted to because of so many different engine and vehicle types, but there is most likely about 500 fault codes that will turn on the check engine light, including the transmission. And lately, I've had two different vehicles turn on the check engine light but had no faults in the engine controller. Go figure! One was because of a problem in the Radio Frequency Hub, (which has nothing to do with the Radio), and another because our F'ed Up emission machine took the bus down in the vehicle. There's about 40 faults just for the O2 sensors. (They're very important in closed loop fuel control).
Any way, here are some fault codes I've pulled using a 2013 Dodge Ram 1500 5.7L Hemi V-8, for evaporative emissions.
P0440 General Evap System Failure.
P0441 Evap purge system performance. (You're looking at a vacuum problem here).
P0442 Evap system medium leak.
P0443 Evap purge solenoid circuit. (You're looking at an electrical problem here).
P0452 Evap pressure switch stuck closed.
P0455 Evap system Large Leak.
P0456 Evap system Small leak. (The most common and hardest to find).
P0457 Evap system loose fuel cap.
Regardless the size of the leak in the Evaporative Emission System, the very first fault the PCM sets is for a SMALL LEAK! Not a problem for Wayne in the arid desert, but here in the rust belt, imagine a guy fires up the truck in the morning and he's on his way somewhere, and a large chunk of rust falls off the fuel filler neck creating a hole, big enough that the purge solenoid's engine vacuum cannot overcome the size of the leak; the switch in the Evaporative System Integrity Monitor opens, and the PCM logs a fault for a small leak, and turns on the CEL. Since the guy is on his way past the dealer, he stops in, shuts the truck off, and leaves it at the dealership. The tech goes out, fires it up and road tests the vehicle, then brings it in and hooks up the Scan tool. Does he see a P0456 for a small leak. No, he sees a P0455 large evap leak. Why? 'Cause on that second start, after the PCM logged the small leak, the PCM conducted an intrusive test into the Evap system, and discovered that after purging for a programmed amount of time, it either did not see the ESIM switch close, or it closed and opened immediately after the PCM turned off purge, therefore, large leak.
What I'm gettin' at here is you might have run out and bought an O2 sensor and installed it, but you didn't fix anything. Did I ever tell you that I hate cars?

If you agree with the Progressives, it's freedom of speech. If you disagree, it's hate speech. There are no alternatives.