12v Solar battery monitor
-
Here are what my graphs look like. You can see your voltage should be a bit higher if all is well

-
Hi. i have read the post's you have made, one problem i have found its on the voltage sensing module don't now why it's not workin, simply dead, i have already bought 3 other modules and now i'm waiting for them to arrieved hope to get them until friday.
Have seen your graphs and they are really differents from mine.
Once again today with the multimeter i've made some readings from the battery and i got values in 13,2V - 12,9V and this values were measured at 19:00
Once again Thanks for helping me
-
@Boots33 said:
30k for R1 and 7.5k for R2
I was going to try to build the voltage sensing but i don't have any 7.5K resistor.... i can put 3 10k Resistors in serie to get the 30k Resistor but i cant make the 7.5K.
Can i use one 10K resistor in the place of the 7.5K, will this work ?? or will the values i'll get be rong??
-
Yes that would work. That would give you a maximum input of 20v so you will need to change relevant line in the sketch from 25000 to 20000
You can try different values on this web site. http://www.raltron.com/cust/tools/voltage_divider.asp
-
I really don't get this.
Has i can see i did everything correct but i'm still getting weard values.... In the charge regulator that i have the solar30 i'm connecting the ACS712 like you told.
The voltage dividir i had it connected also on the battery vcc for the 30K resistor and ground on the 10K resistor, over the code i ahd change the "voltSenseMax" to 20000.With this changes the House battery went from 8.4V to 16.2V but when i make the reading off the battery with a multimeter i get 13V and also the charge regulator screen shows 13V...
The charge current is over 0A now but is night at my place ill wait until tomorrow to see if this values change over the morning and day.
The load current is 9.1A this one i dont get it...




