I just finished a arduino Uno schield for my car to control Daytime Running Lights (DRL), and, more importantly, idle speed.
DRL part checks if engine is running, and if it is, it switches DRL on (long beams at ~ 35%). If handbrake or lights switch is on, DRL shuts off.
Idle part is somewhat complicated. I tried to do closed loop controll, but I added open loop just in case.
I have potentiometer at my lights switch that controlls how bright will lights in the dashboard be. I used that to control idle. If analog input senses voltage it will set that value as reference point. Turning the knob one or the other way (raising or lowering voltage) will move step motor that controls idle one or the other way accordingly.
But if there is no voltage at the analog input it will switch to closed loop mode, and depending on the engine temperature will try to keep idle speed at +/- 25 rpm of set value.
English is not my native language, so perhaps this is a bit confusing, so feel free to ask if something is not clear.
Also, I am open for suggestions.
So far schield is only tested on my bench (and not yet with the stepper motor), but I hope it will be OK.
I am trying to attach image and sketch, but I get error that "The message exceeds the maximum allowed length (9500 characters)." and that the folder is full, try with a smaller attachment - but the image is only 52,748 bytes.
I am tired now, I will try tomorrow again.