![]() | |
Kuva 1. |
Tämä
ei ole mikään tarkkuusmittalaite. Pyrkimyksenä onkin hiukan
valottaa joitakin elektroniikan perusasioita. Mittausperiaate tässä
on se, että sarjaan kytketyn sekä reaktanssin (kondensaattori tai
kela) että ohmisen vastuksen yli oleva jännitehäviö on yhtä
suuri.
Kuvassa
1 kytkentä on kondensaattorin osalta.
Sinijännite
syötetään kondensaattorin napaan (U1) ja
10-kierrospotentiometrillä säädetään vastusarvo (R) sellaiseksi,
että jännite (U2) säätövastuksen navassa on puolet
syöttöjännitteestä. Jännitteitä mitataan Arduinon
analogiatuloilla ja vertaillaan ohjelmallisesti. Seuraavassa kuvassa
on laskentakaavat kondensaattorin ja kelan ”vastusten”
riippuvuudelle taajuudesta. Niistä on helppo havaita, että
kondensaattorin ”vastus” pienenee taajuuden kasvaessa, ja kelan
vastaavasti kasvaa.
![]() | |
Kuva 2. Laskentakaavat |
![]() | |
Kuva 3. |
Vastuksessa
jännite ja virta ovat samanvaiheisia, mutta kapasitanssissa virta on
90 astetta jännitettä edellä. (Vastaavasti induktanssissa virta on
90 astetta jännitettä jäljessä.) Kuva 2 havainnollistaa
tilannetta kondensaattorin osalta.
Kuvassa
suurempi signaali on U1 ja pienempi U2. Näytöltä on helppo
havaita, miten vastuksen navoissa oleva jännite on puolet
syöttöjännitteestä ja noin 45 astetta syöttöjännitettä
edellä. Virta molempien läpi on samanvaiheinen, joten muutos näkyy
jännitteessä.
Arduinolla,
kuten muutamassa edellisessä päivityksessä on toteutettu, on
varsin helppoa muodostaa suorakulmasignaalia aika korkeillekin
taajuuksille. Sen sijaan siniaallon synnyttäminen on melko
mahdotonta. Tämän mittausperiaatteen käyttäminen
suorakaideaallolla on mahdotonta, sillä signaalin sisältämät
harmoniset taajuudet sotkevat täysin jännitevertailuna toteutetun
mittausperiaatteen.
![]() |
Kuva 4. Testielektroniikan kytkentä. |
Yllä
olevassa kaaviossa on Arduinon lisäksi viisi (5) toiminnallista
osaa. 1). Kondensaattorien 0,32 uF ja 1 kohm vastusten
muodostamat (vasemmalla ylhäällä) vaiheensiirtopiirit. Niitä on
kolme (3) kappaletta, ja tällä pyritään 180 asteen vaihesiirtoon.
Kukin sarjapiiri kääntää jännitettä noin 60 astetta ( 3 x 60 =
180). Tosin kaikki muutkin kapasitanssit, kuten hajakapasitanssi
vaikuttavat vaihesiirtoon, mutta niiden vaikutuksen vähäisyyden
vuoksi ne voidaan tässä unohtaa. Joka tapauksessa ainoastaan
yhdellä taajuudella voi tämä 180 asteen vaihesiirto toteutua,
joten signaali on hyvin puhdasta siniaaltoa. Näillä arvoilla
taajuudeksi tuli 403 Hz. Siniaallon puhtauden edellytyksenä on, että
koko signaalitie toimii lineaarisella alueella. 2).
Seuraavaksi signaali viedään vahvistinpiirille (LM3900) ja sen
negatiiviseen tuloon. Vahvistinpiirissä tapahtuu täten jälleen 180
asteen vaihesiirto. Vahvistimen lähdöstä vahvistettu signaali
johdetaan takaisin CR-vaihesiirto-osan alkuun. Tässä tapahtuu täten
myötäkytkentä. Kun vahvistus kumoaa piirissä syntyvät häviöt,
alkaa piiri värähdellä. Vahvistusta voi säätää
trimmeripotentiometrillä P2.
Säätö
on hyvin herkkä ja liika vahvistus saa signaalin negatiiviset huiput
”tökkimään” maapotentiaaliin ja positiiviset huiput
syöttöjännitteeseen (+12 VDC tässä tapauksessa). Signaali siis
säröytyy, jolloin se ei enää ole puhdasta siniaaltoa. Yritinkin
tehdä automaattisen säädön LDR-vastuksen ja LEDin avulla, mutta
tuo tarjokkaana ollut valovastus ei toiminut vaihtojännitteellä.
Signaalin
saa säädettyä käsinkin puhtaaksi. Tuo operaatiovahvistin (siinä
on yhdessä piirissä neljä (4) vahvistinta) on virtatuloinen piiri.
Siksi negatiiviseen napaan johdetaan pieni virta (bias) ja
positiiviseen napaan trimmerillä säädettävä virta, minkä avulla
vahvistimen lähtö säädetään noin puoleen väliin, jotta
lineaarinen alue olisi mahdollisimman laaja.
Myös
tämän vahvistimen lähtö on virtasyöttöinen, joten siinä on
oltava kuormitusvastus. Maksimivirta on 1,3 mA, joten tuolla 5,7
kohm:in vastuksella on helppo säätää lähtöjännite
syöttöjännitteen puoleen väliin. 3).
Koska tuota vahvistinta ei voi juurikaan kuormittaa, toimii
transistori 2N3904 emitteriseuraajana pienentäen lähtöimpedanssia.
4). Transistorin
emitteriltä signaali johdetaan mittauspiiriin (TEST). Sen
etupuolelta tasasuunnataan kahdella diodilla jännite Arduinon
analogiatuloa varten.
Jos
vaihtojännitemittari (yleensä näyttää tehollisarvoa RMS) näyttää
1,5 VAC, on dioditasasuuntauksen (molempia puoliaaltoja varten on
oltava diodi) jälkeen noin 4,3 VDC. Tehollisarvo pitää jakaa 0,7
:llä, jotta saadaan huippuarvo ja diodit vielä kertovat jännitteet
kahdella. Siis: tuon huipusta huippuun (pp) 4,3 volttia pitää voida
värähdellä piirin lineaarisella alueella. Samoin jännitteen tulee
olla alle 5 VDC, mikä on Arduinon analogiatulon maksimijännite. 5).
Kymmenkierrospotentiometrillä säädetään testikappaleen
(kondensaattori tai kela) ja potikan välinen jännite puoleen väliin
syöttöjännitteestä. Tämän indikointia varten on kaksivärinen
LED, mikä vilkkuu punaista hitaasti, jos jännite on alle puolen
välin ja nopeasti, mikäli jännite on yli puolen välin. Oikealla
arvolla (luonnollisesti pieni toleranssi) palaa LED vihreänä.
Kymmenkierrospotentiometrin
lukema syötetään EXELiin, missä lasketaan mitattavan komponentin
arvo.
![]() |
Kuva 5. Taulukkolaskennan tuloste. |
Kuva 6. Kytkentähässäkkä. |
Potentiometrin
vastusarvo on siis kymmenkertainen säätimen lukemaan verrattuna.
Tuo ylimääräinen 5 ohm johtuu siitä, että potikka ei mene aivan
nollaan, vaan pohjalla on juuri tuo viisi (5) ohmia. Samassa
taulukossa on myös induktanssin laskenta. Tuolla taajuudella ja
potikan lukemalla induktanssi olisi siis 1,11 Henryä. Se on todella
iso kela. Edellisen päivityksen tehohakkurissa oli käytössä 3,1
mH kela. Jos sitä kelaa mitatessa haluttaisiin potentiometrille sama
lukema (165), pitäisi värähtelytaajuuden olla noin 144 kHz (tätä
en edes kokeillut).
Oheisessa kuvassa on koko kytkentähässäkkä. Mitattava kondensaattori on tuo
sininen suorakaide melko keskellä kuvaa. LED palaa juuri vihreänä,
joten mittaus on ok.
Ohjelma
on varsin yksinkertainen. Pääohjelmassa aluksi mitataan molemmat
analogia-arvot ja vertaillaan if .. esle if .. else
rakenteella, onko mitattavan kapasitanssin jälkeinen jännite alle
puolen välin; miinus neljän (-4) toleranssi, jos ei, niin onko se
yli puolenvälin; plus neljän (+4) toleranssi. JOS kumpikaan tilanne
ei toteudu, on jännite toleranssin puitteissa puolessa välissä.
Itse vilkutus tapahtuu aliohjelmassa (void Fun_Vilkku(int
askel){), mihin kutsussa
välitetään tulostusaskelta vastaava numero (1, 2 tai 3).
Aliohjelmassa tutkitaan ensin, onko askel erisuuri kuin kaksi (2).
Jos on, niin vihreä valo sammutetaan ja suoritus hyppää joko
nopeaan tai hitaaseen vilkutukseen. Ohjelman suoritus ei kuitenkaan
jää aliohjelmaan viiveen ajaksi, vaan käy ainoastaan katsomassa,
milloin vilkun puolijakso on kulunut.
OHJELMA
52
/***************************************
*
Ohjelma LC_Mittari_52
*
3.12.2017
*
Ohjelma vertailee kahta jännitettä ja
*
ohjaa LEDejä sen mukaan.
**************************************/
//
MÄÄRITTELYT:
//
Mittauksen märittelyt
const
int Con_AnaTulo1 = 0;
int Int_AnaArvo1 = 0;
const
int Con_AnaTulo2 = 1;
int Int_AnaArvo2 = 0;
int Int_Ohjaus = 0;
//
Vilkutuksen määrittelyt
int intViive = 1;
const
int Con_LED_Vih = 2;
const
int Con_LED_Pun = 3;
boolean
LED_Tila = false;
//
ALIOHJELMAT
void
Fun_Vilkku(int askel){
const
int conHid = 750;
const
int conNop = 200;
if(askel
!= 2){digitalWrite(Con_LED_Vih, LOW);}
switch
(askel) {
case
1:
digitalWrite(Con_LED_Pun, LED_Tila);
intViive--;
if(intViive
== 0){
intViive
= conHid;
LED_Tila
= !LED_Tila;
}
break;
case
2:
digitalWrite(Con_LED_Vih, HIGH);
digitalWrite(Con_LED_Pun, LOW);
break;
case
3:
digitalWrite(Con_LED_Pun, LED_Tila);
intViive--;
if(intViive
== 0){
intViive
= conNop;
LED_Tila
= !LED_Tila;
}
break;
}//
Case-rakenteen loppu
}//
Vilkku loppu
void
setup() {
Serial.begin(9600);
pinMode(Con_LED_Vih, OUTPUT);
pinMode(Con_LED_Pun, OUTPUT);
}
void
loop() {
Int_AnaArvo1
= analogRead(Con_AnaTulo1);
Int_AnaArvo2
= analogRead(Con_AnaTulo2);
if(Int_AnaArvo2
< Int_AnaArvo1/2 -4){Int_Ohjaus = 1;}
else
if(Int_AnaArvo2 > Int_AnaArvo1/2 +4){Int_Ohjaus = 3;}
else
Int_Ohjaus = 2;
Fun_Vilkku(Int_Ohjaus);
delay(1);
}//
Pääohjelma loppu