-
When you were measuring 13v at the battery what was the voltage at pin A0 on the arduino. You will need to compare the readings to see if the divider is working correctly. Have you removed the comments on the serial print lines , you can then check those results with your other measurements. Also check the resistance of the resistors in your voltage divider with your multimeter to make sure they are close to the values you expect.
From what I can see in the picture the asc712 looks to be hooked up OK. They are very sensitive to electromagnetic interference so you may want to try it further away from your regulator.
-
Hi.
Ok i did not measure the pin A0 when i was measuring de 13V over the battery but i can do that.I have removed the comments but i hook up the arduino in the battery box and did not look over the serie monitor on PC, once again i'll do that today.
I think the voltage divider i ok, i did a check using a 3,7V battery and the values ia had get with the voltage divider were 0,20% differente from the ones i was getting over the multimeter, 3.2V to 3.4VI'm going to mak some changes over the place were the asc712 is, i have a box on the wall 40cm to 80cm distance off the batteryes. That's were the ACS712 is going to be.
Thanks.
-
Just took the readings from pin A0 and the values are 3.2V when the battery readins says 13V.
The house battery is fix at 16V or 16.2V but i could not move the acs712 to the box i wanted it's night now and i can't see well, sow this change will be done tomorrow. While i'm wainting let's see if this 16V changes during the day off tomorrow.Well it's being dificult to get this project work like a charm but it's staring to get tune up thank's to your help Boots33.
-
I've a mistake when said 4 arduino nano with some sensors, correcting this mistake:
1º arduino nano with UV sensor;
1º arduino nano with lux sensor, pressure sensor, temp/hum sensor and one anemometer; "this is my meteo box sensor"
1º arduino nano with the acs712, voltage sensor and the dallas temperature sensor
1º arduino nano controling a rain gauge.It's 4 arduino nano with 7 sensors, i don't believe that all this put together are draining 8.6A from the battery. Isn't this a too high value ?
-
3.2v at A0 sounds about right for a 20v divider reading 13v at the battery. So your divider seems to be OK. you now need to check the results from those serial print statements and see how they compare.
The code for the voltage measurement is pretty simple with the map function doing most of the work. Not a lot to go wrong there I think. But we will know more when you get the above results.
8.6A is too high for the current. if you were drawing that much your 20ah battery would be flat in a couple of hours, so the reading is wrong. Can you check with your multimeter and see how much is being drawn. I would not think it would even be 1 amp with just 4 arduino's connected
-
With a 3.2v at A0 you should have a count of around 656 from the serial print
-
Hi once again.
Today i had to dismount all the solar system my arduino nano just died... don't now why and also the repeater node also dead...I had replaced the arduino for the solar system i had also put he battery inside my house to make all the tests.
here is the serial monitor log:Requesting temperatures...
sum count...511
mapped volts...10.0
Milliamps...-95
Requesting temperatures...
sum count...522
mapped volts...10.2
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.2
Milliamps...-95
Requesting temperatures...
sum count...506
mapped volts...9.9
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:9.9
Milliamps...-95
Requesting temperatures...
sum count...511
mapped volts...10.0
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.0
Milliamps...-95
Requesting temperatures...
sum count...511
mapped volts...10.0
Milliamps...-95
Requesting temperatures...
sum count...511
mapped volts...10.0
Milliamps...-95
Requesting temperatures...
sum count...511
mapped volts...10.0
Milliamps...-95
Requesting temperatures...One thing i had notice now is that house voltage is 10V but solar regulator and multimeter says 13V, and i had moved the acs712 away from the battery.
The test i made was one CPU fan connect to the solar regulator load, this fan is 12A - 0.25A.
Running the fan the solar regulator shows a Load off 0.1A and the arduino shows values between 0A and 0.3Asend: 6-6-3-0 s=255,c=0,t=17,pt=0,l=5,sg=0,st=ok:1.5.1
send: 6-6-3-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:3
sensor started, id=6, parent=3, distance=2
send: 6-6-3-0 s=255,c=3,t=11,pt=0,l=21,sg=0,st=ok:Battery Status Sensor
send: 6-6-3-0 s=255,c=3,t=12,pt=0,l=1,sg=0,st=ok:1
send: 6-6-3-0 s=0,c=0,t=6,pt=0,l=0,sg=0,st=fail:
send: 6-6-3-0 s=1,c=0,t=6,pt=0,l=0,sg=0,st=fail:
send: 6-6-3-0 s=3,c=0,t=38,pt=0,l=0,sg=0,st=fail:
send: 6-6-3-0 s=4,c=0,t=39,pt=0,l=0,sg=0,st=fail:
send: 6-6-3-0 s=5,c=0,t=39,pt=0,l=0,sg=0,st=fail:
sum count...511
mapped volts...10.0
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=fail:10.0
find parent
send: 6-6-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,st=bc:
Milliamps...52
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.1
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=fail:0
Requesting temperatures...
send: 6-6-3-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=fail:30.3
send: 6-6-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0,st=fail:-127.0
sum count...517
mapped volts...10.1
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.1
Milliamps...200
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.2
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures...
send: 6-6-3-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=fail:29.9
sum count...511
mapped volts...10.0
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.0
Milliamps...126
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.1
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures... -
OK that is good you can now see the serial print lines. The voltage conversion seems to look ok .... a count of 511 shows a voltage of 10. So now I need you to get all the readings at once
measure battery voltage
measure pin A0 voltage
and show the serial data as you have abovethen we can see where the trouble lies
-
Battery Voltage - 13.09
pin A0 - 1.055send: 6-6-3-0 s=255,c=0,t=17,pt=0,l=5,sg=0,st=ok:1.5.1
send: 6-6-3-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=fail:3
sensor started, id=6, parent=3, distance=2
send: 6-6-3-0 s=255,c=3,t=11,pt=0,l=21,sg=0,st=ok:Battery Status Sensor
send: 6-6-3-0 s=255,c=3,t=12,pt=0,l=1,sg=0,st=fail:1
send: 6-6-3-0 s=0,c=0,t=6,pt=0,l=0,sg=0,st=fail:
send: 6-6-3-0 s=1,c=0,t=6,pt=0,l=0,sg=0,st=ok:
send: 6-6-3-0 s=3,c=0,t=38,pt=0,l=0,sg=0,st=fail:
send: 6-6-3-0 s=4,c=0,t=39,pt=0,l=0,sg=0,st=ok:
send: 6-6-3-0 s=5,c=0,t=39,pt=0,l=0,sg=0,st=fail:
sum count...532
mapped volts...10.4
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=fail:10.4
Milliamps...347
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=fail:0.3
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=fail:0
Requesting temperatures...
send: 6-6-3-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=fail:29.5
send: 6-6-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0,st=ok:-127.0
sum count...513
mapped volts...10.0
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.0
Milliamps...347
Requesting temperatures...
send: 6-6-3-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:29.4
sum count...519
mapped volts...10.1
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.1
Milliamps...421
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.4
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures...
send: 6-6-3-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=fail:29.5
sum count...511
mapped volts...10.0
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.0
Milliamps...347
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.3
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures...
send: 6-6-3-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=fail:29.4
sum count...511
mapped volts...10.0
Milliamps...347
Requesting temperatures...
send: 6-6-3-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:29.5
sum count...511
mapped volts...10.0
Milliamps...200
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.2
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures...
sum count...485
mapped volts...9.5
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:9.5
Milliamps...273
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.3
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures...
sum count...510
mapped volts...10.0
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.0
Milliamps...347
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.3
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=fail:0
Requesting temperatures...
sum count...501
mapped volts...9.8
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:9.8
Milliamps...347
Requesting temperatures...
sum count...511
mapped volts...10.0
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.0
Milliamps...347
Requesting temperatures...Once again i had connect the 12v fan to the load of the charge regulator
-
If you are still using the 20v divider, with a battery voltage of 13.09 you should have a voltage of 3.27 at pin A0
1.055v is way too low, check you connections to make sure they are tight. measure the voltage at the divider input to make sure the 13v is there as well.
post results again
-
3.29v It's the value i'm getting at the end off the 20v divider but at pin A0 i have 1.23V
Requesting temperatures...
sum count...198
mapped volts...3.9
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:3.9
Milliamps...200
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.2
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures...
sum count...511
mapped volts...10.0
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.0
Milliamps...126
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.1
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures...
sum count...511
mapped volts...10.0
Milliamps...-21
send: 6-6-3-0 s=4,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
send: 6-6-3-0 s=5,c=1,t=39,pt=7,l=5,sg=0,st=fail:0.0
Requesting temperatures...
sum count...520
mapped volts...10.2
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.2
Milliamps...126
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.1
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=fail:0
Requesting temperatures...
sum count...533
mapped volts...10.4
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.4
Milliamps...52
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.1
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures...
sum count...511
mapped volts...10.0
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:10.0
Milliamps...-21
send: 6-6-3-0 s=4,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
send: 6-6-3-0 s=5,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.0
Requesting temperatures...
sum count...511
mapped volts...10.0
Milliamps...200
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.2
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures... -
then that is where the problem may be. the output of the divider should be connected to A0 so they should be the same. look at the diagram below


