new feature idea: battery voltage
Hi,
has this idea been discussed before? At least I haven't seen it. Anyway, I would like to see battery voltage in MPGuino and started searching how to measure 12V battery voltage (max should be 15V I think) and found this link and some other voltage divider pages. http://www.clarenceho.net:8123/blog/...test-voltmeter I am going to build it, probably It even does not need extra input to mpguino - I am going to measure 12V input voltage before voltage regulator. Voltage regulator signal would be used as Vref :) extra parts needed: 2 resistors and some wire :P I am choosing resistors to make divide-by-three divider, so signal to atmega input is 0-5V What ohms should I choose? 10K and more I think? Also I am going to add coolant temperature to this screen (needs extra input pin) along with liters/hour and RPM new screen will be "Car sensors" or similar. Meelis |
An alt with a bad voltage regulator can hit 20V+. That doesn't happen often, but it would suck to add your 'duino to the repair bill. I would go for divide-by-5 at least. That should give you a 0-25V range with 0.024V steps. Way more precision than necessary.
|
Update: My mpguino is showing battery voltage :)
|
Congrats! Care to share some pics for us drooling geeks? :D
|
I can make some pics to show how it is installed but meanwhile that battery voltage is not hard to imagine how it shows on LCD display.
It is like "V 12.21" :) I have modified format function to replace leading zeroes with spaces - instead "012.34" it shows " 12.34" |
Quote:
|
Quote:
The inputs on the other hand are unregulated and designed for TTL-level input - 0 to 5V. A divide-by-3 voltage divider would turn that range into 0-15 volts, which a malfunctioning alternator can exceed. It's entirely possible the inputs can handle voltages in that range without damage, but if we can avoid such an occurrence by simply choosing different resistor values, why take the chance? |
I think this is a great idea. My old truck sometimes likes to energize the fuel pump just for fun, and it drains the battery. It'd be nice to get some warning when it is in that "mood".
I can imagine unwelcome potential consequences from coupling the raw 12v to the analog inputs of the arduino. I'm not sure voltage dividers would be sufficient. I also want to minimize pin use, and I'd like to free up some pins from the original design. Thinking about features... I can see two voltages that would be useful - The running voltage, which would reflect alternator output, etc (call it "running volts", RV). And the lowest voltage from the battery while the vehicle was off ("cold volts", CV). The CV code would need to ignore the drop in voltage that occurs at startup. An option could be added to display CV at startup. Maybe it would periodically flash on the display for the first 60 seconds after startup, reducing in frequency over time, and also display on a diag screen? We might have an option to store the average RV, and flash an alert if it seems low? It might be neat to have optional code to track a voltage drain over time by monitoring CV. So we might monitor the decrease in CV per hour, and report a voltage drop per hour, or per day. |
Quote:
|
Quote:
Maybe if you use high value resistors for your divider. Low values might pass enough current to out-feed the power regulator. If the regulator can basically run backwards, that might not be a problem. If it can't, you'll end up with greater than 5V as VCC. Also, the forward bias voltage of the diode would mean the input hits 5.7 volts (or so, depending on the diode) before it starts clamping down. |
Quote:
|
can someone post a simple wiring diagram of what exactly was done here? And maybe an example of the code added? I mean really, what's the idea of posting hey I got mine to do this! and then not posting anything substantial on how you did it?
|
I don't think we've found a safe way to do it yet.
Another thought - maybe the 12v could be monitored via the analog input for the buttons. That way, it wouldn't tie up another input. |
Quote:
Quote:
|
Quote:
I'd guess the drop in voltage due to the starter would also be a gotcha. The code would probably need to detect that, to avoid false button triggers. Configuring the voltage dividers in a fairly narrow range would probably help reduce false triggers. The more inputs that are free for pressure, temp, etc, the better. |
That's a good idea, most cars won't start if battery V is less than 10V or so, I know a Metro's computer needs at least 9V to run. You could essentially ignore any voltage below 10V or so since if your voltage is below that you will know it via less technical means.
|
Yep. You could set the minimum even lower if you wanted to be able to diagnose bad battery cells or something; 5V maybe? That would be 1V after the divider, or 200 or less when read in code.
Code:
if(analogRead(pin#) < 200) {doButtonAction;} |
Here is my working function:
Voltage divider ratio could be bigger but I had these resistors and it is working. * correct R1 and R2 value to resistor values you use. For calibration, you can fine-tune these numbers * you also must define voltagePin with correct pin number Code:
#define voltagePin 2 12V...R1...VoltagePin...R2...GND so it means R1 is between 12V and VoltagePin, R2 is between VoltagePin and GND |
MPGuino
Quote:
|
Why not just display PID 42 Control module voltage ??
|
HP gain
In a 4 litre V8 LS400, what % HP gain would you get if you took the fan belt off (just for the exersize).... Like on a dyno, one run... any guesses ?
|
Quote:
|
Quote:
|
Quote:
Back on topic, nice work Meelis. |
All times are GMT -4. The time now is 08:47 AM. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Content Relevant URLs by vBSEO 3.5.2
All content copyright EcoModder.com