Seuraavat ominaisuudet tulisi kokonaisuudesta ainakin löytyvän:
Yksi lähtökohta oli tietenkin hinta. Kovin monia satasia ei olisi tarpeenmukaista projektiin upottaa. Niinpä akuksi tuli valittua Bebekin myymä 12V 4Ah lyijyhyytelö. Selvää oli myös, että akun yhteyteen tarvitaan riittävän alykäs säädin, jotta älytön käyttäjä saa systeemistä kaiken irti. Romppeistani löytyi yksi PIC16F872 -mikro-ohjain. Siitä löytyy 10 bittinen AD-muunnin, sekä yksi 10 bitin PWM ulostulo. Oleellisimmat ominaisuudet tähän projektiin. Muutenhan piiri on turhan iso - eli siis turhan paljon io-nastoja, mutta tilasta ei tällä kertaa ollut puutetta. Mokkula on tietenkin uudelleenohjelmoitava, joten mahdolliset uudet ideat ja vanhojen korjailut saa ohjelmoitua piirille aina uudelleen.
Kytkennäksi hahmottelin seuraavanlaista:
Käyttöjännitteenä prosessorilla on 5V, joka tuotetaan LM2931 regulaattorilla. Kellona 4MHz keraaminen resonaattori. Prosessori on siis jatkuvasti kytkettynä akkuun. Sähkön kulutus lepotilassa pidetään kurissa ohjelmallisesti. Kun latausvirta eikä liioin lamppu ole kytkettynä käy prosessori nukkumaan, jolloin virrankulutus on likimain olematonta. Noin 1.5 sekunnin välein prosessori herää vahtikoiransa herättämän ja tarkistaa onko käyttäjä kytkenyt lampun tai latausvirran. Jos ei, niin jatketaan unia.
Prosessorin (tai tarkemmin mikro-ohjaimen) pinnista RC2 saadaan pulssileveysmodullaatorin (PWM) ulostulo. Tämä on suoraan kytketty logiikkatasoin ohjattaman FET:n (IRF7401) gatelle. Fetti on yksi kolmesta kohtalaisen arvokkaasta komponentista tässä kytkennässä akun ja PIC:n ohella.
30K ja 10K vastuksista muodostuvalla jaolla syötetään akkujännite piirin AD-muuntimelle. Muuntimen referenssitasoiksi on ohjelmallisesti valittu käyttöjännite - molemmista päistään (+5V / 0V). AN0 nasta siis toimii analogisena sisäänmenona.
Latausvirta kytketään taasen jollain sopivankokoisella transistorilla. Tässä kohden ei ole niin suuria vaatimuksia, sillä 'seinäsähköä' on varaa hieman tuhlata lämmöksikin. Valitsin kytkentääni ensimmäisen sormiin osuneen sopivan transistorin ja se sattui olemaan TIP42A.
100k:n vastuksista tehdyt jännitteenjakajat sekä lampun, että latausvirran johtimista viestivät prosessorille milloin ko. toimintoja tarvitaan. Kun käyttäjä napsauttaa lampusta virtakytkimen päälle, saa prosessori tästä tiedon lampun miinusjohdon noustessa akkujännitteeseen. Vastaavasti kun käyttäjä sammuttaa lampun jää lampun miinus 0V tienoille ja prosessori voi mennä nukkumaan.
Vastaavalla tavalla tunnistetaan latausvirran ilmaantuminen latausliittimeen.
Kuvasta puuttuu, mutta laitteessa on vielä 10A sulake juotettuna akun + korvakkeeseen. En ole uskaltanut testata kumpi hajoaa oikosulussa. Sulake vai suht' arvokas FET:ti.
Rakensin kytkennän täpläkuparoidulle kytkentälevylle. Piirilevyn koon sovittelin siten, että se sopi hyvin akun päälle napojen väliin.
Allaolevassa vasemmassa kuvassa näkyvät hyvin laitteen käyttöliittymän
muodostavat kolme lediä. Oikeanpuoleisesta kuvasta ei kytkennästä
juuri selvää saa. Sen sijaan Bastan U-lukon kiinnitystelineestä
sahaamani muovikappale ja tähän ruuvien ja epoksiliiman avulla
kiinnitetty taivutettu alumiinilevy näkyvät hyvin. Akku on nippusiteiden
lisäksi kaksipuolisella teipillä alumiinilevyssä kiinni.
Hyvin on pysynyt. Huomaa myös riittävän tukeva johto.
![]() |
![]() |
Seuraavissa kuvissa näkyy akun yläpuolinen rakenne. Tämä
on syntynyt sulateliimasta ja videokasettikotelon kansimuoveista. Akun
päälle olen liimannut u:n muotoisen katoksen, jonka alle piirilevy
työnnetään. Piirilevyn reunoissa on muovilevyt ohjaamassa,
sekä estämässä kontaktit akun napoihin. Vasemmassa
kuvassa on myös samaisesta videokasettikotelomuovista juotoskolvilla
hitsailtu suojakansi. Oikeanpuoleisessa kuvassa on sekä latausjohto,
että sarjakaapeli kytkettynä. Sarjaliitäntä tuo mukavan
lisäominaisuuden, josta kuvien alla lisää.
![]() |
![]() |
Lähetettä voi tietysti kotsella jonkin terminaaliohjelman
ikkunalta, mutta mukavammin selväkielisessä muodossa vielä
graafisin palkein avitettuna. Näin siis seuraavissa kuvissa. Ylempi
palkki on jännite ja alempi lampun paahdon pulssisuhdeprosentti. Vasemmanpuoleisessa
on lataus meneillään. Keskimmäisessä ylläpito,
eli lataus pienemmällä jänniterajalla (13.8V). Oikealla
paistetaan lamppua.
![]() |
![]() |
![]() |
Syväpurkausrajan ja kapasiteettimittarin rajajännitteiden selvittämiseksi suoritin purkukokeen. Akkuvahhti-ohjelma tallettaa säätimeltä saamiaan arvoja tiedostoksi, joka kelpaa gnuplot:lle. Seuraavassa kuvassa akun jännite ajan funktiona lamppua paahdettaessa. Ajan yksikkö on sekunti ja jännitteen (yllättäen) voltti.
Alarivillä olevat värilliset pampulat kuvaavat ledien käyttäytymistä lampun palaessa. Aluksi vihreä ledi vilkahtaa nopeasti kolme kertaa peräkkäin ja pitää taukoa. Sähkön kuluessa vilkahdukset tippuvat kahteen. Jossain vaiheessa vaihdetaan myös toisenväriseen lediin ja toisin kuin tässä testiajossa lamppu sammutetaan jännitteen alittaessa 11 volttia.
Kapasiteettimittaritoiminnossa olisi siis hyvinkin paljon kehitysmahdollisuuksia. Käyttämälläni pic:llä saisi helposti paljon enemmän ledejä käyttöön. Ja kun lyijyakun jännite näyttäisi tippuvan kokolailla lineaarisesti ajan kuluessa, voisi sopivasti skaalattu led-jännitemittarikin ajaa kapasiteettimittarin virkaa. Ainakin rajajännitteet olisi voinut valita huolellisemmin, sillä kolmen vihreän vilkahduksen jakso on turhan lyhyt.
Akun tyhjentyessä nykyinen ohjelmaversio ei mitenkään
varoita käyttäjää (paitsi satulan alla vilkkuvalla
punavalolla) sähkön loppumisesta. Ajovalo palaa täydellä
kirkkaudella, kunnes yht' äkkiä sammuu. Olisi ehkä kohteliaampaa
tiputtaa ajovalon kirkkautta ennen pimennystä, jotta kuski kerkeisi
hieman hidastaa. Toistaiseksi moisesta ei ongelmia ole ollut, sillä
valojen tarve ei ole reilua neljän tunnin kestoa hätyytellyt
(vielä).
Ensimmäinen ja enitenkäytetty lienee unisilmukka, jossa prosessori pysäyttää itsensä sleep -komennolla. Vahtikoira on alustettu herättämään nukkuja reilun sekunnin välein. Herätessään prosessori tarkistaa onko lampu kytketty, jos ei niin onko latausvirta kytketty. Mikäli kumpikaan ei ole vilkautetaan lediä, lähetetään tavu sarjaporttiin ja jatketaan unia.
Mikäli lamppu oli kytketty siirrytään lamppusilmukkaan. Silmukassa mitataan akkujännite prosessorin ad-muuntimella. Mittaustuloksesta lasketaan sopiva pulssisuhde lampulle. Pulssisuhde saadaan seuraavasta kaavasta:
pwm = (6.2V ^ 2) / (mitattu_jännite ^ 2) * 100%
Tällä saadaan siis 6.2V tasajännitettä vastaava teho kulkemaan lampulle. Miksi 6.2V tehollinen jännite 6V sijaan - no koska 6V näytti niin himmeältä! :-)
Kuinka 6V lamppu sitten kestää kytkennän suoraan 12V akkuun. No kestäähän se hetken. Pwm:n taajuus on kytkennässä 244Hz, eli 25% pulssisuhteella lamppu on 'päällä' n. 1ms ja poissa n. 3ms.
Lampppusilmukassa niin ikään hoidetaan sarjaliikennettä, vertaillaan mitattua jännitettä raja-arvoihin ja vilkutellaan ledejä kapasiteettimittarimielellä. Lamppusilmukasta hypätään unisilmukkaan jos huomataan akkujännitteen 11V alitus tai huomataan käyttäjän katkaisseen lampun virtapiirin esim. lampun virtakytkimellä.
Lataussilmukkaan tullaan unisilmukasta, jos latasjohtoon ilmestyy jännitettä. Latausvirta on rajoitettu käyttämällä sopivan heikkotehoista verkkomuuntajaa. Virta on noin 1A luokkaa. Jännitettä rajoitetaan katkomalla latausvirran pääsyä akulle. Algoritmi on äärimmäisen yksinkertainen. Mitataan akun jännite. Jos yli rajan, lataus pois - jos alle lataus päälle. Tämä toistetaan n. 250 kertaa sekunnissa.
Lataus tapahtuu kaksivaiheisesti. Ensimmäisessä vaiheessa (vaihe1: lataus) rajajännite on 14.6V. Kun akun jännite ylittää 14.5V käynnistyy aikalaskuri, jonka laskenta kestää n. 10 minuuttia. Akun tullessa täyteen pidetään siis tuota korkeampaa jännitettä yllä tuo 10 minuuttia, minkä jälkeen siirrytään ylläpitolataukseen. Muuten sama homma, mutta nyt rajana onkin 13.8V (vaihe2: ylläpito). Tätä latausta jatketaan sitten niin kaunan, kuin latausjohdosta tulee sähköä.
Vihreä ledi palaa jatkuvasti latauksen aikana. Punainen vaiheessa
1, kun latausvirta kytketty (alkaa siis vilkutella tuon 14.6V rajan ilmaantuessa).
Ylläpitotilassa punaisen ledin homman ottaa keltainen, joka sitte
enemmän tai vähemmän satunnaisesti vilkahtelee säätimen
pitäessä akun jännitettä 13.8V tuntumassa.
Toistaiseksi tältä sivulta ei löydy itse ohjelmakoodia,
mutta harkitsen sen laittamista myös näkyville. Sitä täytyisi
vain hieman siistiä, jotta se olisi julkaisukelpoinen.
Akku 12V 4Ah
n. 100,- Bebek
PIC16F872
n. 40,- ProByte
FET IRF7401
n. 40,- Farnell
verkkolaite 15.2V 670mA n. 20,-
Bebek
muut
n. 50-100,-
Tietenkin askartelua ja koodinvääntöä useita tunteja,
mutta eihän näissä harrastuksissa työlle hintaa lasketa.
![]() |
Suojakansi elegantisti teipillä kiinni.
U-lukon kiinnikkeen kestävyys arvelutti aluksi. Akkukun painaa n. 1.7 kiloa. Hyvin on kuitenkin pysynyt - joskaan en ole vielä kaatunut akun kanssa kunnolla, joten siltä osin testit vielä jatkuvat. |
![]() |
Kunnon kurakelejä varten täytynee suojakotelo saada tiivistetty
jollain tapaa. Nyt johdot tulevat tuosta teipin alta aika rumasti ja jättävät
myös veden mentävän kolon.
No eihän se erityisen kaunis ole, mutta kelpaa pimeässä.
Vihreäpäinen johto on liitin latausjohdolle. Satulatolpan ympäri
kiertävä johdin on matkalla ohjaustangolle...
|
![]() |
...eli tänne. Keltainen nappi on lampun virtakytkin
ja samalla systeemin ainoa liikkuva osa. Käyttö on siis lähes
samanlaista, kuin alkuperäiselläkin akulla.
Lampun syttymisessä tosin on prosessorin unijaksoista johtuva viive, joka tuntuu hieman hämmentävältä. Lampun pehmeä käynnistys kestää noin sekunnin, mikä on myös erona 'normaaliin' välittömään vasteeseen. Kuvassa myös väkivaltaisen modifikaation kokenut mittarinkiinnike. Epoksilla, kuparilangalla ja nippusiteillä mittari kiinnittyi ohjaustangon sijaan ohjainkannattimeen. |
![]() |
Sehän jopa toimii... |