Originally I made 7-segment voltage meter, but sun made it difficult to read. Figured to make analog version with smart backlight; colour switches when over-or-under voltage situation arises. Voltage meter tells if there is truly problem in battery/charging circuit, as if that battery-light lights up, there either is problem, or problem is just looming as in bad contact (that said, It's still warning light so why it lights up, should be investigated)
Bacllight circuit could have been made with window-comparator circuit and other discretes, but space was limited (wanted backlight control inside casing of meter). Also, less parts mean less troubleshooting when troubles arise.
Step 1: Items Needed
1: meter, any analog model will do that has possiblity to attach backlight
2: AtTiny85, microcontroller of choise, small and this project doesn't need horsepower either. Plus this runs on 8Mhz internal clock so even further eliminated parts. (and you can hack it to run 16Mhz internal too if you like)
3: voltage regulator 12v->5v (AtTiny85 doesn't like 12v much), Since this project doesn't need hefty power, linear 7805 works fine. Of course LDO versions work also. PLUS Capacitor to smooth output bit. Capacitor should also be placed in input also as well as AtTiny85's vcc pin.
4: RGB/RB led, can be either common anode/cathode, just need to wire differently. I used common cathode RGB clear lens.
PLUS resisor for it, one is enough, to common cathode or anode, since there is only one led lit always.
5:Trimmer, so set easily voltage reading for AtTiny. Can be either 1 turn or 10-turn.
6: Way to program AtTiny, I used arduino Uno as ISP with this help:
6: Wire, protoboard, connectors etc...stuff that depends how you want to install this. I also recommend fuse as well as possible over-voltage protection, some cars give quite spark during startup.
Step 2: Putting It Together.
Depending on what sort of protoboard you like to use, or fabricate PCB, in either case stuff can happen. Before applying power, check that there is no dead-short in power-connector (In my case, that white connector). You don't want to short circuit car battery. After that, check that GND and +5v go where they should; Attiny85's pin 4 and pin 8 are those. After that, before hooking Attiny, place power without it in place. Reason is you can't know what voltage will attiny receive in analogread() pin, and it'll fry in case 12v goes straight to it. Reason why this voltage is not fed throught 5v regulator, is because we want to monitor voltage BEFORE it. So, analogRead() pin should show 3.12 volts with multimeter when you apply 10 volts in input connector. Now it should be safe to hook attiny85.....after loading code!.
I tried to comment as much as possible in code if you want to manipulate it for you own voltage levels. just don't manipulate through that trimmer!
Now all left to do is to hook this so it doesn't dry your battery while monitoring. Either you place switch, or more conveniently, use ignition switch (or relay that is controlled with ignition switch). This step can be bothersome, pretty much all cars use their own wiring scenarios. just find that wire that shows battery voltage when power is on, but engine not yet running. On other hand I recommend to take car battery off while searching around, but it makes easier to find that specific wire when battery is hooked up. Just be careful, don't short out anything. If your'e worried, ask away and I'll help what I can.
Step 3: Testing.
Now you've survived of installing that meter, time to test it properly. In idle, voltage should be, depending on car, 13-14 volts (can be more in cold start also). The more you turn on appliances, more voltage drops. This way, in case voltage drops during normal driving, you know there is definitely something wrong, or if voltage rises too much (It's not impossible to see alternator put closer 20 volts in case of fault, I experienced it. Best thing to do if this happens is to shut car off to prevent further damage. And if you smell something odd, well, better just walk bit away.....)
Ask, comment if you feel need for it!