Spanning meten met Arduino

Afgelopen periode heb ik problemen gehad met mijn accu’s en mijn zonnepaneel.

De accu’s werden onvoldoende opgeladen dus daar moest een oplossing voor komen.

In deze post heb ik een soort van workaround gemaakt, maar dat is toch niet afdoende. Ik wil dit automatiseren.

Hiervoor wil ik een Arduino gaan gebruiken. Ik heb er nog één liggen die hiervoor wel dienst kan doen en misschien dat ik dat later nog ga om programmeren in een ATtiny. Dat is iets voor de toekomst.

Mijn bedoeling is om het zonnepaneel af te schakelen als de spanning op de accu’s lager wordt dan 10,5V.

Om dit te meten zal de Arduino een A0-A5 moeten gebruiken, maar ik ga GEEN 12V of meer op één van deze poortjes zetten. Dan krijg ik waarschijnlijk te maken met magische rook :).

Op internet heb ik een schema gevonden waarmee ik tot 55V kan meten.

hogere voltages meten met Arduino tot 55V
hogere voltages meten met Arduino tot 55V

In dit schema zal de BT1 (battery) mijn accu-bank zijn. Op A2 komst dan een spanninkje binnen wat onder de 5V ligt en wat dus kan worden gemeten.

/*————————————————————–
Program: volt_measure

Description: Reads value on analog input A2 and calculates
the voltage assuming that a voltage divider
network on the pin divides by 11.

Hardware: Arduino Uno with voltage divider on A2.

Software: Developed using Arduino 1.0.5 software
Should be compatible with Arduino 1.0 +

Date: 22 May 2013

Author: W.A. Smith, http://startingelectronics.org
Vertaling: 12volt.kloppenburgweb.nl
————————————————————–*/

// number of analog samples to take per reading
#define NUM_SAMPLES 10

int sum = 0; // som van samples die zijn genomen
unsigned char sample_count = 0; // huidige sample nummer
float voltage = 0.0; // Berekende voltage

void setup()
{
Serial.begin(9600);
}

void loop()
{
// Neem het aantal samples en tel ze bij elkaar op
while (sample_count < NUM_SAMPLES) {
sum += analogRead(A2);
sample_count++;
delay(10);
}
// Bereken de spanning
// gebruik 5.0 voor de 5V referentie spanning
// 5.015V is de spanning die is gemeten tussen de GND en 5V op de Arduino
// Deze wordt gebruikt in de berekening
voltage = ((float)sum / (float)NUM_SAMPLES * 5.015) / 1024.0;
/* print het voltage vermenigvuldigd met 11.132 naar de Serial monitor
Dit getal is berekend op de volgende manier:
meet de spanning over R2 (100k) dus met andere woorden tussen
de Arduino A2 pen en de GND aansluiting (vb 0.98V)
Meet de spanning van de accu’s (gewoon over de GND en de + aansluiting) (vb: 10,54V)
Het getal waarmee moet worden vermenigvuldigd is nu als volgt te berekenen:

10,54 / 0.98 = 10.7551
Vul dit getal hieronder in om de juiste calibratie te verkrijgen

*/
Serial.print(voltage * 10.7551);
Serial.println (” V”);
sample_count = 0;
sum = 0;
}

Het programma kan hier worden gedownload

Nu kan ik dus de voltage meten van de accu-bank, maar nu moeten er nog relais geschakeld worden om er voor te zorgen dat als de accu spanning onder de 10,xx volt komt het relais dan overschakelt van het zonnepaneel naar de computervoeding.

Dit moet ik nog wel even uitzoeken hoe dat gaat, maar ik denk dat ik een goedkoop relais ga gebruiken wat of de ene of de andere kant op schakelt. Of moet ik gebruik gaan maken van twee relais waarvan er 1 is aangesloten op de 12v aansluiting van het zonnepaneel en deze standaard doorkoppelt naar de charge controller en de andere niet…

Hier nog een voorstelling van hoe de relais zouden moeten gaan werken

 

zonnepaneel, relais en voeding
zonnepaneel, relais en voeding

Hier een schematische voorstelling met een Arduino er bij

Arduino, zonnepaneel, accu, voeding, charge controller en relais
Arduino, zonnepaneel, accu, voeding, charge controller en relais

 

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.