Electronic Gurus

I do similar using my ECU and graphical display on PC and Android devices. I measure RPM, by measuring the time between cylinder events, for fast update and internal use in fuel and spark delivery. The graphical user interface, GUI displays RPM as a greem bar, turning to red, and also show numeric value. I do that on temperatures and boost indicators too. The GUI is the part there the RPM set points are adjusted, however the ECU has built in RPM limiter. The RPM limiter cuts off fuel as necessary to regulate RPM. It is very smooth, but can be heard. The GUI reports many more real time parameters, AFR, TPS throttle position, intake temperature, engine temperature, injector pulse width, ignition timing, MAP, ECU temperature .... But what I enjoy most is driving, hearing the engine sing, forgetting all the gauges.

After the excessive post above, to do the light change, use a micro controller. If you do not have a conditioned RPM signal (0-5V pulses), then that needs to be done first. My ECU puts out a tach signal, since direct fire systems have multiple coils. The tach out connects to tach, and does not load the ignition like a normal tach does on a coil. Then write a program to measure and compare to settings you desire, and control pins to drive mosfets for driving LED. The Arduino nano board can be purchased for under $10, and can be programmed via a USB connection to a PC. While this may sound difficult, it is not.