![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg68Cko_8ZdLuj2Z64MzZvz6kAG5ijEho4FtJNZWNvJwNQ6TPVSigL-G8TEYzfPCK0W8jlKFOb-KtuKsgbdabZeXycIm-nLfofDA7ntELbv6x1_rofBwpIzo3WaUsiulcnBqHgriPsG2Hlj/s320/LK2.jpg)
Akkukin
kuluu käytössä, joten on hyvä tietää paljonko akussa on
kapasiteettia jäljellä. Tässä mittarissa purkauksen kuormituksena
on lamppuja ( 1 .. 3, 21 W lamppua, 1,75 .. 5,25 ampeeria) ja virran
mittaukseen käytetään Hall-anturia (alue 0 .. 50 A). Anturin
mittausalue on huomattavasti laajempi kuin purkausvirrat, joten kovin
hyvään tarkkuuteen (muutama %) ei päästä, mutta se ei ole
tarpeenkaan, sillä tarkoituksena on saada selville, onko akku vielä
käyttökelpoinen vai syytä jo vaihtaa uuteen. Tuo 5 ampeerin virta
on samaa luokkaa, mitä 12 V:n Peltier-elementillä toimiva jääkaappi
kuluttaa, joten tämä on hyvä tutkimus juuri mökkikäyttöön.
Tämän
päivän trendi on tallettaa energiaa, sillä enemmän ja enemmän
ollaan siirtymässä sähköllä toimiviin laitteisiin. Energiaa
saamme auringosta. Vaahtoamme uusiutuvasta energiasta.
Tuuligeneraattorit, aurinkopaneelit, aurinkokeräimet jne. Ihan hyvä
ja tällä hetkellä erittäin tärkeä argumentti, mutta tuo tuonne
alkuun lykkäämäni sana ”vaahtoamme” johtuu siitä, että
ihmisille halutaan antaa ”mielikuva” siitä, että auringon
energia olisi uusiutuvaa. Ei ole! Aurinko muuttaa vedyn
fuusioreaktiossa syntyvän energian fotovirraksi, mistä me saamme
osamme (maapallon puolisko on vain pieni pläntti avaruudessa).
Auringon vety ei uusiudu, sitä ei tule mistään lisää, mutta sen
loppumista meistä kukaan tällä hetkellä täällä ihmettelevä ei
tule näkemään. Käytetään siis sitä hyvällä omallatunnolla,
sillä sen käyttö ei lisää kasvihuoneilmiötä, eikä se meidän
elinaikanamme juurikaan vähene, eikä tulevien tuhansienkaan
sukupolvien aikana sitä tee.
Nyt
olen hiukan heikoilla jäillä. Etsin kyllä netistä ja
tietosanakirjoista ja muista teknisistä lähteistä, mutta en oikein
löytänyt tukea opiskeluaikani käsitykselle, että akun
kapasiteetti standardin mukaan ilmoitetaan 10% purkausajalla. Toisin
sanoen, jos akun kapasiteetiksi ilmoitetaan 100 Ah, niin 10 A:in
virralla se pystyy syöttämään virtaa 10 tunnin ajan (lopussa 12
V:n akun jännite on noin 10,5 V). Tälle en löytänyt tukea, mutta
kuten myöhemmin tässä käy ilmi, niin erisuuruisilla
purkausvirroilla akun kapasiteetiksi saadaan erilaisia arvoja. Jos
tuo standardi pitää paikkansa, niin kaupallisesti on tarjolla
akkuja, joiden ampeerituntimäärä (Ah) on merkitty 20 tunnin aikana
(5% purkausvirta kapasiteetista). Täten halutaan ostajalle antaa
standardia positiivisempi mielikuva. Myös latausvirran olisi hyvä
olla 10% kapasiteetista. Akutkin kehittyvät ja niitä voidaan myös
pika ladata. Se tosin jossain määrin lyhentää akun käyttöikää.
Näissä
testeissä olen käyttänyt vanhoja, käytöstä poistettuja akkuja.
Ne ovat sopivia juuri tähän tarkoitukseen, sillä niiden
kapasiteetit ovat hyvin vähissä, mistä johtuen purkautumista ei
tarvitse odotella pitkään.
Esimerkki:
purkausvirran vaikutuksesta akun kapasiteettiin: Testissä oli vanha
75 Ah akku, jossa oli jäljellä muutama ampeeritunti. Yhden lampun
purkauksella (noin 1,7 A) kapasiteetiksi tuli 8,4 Ah ja kolmen lampun
purkauksella noin 7 Ah. Kapasiteetti pieneni siis noin 17,5 %.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6z1M-ZwqmUUocK2zj9veVpvnH6YAkcYJfcc87m6nGAk8MNh_9dnLwQM2tqTNHYufbQ8yYoe2J4QgQ4LsmtCqVhrPbFrJVg5wUpONrLH2sg9hZ-BiYKnebsxS_HuY4qBkj9Mlu4PQMVsef/s400/LK1mp.jpg)
Kun
johdot on kytketty akkuun, tulee LCD-näyttöön kehotus
käynnistyksestä. Koska ihminen on hätäinen (varsinkin tekniikasta
kiinnostunut), alkaa laite mittaamaan ampeerisekunteja (Asek). Koko
mittauksen ajan virta luetaan ja summataan sekunnin välein. Kun
ensimmäinen minuutti on ohi, näyttöön päivittyy ampeeriminuutit
(Amin). Saatu summa jaetaan nyt luvulla 60. Kun tunti tulee täyteen,
päivittyvät ampeeritunnit (Atun Oikeastihan ne ovat As, Amin ja Ah)
ja summa jaetaan luvulla 3600.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgd7a3D4Pp3V26opBurKLegjAIwtBF22yughkeUaeVVvfwWr6WF2Sm3k2qIr62oqydteCU4s9n5-wwHoddwgrsHEqzogqEDcDP4MjdJdhdwSeKujPDcYIuNFNHEf6tSspJjLTphFTIvt5LO/s320/N%25C3%25A4yt%25C3%25B6t.jpg)
Ohjelmasta
Aluksi
määritellään vakiot ja muuttujat. Asetuksissa (suoritetaan
ainoastaan kerran) päivitetään ensimmäinen näyttö. Sen jälkeen
on 1 s tauko, jotta tilanne stabiloituu. Sitten talletetaan
Hall-generaattorin pohjalukema, mikä on noin puolet
käyttöjännitteestä (5 V). Hall-generaattori mittaa
magneettikentän voimakkuutta, joten ympäristökin vaikuttaa tähän
pohjalukemaan. Siksi se pitää kerran tallettaa. Virran suunta joko
kasvattaa tätä generaattorin lähtöarvoa tai pienentää sitä.
Tämän arvon ja pohjalukeman erotuksesta muodostetaan mitattu
virta-arvo. Lopuksi asetuksissa määritellään painike tuloksi ja
rele lähdöksi.
Itse
toimiva ohjelma muodostuu muutamasta sekvenssiaskeleesta ja parista
aliohjelmasta. Toisessa aliohjelmassa päivitetään näytön
tekstejä ja toisessa mitattuja numeroarvoja.
Ohjelma57
/***************************************
*
AkunKapa
*
22.06.2019
*
Akunkapasiteettimittaus.
**************************************/
//
MÄÄRITTELYT:
//
LCD-näyttö
#include
<LiquidCrystal.h>
LiquidCrystal
lcd(3, 2, 7,6,5,4);
const
byte api = B11100001; // ä
//
Mittaukset
const
int Con_Akku = 0; // Akun jännitteen mittaus
int
Int_AkkuRaaka = 0;
const
int Con_Virta = 1; // Purkausvirran mittaus
int
Int_VirtaRaaka = 0;
int
Int_VirtaPohja = 0;
float
Flo_Akku = 0.0; // Akun jännitemittaus
float
Flo_Virta = 0.0; // Kuormitusvirran mittaus
float
Flo_Kapa = 0.00; // Laskettu kapasiteetti
const
float Con_Pohja = 0.25; // Laitteen omakäyttö
//
Ohjaukset
const
int Con_START = 8;
boolean
Bol_START = false;
const
int Con_Rele = 9;
boolean
Kep_Rele = false;
int
Seq_Purku = 0; // Purkaussekvenssi
//
Kellon määrittely (sisäinen kello)
unsigned
long Ulo_MilliSek = 0;
unsigned
long Ulo_UusiMilliSek = 0;
const
long CoL_EroSekunti = 999;
long
Lng_Sekunti = 0;
boolean
Bol_Tulosta = false;
//
ALIOHJELMAT
//
Tekstien päivitys
void
Fun_Tekstit(int kohta, int rivi,String teksti){
lcd.setCursor(kohta, rivi);
lcd.print(teksti);
}//
Teksti_ali loppu
//Numeroiden
päivitys
void
Fun_Lukemat(int kohta, int rivi, float lukema){
lcd.setCursor(kohta, rivi);
lcd.print(lukema);
}//
Mittaus_ali loppu
//
ASETUKSET:
void
setup(){
Serial.begin(9600);
lcd.begin(20,2);
lcd.clear();
lcd.setCursor(5,
0);
lcd.print("K");
lcd.write(api);
lcd.print("ynnist");
lcd.write(api);
lcd.print(",");
lcd.setCursor(4,
1);
lcd.print("paina
START");
delay(1000);
//
Hall-generaattin pohjatason talletus
Int_VirtaPohja
= analogRead(Con_Virta);
pinMode(Con_START, INPUT_PULLUP);
pinMode(Kep_Rele, OUTPUT);
}//
Asetuksen loppu
//
PÄÄLOOPPI
void
loop(){
//
Sisäisen kellon käyttö
Ulo_MilliSek
= millis();
if(Ulo_MilliSek
- Ulo_UusiMilliSek > CoL_EroSekunti){
Ulo_UusiMilliSek = Ulo_MilliSek;
Lng_Sekunti++;
if(Seq_Purku
> 0 && Seq_Purku < 5){
Flo_Kapa
= Flo_Kapa + Flo_Virta;
}
//
Akun jännitteenmittaus
Int_AkkuRaaka
= analogRead(Con_Akku);
Flo_Akku
= Int_AkkuRaaka / 68.2;
//
Purkuvirran mittaus
Int_VirtaRaaka
= analogRead(Con_Virta);
Flo_Virta
= (Int_VirtaRaaka - Int_VirtaPohja) / 8.7;
}
//
Luetaan tulo
Bol_START
= !digitalRead(Con_START);
//
Käynnistetään purkusekvenssi
if(Seq_Purku
== 0 && Bol_START == true){
Lng_Sekunti
= 0;
Seq_Purku
= 1;
}
//
Purkaussekvenssi
switch
(Seq_Purku) {
case
1: // Päivitetään näyttö
lcd.clear();
Fun_Tekstit(0, 0, "Akun purku:
V");
Fun_Tekstit(13, 1, "A");
Fun_Lukemat(16, 1, Flo_Virta);
Kep_Rele
= true;
Seq_Purku
= 2;
break;
case
2: // Ampeerisekunnit
Fun_Lukemat(15, 0, Flo_Akku);
Fun_Tekstit(0, 1, "Asek: ");
Fun_Lukemat(6, 1, Flo_Kapa +
Con_Pohja);
Fun_Lukemat(16, 1, Flo_Virta);
if(Flo_Akku
< 10.5){ Seq_Purku = 0;Kep_Rele = false;}
if(Lng_Sekunti >= 60){
Fun_Tekstit(6, 1, " ");
Seq_Purku
= 3;
}
break;
case
3: // Ampeeriminuutit
Fun_Tekstit(0, 1, "Amin: ");
Fun_Lukemat(6, 1, (Flo_Kapa +
Con_Pohja)/60);
Fun_Lukemat(15, 0, Flo_Akku);
Fun_Lukemat(16, 1, Flo_Virta);
if(Flo_Akku
< 10.5){ Seq_Purku = 0;Kep_Rele = false;}
if(Lng_Sekunti >= 3600){
Fun_Tekstit(6, 1, " ");
Seq_Purku
= 4;
}
break;
case
4: // Ampeeritunnit
Fun_Tekstit(0, 1, "Atun: ");
Fun_Lukemat(6, 1, (Flo_Kapa +
Con_Pohja)/3600);
Fun_Lukemat(15, 0, Flo_Akku);
Fun_Lukemat(16, 1, Flo_Virta);
if(Flo_Akku
< 10.5){
lcd.clear();
Kep_Rele
= false;
Seq_Purku
= 5;}
break;
case
5:
Fun_Tekstit(0, 0, "VALMIS!
V");
Fun_Lukemat(15, 0, Flo_Akku);
Fun_Tekstit(0, 1, "Akun kapas.
Ah");
Fun_Lukemat(15, 1, (Flo_Kapa +
Con_Pohja)/3600);
break;
}//
Purkaussekvenssin loppu
//
Releen ohjaus
digitalWrite(Con_Rele, Kep_Rele);
delay(1);
}
// Pääohjelma LOPPU