-
I think the problem is fix now.
bad cable between ground from 20v divider and arduino ground.
now i'm getting the same value at pin a0here are the new logs
send: 6-6-3-0 s=255,c=3,t=11,pt=0,l=21,sg=0,st=ok:Battery Status Sensor
send: 6-6-3-0 s=255,c=3,t=12,pt=0,l=1,sg=0,st=ok:1
send: 6-6-3-0 s=0,c=0,t=6,pt=0,l=0,sg=0,st=ok:
send: 6-6-3-0 s=1,c=0,t=6,pt=0,l=0,sg=0,st=fail:
send: 6-6-3-0 s=3,c=0,t=38,pt=0,l=0,sg=0,st=fail:
send: 6-6-3-0 s=4,c=0,t=39,pt=0,l=0,sg=0,st=fail:
send: 6-6-3-0 s=5,c=0,t=39,pt=0,l=0,sg=0,st=ok:
sum count...715
mapped volts...14.0
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:14.0
Milliamps...-21
send: 6-6-3-0 s=4,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
send: 6-6-3-0 s=5,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.0
Requesting temperatures...
send: 6-6-3-0 s=0,c=1,t=0,pt=7,l=5,sg=0,st=ok:29.3
send: 6-6-3-0 s=1,c=1,t=0,pt=7,l=5,sg=0,st=ok:-127.0
sum count...710
mapped volts...13.9
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:13.9
Milliamps...52
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.1
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures...
sum count...713
mapped volts...13.9
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:13.9
Milliamps...-21
send: 6-6-3-0 s=4,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
send: 6-6-3-0 s=5,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.0
Requesting temperatures...
sum count...711
mapped volts...13.9
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:13.9
Milliamps...200
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.2
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures...
sum count...712
mapped volts...13.9
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:13.9
Milliamps...200
Requesting temperatures...
sum count...709
mapped volts...13.9
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:13.9
Milliamps...126
send: 6-6-3-0 s=4,c=1,t=39,pt=7,l=5,sg=0,st=ok:0.1
send: 6-6-3-0 s=5,c=1,t=39,pt=2,l=2,sg=0,st=ok:0
Requesting temperatures...
sum count...713
mapped volts...13.9
send: 6-6-3-0 s=3,c=1,t=38,pt=7,l=5,sg=0,st=ok:13.9
Milliamps...126
Requesting temperatures...still using the cpu fan 12v 0.25A pin A0 3.28V
Mapped volts 13.9 it's very near the 13.2V the multimeter gives at the battery.
This is the best results i had until now.Thanks boots33 for all your help.
-
Great to hear you have found the problem. If the voltages are not quite correct you can adjust the 20000 value up or down a bit as needed to fine tune the output result.
You can use these to check for the problem
for a 20v divider
20/1024 = .019531
to get the count that should be shown by serial print...: batteryvoltage / .019531
so with your reading 13.09 / .019531 = 670
That means you should see a count of 670 from the serial printto get the voltage that should be at pin A0...: count * .00488
670 * .00488 = 3.27v
to get the map result
20000/1024 = 19.531mv or .01953v
so 670 * .01953 = 13.1v