Could be literally dozens of reasons.
Whenever the CEL iluminates, the on-board computer will store a faultcode.
You will have to get this code read & interpreted, to see what the computer says.
Or, you could purchase an inexpensive codereader & do it yourself.
This is the one I use.
http://www.iequus.com/item.asp?cid=7&pid=3100