Pri merjenju različnih fizikalnih veličin (npr. temperature, napetosti, toka, tlaka, sile itd.) je točnost rezultata meritev odvisna od večjega števila mnogih dejavnikov v merilnem sistemu. Če želimo, da bi bil rezultat meritev dovolj točen, mora biti merilni sistem predhodno kalibriran.
Avtor: Mladen Čempuh
Da bi pri uporabi mikrokontrolerjev iz serije ATmega in ATtiny v procesu meritev in regulacije različnih fizikalnih veličin uporabnikom olajšal proces kalibracije, sem napisal dve Bascom AVR programski knjižnici za avtokalibracijo merilnega sistema. Programska knjižnica „Adcx.inc“ omogoča avtokalibracijo enega, po želji uporabnika izbranega AD vhoda mikrokontrolerja. Programska knjižnica „Multi Adcx.inc“ omogoča avtokalibracijo več izbranih ADC vhodov mikrokontrolerja.
Ta vsebina je samo za naročnike
Če želite odkleniti to vsebino, se naročite.
Merilni sistem je sestavljen iz merilnih elementov, ki so medsebojno serijsko povezani v merilno verigo. To so merilni senzor, eden ali več serijsko povezanih merilnih pretvornikov (merilni ojačevalniki) in AD pretvornik v mikrokontrolerju. Z obdelavo podatkov v mikrokontrolerju se izmerjena fizikalna količina lahko po želji uporabnika regulira in po želji se lahko prikaže njena vrednost na zaslonu, ki ni del merilnega sistema (glej sliko 1). Vsak element merilnega sistema s svojo napako vpliva na končno skupno napako meritev.
Merilni senzor je element merilnega sistema, ki odvisno od vrednosti fizikalne količine, za katero je namenjen, menja svojo izhodno električno vrednost (upornost, napetost, tok) pri analognih merilnih senzorjih, ali pa digitalni n-bitni podatek pri digitalnih merilnih senzorjih. Ukvarjali se bomo z merilnimi vezji z analognimi merilnimi senzorji, kot so npr. senzorji temperature Pt100 , merilni senzorji toka npr. soupor, Hall senzorji toka, analogni merilni senzorji vrtenja (potenciometri) in podobno.
Merilni pretvornik (merilni ojačevalnik) je elektronsko vezje, ki električno vrednost iz merilnega senzorja ojači in pretvori v izhodni napetostni ali tokovni signal npr. 0 do 5V, 0 do 10V, oziroma 0 do 20mA, 4 do 20mA in podobno. Zadnji merilni pretvornik v merilni verigi daje napetostni signal, ki ga vežemo na izbrani ADC vhod mikrokontrolerja. Pri tem moramo moramo upoštevati, da bo obseg spremembe tega napetostnega signala prilagojen (manjši ali enak) merilnemu obsegu AD pretvornika v mikrokontrolerju, najbolj pogosto 0 do VCC (za Reference=Avcc) ali 0 do Aref (za Reference = Aref ; Aref <= VCC). AD pretvornik mikrokontrolerja ima tudi napako AD pretvorbe. Minimalna napaka AD pretvorbe je enaka napetostnem razmerju, ki ustreza ±½ LSB (najnižjega bita) AD pretvornika. Ta napaka je toliko manjša, čim več ima AD pretvornik bitov. Pri ATmega in ATtiny seriji AD pretvornik je 10 bitni. To pomeni, da če merimo npr. napetost 0 do 5V, bo tedaj minimalna napaka meritev znašala ± 5 / (2*1024) V = ±2.4414 mV. Opominjam, da je to minimalna napaka meritev napetostnega signala v merilnemu obsegu 0 do 5V pri 10 bitni AD pretvorbi. Realna napaka AD pretvorbe je večja ali enaka navedeni minimalni napaki AD pretvorbe.
Kaj vpliva na realne napake meritev? Idealna prenosna karakteristika merilnega senzorja in merilnih pretvornikov, ki skupaj tvorijo merilni sistem, bi morala biti smer Y=k*X + L . Če ima koeficient k odstopanje od idealne vrednosti za ta merilni sistem, tedaj govorimo o napaki ojačenja (Gain error). Če vrednost L odstopa od idealne vrednosti za ta merilni sistem, tedaj govorimo o napaki pomika (Offset error). Obstajajo tudi napake nelinearnosti, ki nastajajo zaradi odstopanja prenosne karakteristike merilnega sistema od karakteristike smeri. Na napake meritev lahko vplivajo spremembe temperature, spremembe napetosti napajanja, frekvenca, prehodne upornosti in podobno.
Pri AD pretvorniku mikrokontrolerja se napaka pomika (ang. Offset error) pokaže tako, da pri vhodnem napetostnem signalu x vrednosti 0V izhodni digitalni podatek y ni 0 (glej sliko 2) . Če je ta podatek večji od 0, govorimo o napaki pozitivnega pomika (ang. Positive Offset error). Možna je tudi napaka negativnega pomika (ang. Negative Offset error), ki se manifestira tako, da je izhodni podatek 0 vse do določene vrednosti vhodne napetosti, ki je večja od 0V. Zaradi prisotnosti napake pomika zaradi česar se prenosna karakteristika pretvorbe AD pretvornika paralelno pomika v pozitivni ali negativni smeri osi y, izhodni podatek AD pretvornika lahko doseže maksimalni vrednost 1023 za 10 bitni AD pretvornik pri vhodnem napetostnem signalu, ki je manjši od referenčne napetosti AD pretvornika (napaka pozitivnega pomika) ali kadar je vhodni napetostni signal enak referenčni napetosti, je lahko izhodni podatek AD pretvornika manjši od 1023 za 10 bitni AD pretvornik (napaka negativnega pomika), in da je pri tem nagib te karakteristike raven torej, da nima napake v ojačenju. Če AD pretvornik nima napake pomika (Offset error = 0), pri vhodni napetosti, ki je enaka napetosti VCC (za Reference = Avcc) ali ki je enaka napetosti Aref (za Reference = Aref), in izhodni podatek AD pretvornika ni 1023, takrat imamo napako ojačenja (Gain error). Če se vrednost 1023 doseže pri vhodni napetosti manjši od napetosti definirani z Referenco, takrat je to pozitivna napaka ojačenja (ang. Positive Gain error) in ojačenje je preveliko. Če pa se pri vhodni napetosti, ki je enaka referenčni napetosti ne doseže vrednost AD pretvorbe 1023, ampak je manjša, takrat govorimo o negativni napaki ojačenja (ang. Negative Gain error) in ojačenje je premajhno. V grafikonih na sliki 2 zaradi lažjega razumevanja napak AD pretvornika, so karakteristike risane kot črte, v resnici pa so to stopničaste karakteristike. Prav tako, pri AD pretvorniku napaka pomika ne izključuje prisotnost in napake ojačenja ter obratno, tako da so možne tudi kombinacije teh dveh vrst napak, kar dodatno komplicira prenosno karakteristiko AD pretvornika.
Sedaj ko smo določili glavne dejavnike merilnega sistema, ki vplivajo na napake meritev, bom opisal, kako lahko zmanjšamo ali kompenziramo napake meritev.
Prvi način je, da za konkreten izbrani senzor, merilni pretvornik ali uporabljen mikrokontroler ugotovimo prenosno karakteristiko znotraj izbranega merilnega obsega in odvisno od te karakteristike napravimo matematične korekcije v svojem programu tako, da bi čim bolj točno izračunali vrednost merjene fizikalne količine. Pomanjkljivost tega načina je v tem, da če to delamo pri večjem številu merilnih veličin, je takšen način zmanjšanja napake meritev zahteven in časovno potraten, pa tudi zaplete program. Prav tako pri tem načinu zmanjševanja napake meritev, če zamenjamo bodisi senzor, bodisi merilni pretvornik ali mikrokontroler z istim tipom, se prenosna karakteristika lahko spremeni in moramo ponovno snemati prenosno karakteristiko in napraviti popravek matematičnih korekcij v svojem programu. S tem načinom lahko do neke mere kompenziramo tudi napake nelinearnosti, vendar postopek ni enostaven.
Drugi precej enostavnejši in hitrejši način je ta, da uporabimo programsko knjižnico „Adcx.inc“ za kalibracijo samo enega izbranega ADC vhoda ali programsko knjižnico „Multi Adcx.inc“ za kalibracijo večjega števila izbranih ADC vhodov in z njihovo uporabo napravimo avtokalibracijo celega merilnega sistema (ali več merilnih sistemov pri uporabi knjižnice „Multi Adcx.inc“), brez potrebe po snemanju prenosne karakteristike merilnega sistema. Ta način odstrani Gain in Offset napake vseh merilnih elementov merilnega sistema, ne odstrani pa napake nelinearnosti. Za zmanjšanje napak nelinearnosti bi bilo potrebno posneti prenosno karakteristiko in napraviti programske kompenzacije napak nelinearnosti. V večini praktičnih primerov napake nelinearnosti niso pomembne in jih lahko praktično zanemarimo. Prav tako lahko zanemarimo tudi napake, ki nastanejo zaradi spremembe napetosti napajanja, ker je napetost stabilizirana. Napake ki nastanejo z vplivom spremembe temperature okolice lahko zmanjšamo z uporabo bolj kvalitetnih senzorjev in bolj kvalitetnih merilnih pretvornikov pri čemer bomo merilne pretvornike namestili dovolj daleč od vira toplote ali hladilnih sistemov da bi se jim temperatura okolice čim manj menjala.
Merilni pretvornik, ki daje napetost na AD vhod kontrolerja pri minimalni vrednosti merjene količine (v začetku merilnega obsega), v praksi ne daje napetost 0 V, pač pa je ta napetost največkrat večja od 0 V. Ta napetost se od enega do drugega merilnega pretvornika lahko razlikuje, čeprav so merilni pretvorniki istega tipa. Prav tako pri maksimalni vrednosti merjene količine (konca merilnega obsega) je napetost na AD vhodu lahko <= VCC (za Reference=Avcc), oziroma <= AREF (za Reference = Aref) in se lahko razlikuje od enega do drugega merilnega pretvornika, čeprav sta istega tipa.
Morda je merilni pretvornik, ki ga uporabljamo, izdelan za širše merilno področje, kot nam je potrebno, mi pa ga želimo uporabljati v ožjem merilnem področju.
Vse to ustvarja določene probleme in zahteve, ki jih je relativno enostavno rešiti z uporabo programske knjižnice „Adcx.inc” za avtokalibracijo enega izbranega ADC vhoda ali “Multi Adcx.inc” za avtokalibracijo večjega števila izbranih ADC vhodov. Te programske knjižnice ne uporabljajo Timerjev mikrokontrolerja niti prekinitev, delovni takt je lahko kateri koli skladen z mikrokontrolerjem, LCD alfanumerični zaslon je nujen, navedene programske knjižnice so prilagojene dvovrstičnem izpisu na LCD 1602, lahko pa se uporabi tudi većji LCD z več kot 16 znaki v vrsti ali več od 2 vrst npr. LCD 2004. Uporabljen LCD se lahko odvisno o nastavitev v uporabniškem programu veže paralelno npr. 4 bitno ali serijsko preko I2C LCD modula.
Za delo programske knjižnice “Adcx.inc” ki bo opisana v tem članku je potrebna ena tipka (Calibration_key) vezana med po želji izbranim digitalnim vhodom in GND. Zato se razen ATmega in ATtiny44/84 mikrokontrolerjev lahko kalibrira tudi ADC vhod na ATtiny45/85 mikrokontrolerjih.
Za izpisu programske knjižnice “Multi Adcx.inc”, ki bo opisana v naslednjem članku, sta potrebni dve tipki (Calibration_key in Select_key) vezani na dva po želji izbrana digitalna vhoda in GND. Poleg ATmega mikrokontrolerja se lahko uporabi tudi ATtiny84.
Pri ATmega mikrokontrolerju za izpisu AD pretvornika na pin AVCC, ki služi za napajanje AD pretvornika, v mikrokontrolerju pripeljemo filtrirano napetost VCC preko 10uH dušilke, ter na pine AVCC in AREF vežemo keramične kondenzatorje od 100nF na GND.
V uporabniškem programu je potrebno napraviti konfiguracijo AD pretvornika mikrokontrolerja z Bascom ukazom Config Adc:
Config Adc = Single , Prescaler = Auto ,
Reference = Avcc ‘ali Reference=Aref
‘ ali Reference = Internal
Start Adc ‘ start AD pretvorbe
Če je Reference enako Aref ali Off, je v tem primeru potrebno na pin AREF mikrokontrolerja priključiti zunanjo stabilizirano referenčno napetost, ki ne sme biti večja od napetosti VCC (npr. napetost 3,3V ali npr. napetost VCC) in preventivno vezati keramični kondenzator 100nF med AREF in GND.
Vrednost za Reference je lahko tudi Avcc (filtrirana napetost napajanja) ali interna napetost Internal, ki znaša 2,56V. Pri nekaterih mikrokontrolerjih lahko izbirate med 2,56V in 1,1V. Katero od navedenih referenčnih napetosti boste izbrali, je odvisno od želenega napetostnega merilnega obsega AD pretvornika, lahko pa znaša od 0 V do manj ali enako VCC. Na ADC vhod mikrokontrolerja ne smemo pripeljati napetost, ki je bistveno višja od napetosti VCC, ker lahko uničimo AD pretvornik in mikrokontroler. Če obstaja možnost, da iz merilnega pretvornika, ki se veže na ADC vhod mikrokontrolerja, pride napetostni signal večji od napetosti VCC, lahko to preprečimo tako, da napetostni signal na vhod AD pretvornika pripeljemo preko upora npr. 100 Ohmov, med ADC vhoda in GND pa vežemo Zener diodo npr. 5V1 moči 1W, ali med ADC vhoda in +VCC vežemo malo Schottky diodo s katodo, priključeno na +VCC, s čemer bomo zaščitili ADC vhod od prenapetosti.
Programska knjižnica “Adcx.inc”
Uporablja se pri mikrokontrolerjih z minimalno 4KB Flash programskega spomina.
V uporabniškem programu je potrebno izbrati samo en ADC vhod, ki ga bomo kalibrirali. To se dela z ukazom Alias, kjer številko izbranega ADC vhoda preimenujemo v ime Channel.
Za vhod ADC0 je:
Channel Alias 0
Potrebno je definirati vhod mikrokontrolerja, na katerega bo priključena kalibracijska tipka Calibration_key.
Calibration_key Alias PIND.0 ‘ izbran je vhod PIND.0
Config Calibration_key = Input ‘ to je
vhodni pin za kalibracijsko tipko
PORTD.0 = 1 ‘ vključuje interni pull-up
upor na vhodu PIND.0
Isti vhod (tipka) se lahko v uporabniškem programu uporabi tudi za neke druge namene, vendar je takrat važno, da pri resetu mikrokontrolerja ta vhod ni v stanju 0 (da tipka ni pritisnjena), ker bo v nasprotnem zagnal proces avtokalibracije.
Npr: Enter Alias Calibration_key ali Enter Alias PIND.0 s čemer se ista tipka v uporabniškem programu uporablja pod imenom Enter.
Sedaj je potrebno v program vključiti programsko knjižnico „Adcx.inc“:
$include “Adcx.inc”
Če ni izvršena avtokalibracija izbranega ADC vhoda, bo s to programsko knjižnico avtomatsko štartala po resetu. Ponovna avtokalibracija je možna z držanjem pritisnjene kalibracijske tipke ob resetu mikrokontrolerja.
Takrat se na LCD izpiše sporočilo: Calibration key 5s for calibrate
Za začetek avtokalibracije mora biti tipka Calibration key pritisnjena najmanj 5 sekund.
Na ekranu se izpisuje sporočilo >>Calibration<< kot opozorilo, da je štartal proces avtokalibracije izbranega ADC vhoda. Kalibracija se izvaja v dveh kalibracijskih točkah.
Prva točka avtokalibracije je Minimum in zahteva, da se na izbrani ADC vhod priključi napetost, ki ustreza minimalni vrednosti merjene količine. Na izbrani ADC vhod priključimo merilni pretvornik in merjeno veličino na merilnem senzorju, ki je priključen na merilni pretvornik za npr. jakost toka ali za npr. temperaturo (Pt100 senzor) postavimo na želeni minimum začetka merilnega področja, ki ga želimo z avtokalibracijo doseči. Če nam je to problem, lahko namesto npr. Pt100 sonde na merilni pretvornik priključimo natančno uporovno dekado ali večobratni potenciometer in nastavimo vrednost upornosti, ki ustreza upornosti Pt100 senzorja na temperaturi začetka želenega merilnega obsega. Takrat moramo po avtokalibraciji uporabiti kvaliteten Pt100 senzor razreda točnosti A (odstopanje karakteristike ± 0,15°C v npr. trižični vezavi za kompenzacijo upornosti vodnikov). Na LCD se izpisuje ADC vrednost, ki ustreza temu minimumu. Sprejem tega minimuma se dobi s pritiskom na kalibracijsko tipko Calibration key. Ta vrednost s tem postane Offset parameter avtokalibracije. Pri tej vrednosti merjene količine in pri vseh vrednostih merjene količine, ki so pod to vrednostjo, bodo popravljene ADC vrednosti, ki jo izračunava ukaz Adc_correction v Single spremenljivki Adcx imele vrednost 0. Nato sledi druga točka avtokalibracije Maximum v kateri je potrebno na izbrani ADC vhod priključiti maksimalno napetost, ki ustreza maksimumu merjene količine, ki jo želimo meriti. Na izbrani ADC vhod vežemo merilni pretvornik z opombo, da njegova maksimalna izhodna napetost ne sme biti večja od napetosti reference ADC-a, merjeno veličino na merilnem senzorju postavimo na maksimum merilnega področja, ki ga želimo meriti. V primeru uporabe bolj kvalitetnega Pt100 senzorja lahko namesto njega uporabimo natančno uporovno dekado ali večobratni potenciometer. Na LCD se izpisuje ADC vrednost, ki ustreza temu maksimumu. S pritiskom na kalibracijsko tipko se sprejme ta vrednost in izračuna se parameter avtokalibracije Gain. Pri tej vrednosti merjene količine in vseh vrednostih nad tem, bo korigirana ADC vrednost v Single spremenljivki Adcx imela vrednost 1023. Parametre avtokalibracije (Offset in Gain), ter bajt spremenljivka, s katero se označi, da je avtokalibracija izvršena, programska knjižnica “Adcx.inc” shrani v interni EEPROM mikrokontrolerja (kar zavzame skupno 7 bajtov začenši od EEPROM naslova 1. Naslov 0 se ne uporablja, ker ni zanesljiv. Na LCD se izpisuje sporočilo Calibrated !, s čemer se potrdi, da je avtokalibracija zaključena in v uporabniški program se vrne iz knjižnice “Adcx.inc”. Ponovna avtokalibracija je možna samo z držanjem kalibracijske tipke minimalno 5 sekund ob resetu mikrokontrolerja. Da bi kalibracijski parametri ostali shranjeni v internem EEPROM-u mikrokontrolerja priporočam, da se po zaključku procesa prve kalibracije s fuse biti mikrokontrolerja onemogoči brisanje vsebine internega EEPROM-a pri eventualnih naslednjih vpisih prevedenega uporabniškega programa v Flash spomin. V uporabniškem programu spremenljivka Word, v katero se vpisuje vrednost AD pretvorbe z izbranega ADC vhoda Channel s pomočjo Bascom ukaza Getadc mora imeti ime Adc_input. Ta spremenljivka je dimenzionirana znotraj knjižnice „Adcx.inc“.
Adc_input = Getadc(channel)
Adc_correction
Vrednost v Adc_input ni korigirana vrednost skladno z avtokalibracijskimi parametri. Zato jo je potrebno korigirati. To se dela z ukazom Adc_correction, ki sledi za ukazom Getadc. Ukaz Adc_correction vrednost iz Adc_input spremenljivke preračunava skladno z avtokalibracijskimi parametri in rezultat vpisuje v Single spremenljivko Adcx. Ta je spremenljivka je tudi dimenzionirana znotraj knjižnice „Adcx.inc“. Vrednost spremenljivke Adcx se uporablja za izračun izmerjene vrednosti merjene količine. V kolikor je vrednost iz spremenljivke Adc_input >= Offset parametrom avtokalibracije (minimumu) in <= avtokalibracijskem maksimumu, to je če je merjena količina znotraj kalibriranega merilnega obsega, takrat sta bajtni spremenljivki Under_min = 0 in Over_max = 0. Te spremenljivki sta tudi dimenzionirani v navedeni knjižnici. Te spremenljivki postavlja v vrednosti 0 ali 1 ukaz Adc_correction. Ko je Adc_input < Offset parametra avtokalibracije (minimuma), to pomeni, da je vrednost merjene količine pod minimumom merilnega obsega določenega z avtokalibracijo, takrat bo spremenljivka Under_min enaka 1, Over_max pa 0 in Single spremenljivka Adcx bo 0. V svojem programu lahko spremenljivko Under_min uporabite za npr. izpis na LCD, da je merjena količina manjša od minimalne vrednosti. Ko je Adc_input večja od avtokalibracijskega maksimuma to pomeni, da je vrednost merjene količine nad maksimumom merilnega obsega določenega z avtokalibracijo, takrat bo spremenljivka Over_max imela vrednost 1, Under_min = 0 in Single spremenljivka Adcx = 1023. Over_max lahko v svojem programu uporabite za npr. izpis na LCD, da je merjena količina nad avtokalibracijskim maksimumom. Pri izbiri napetosti za avtokalibracijski maksimum predlagam, da je vrednost nekaj manjša od referenčne napetosti ADC-ja (vrednost za Maximum v procesu avtokalibracije da je nekaj manjša od 1023), da bi se v primeru prekoračitve te vrednosti nad vrednostjo avtokalibracijskega maksimuma spremenljivka Over_max postavila v vrednost 1.
Izračun vrednosti merjene količine s pomočjo podatka v Single spremenljivki Adcx
Naj bo:
X1 – vrednost merjene količine pri kateri smo potrdili avtokalibracijski minimum
X2 – vrednost merjene količine pri kateri smo potrdili avtokalibracijski maksimum, X2 > X1
X – vrednost merjene količine katero moramo določiti iz vrednosti v Single spremenljivki Adcx
M.O.S. – merilni obseg merilnega sistema, je odvisen od merilnih obsegov merilnega senzorja in merilnih pretvornikov v merilnem sistemu
Takrat je: X = Adcx * (M.O.K./1023) + X1 = Adcx * ((X2 – X1) / 1023) + X1
Resolucija meritev z 10 bitnim AD pretvornikom
Resolucija meritev se definira kot najmanjša vrednost merjene količine, ki jo je možno meriti, oziroma ko minimalna merljiva sprememba merjene količine. Resolucija meritev je toliko boljša, kolikor je njena vrednost manjša, in s tem je točnost odčitkov večja. Resolucija meritev je določena prvenstveno z 10 bitnim AD pretvornikom in vrednostjo merilnega obsega merilnega sistema M.O.S.
Merilni obseg merilnega sistema M.O.S. je enak algebrski razliki med maksimalno in minimalno možnega vrednosti meritev merjene količine in je odvisen od vrste uporabljenega merilnega senzorja in merilnih pretvornikov, katere merilni sistem vsebuje. Če npr. uporabljamo merilni sistem za merjenje temperature, ki omogoča merjenje maksimalne temperature +150°C in minimalne temperature -50°C, takrat je M.O.S. = 150°C – (-50°C) = 200°C.
Najmanjša vrednost resolucije meritev je M.O.S./1024. Za predhodno navedeni primer bi znašal 200°C/1024 = 0,1953°C. To je za primer, da se izhodna napetost merilnega sistema menja od 0V do VCC (pri Reference = Avcc).
Zaradi enojnega napajanja merilni pretvorniki na minimalni vrednosti vhodne merjene količine najbolj pogosto ne dajo izhodne napetosti 0 V, pač pa napetost večjo od 0 V npr. 0,1V. Odvisno od napetosti napajanja merilnih pretvornika pri maksimalni vhodni merjeni količini dajo napetost <=VCC (pri Reference=Avcc) ali <=Aref (pri Reference =Aref). To vodi v povečanje vrednosti resolucije meritev in s tem zmanjšanjem točnosti merilnega rezultata.
Za predhodni primer bi vrednost resolucije meritev bila (za Reference=Avcc) in VCC=5V:
Minimalna napetost merilnega sistema pri -50°C: 0,1V -> AD podatek = (0,1 / 5) * 1023 = 20
Maksimalna napetost merilnega sistema pri +150°C: 4,9V -> AD podatek = (4,9 / 5) * 1023 = 1003
V predhodnem izračunu resolucije meritev pri izračunu AD podatka je zanemarjen vpliv eventualnih Offset in Gain napak AD pretvornika.
Z avtokalibracijo se vrednost resolucije meritev ne menja.
Vrednost resolucije meritev se zmanjšuje samo z uporabo merilnega sistema z manjšim merilnim obsegom. S tem bi se pri enako spremembi merjene količine napetost na ADC vhodu mikrokontrolerja, in s tem tudi podatek AD pretvorbe, bolj spremenila.
Za lažje razumevanje uporabe programske knjižnice “Adcx.inc” so priloženi trije Bascom AVR primeri programov. Izbrani so enostavni primeri uporabe na način, da namesto napetosti iz merilnega pretvornika temperature uporabljamo napetost iz potenciometra, ki simulira merilni pretvornik temperature.
To so programi:
“Atmega Adcx calibration.bas” za ATmega mikrokontrolerje (npr. Atmega8/8A/328P itd.)
“ATtiny44_84 Adcx calibration.bas” za mikrokontrolerje ATtiny44/84
“ATtiny45_85 Adcx calibration.bas” za mikrokontrolerje ATtiny45/85
Pri prvih dveh programih se uporablja LCD npr.1602 v 4 bitnem paralelnem načinu dela in izbran je ADC vhod ADC0. Za ATtiny45/85 izbran ADC vhod ADC1, uporablja isti LCD, vendar s softversko I2C komunikacijo preko I2C LCD modula, za kar se uporablja knjižnica “i2c_lcd_module.inc”. Ta programska knjižnica za I2C komunikacijo z LCD-jem uporablja lib freeware datoteku “lcd_i2c_v2.lib” avtorja Kenta Anderssona, ki sem jo malo dodelal. To lib datoteko je potrebno premakniti v mapo LIB ki se nahaja v mapi BASCOM-AVR.
V vseh treh priloženih programih na izbrani ADC vhod pripeljemo napetost iz večobratnega potenciometra, ki je vezan med VCC (5V) in GND, tako da se na izbranem ADC vhodu napetost lahko menja od 0V do 5V. Ta potenciometer simulira merilni pretvornik temperature, ki bi pri -20°C dal napetost 1V, pri 100°C pa napetost 4V. Za ta merilni obseg se naredi avtokalibracija s pomočjo knjižnice “Adcx.inc”. Za vse napetosti manjše od 1V bo bajtna spremenljivka Under_min bila 1, Over_max = 0, Single spremenljivka Adcx bo 0 in izpisalo se bo sporočilo Temp1 < -20°C. Za napetosti od 1V do 4V bosta bajtni spremenljivki Under_min = 0 in Over_max = 0, Single spremenljivka Adcx bo imela odvisno od vrednosti napetosti kalibracijsko korigirano vrednost v obsegu od 0 do 1023, in se bo na LCD izpisovala temperatura Temp1 v kalibriranem merilnemu obsegu od -20°C do 100°C s prikazom na eno decimalko. Za vse napetosti nad 4V bo Under_min=0, Over_max=1, Adcx=1023 in izpisalo se bo LCD sporočilo Temp1 > 100°C.
V naslednjem nadaljevanju bo opisana programska knjižnica “Multi Adcx.inc” za Atmega mikrokontrolerje in za ATtiny84 mikrokontroler. Ta programska knjižnica omogoča avtokalibracijo več po želji uporabnika izbranih AD vhodov mikrokontrolerja.
Spoštujemo vašo zasebnost in se zavezujemo, da bomo osebne podatke, pridobljene prek spletnega informacijskega sistema, skrbno varovali in jih brez vaše privolitve ne bomo posredoval tretji osebi oziroma jih uporabili v druge namene. Ker obstajajo v spletnem informacijskem sistemu določene povezave na druge, zunanje spletne strani, ki niso vezane na nas, ne prevzemamo nobene odgovornosti za zaščito podatkov na teh spletnih straneh.
Hkrati se zavezujemo, da bomo po svojih najboljših možnih močeh varovali podatke in zasebnost obiskovalcev spletne strani .
Da bi preprečili nepooblaščen dostop do pridobljenih podatkov ali njihovo razkritje, ohranili natančnost osebnih podatkov in zagotovili njihovo ustrezno uporabo, uporabljamo ustrezne tehnične in organizacijske postopke za zavarovanje podatkov, ki jih zbiramo.
Piškotki, ki so nujno potrebni za delovanje spletne strani
Nujno potrebne piškotke bomo na vašo napravo vedno nameščali, saj brez njih naša spletna stran ne deluje pravilno. Med nujno potrebne piškotke uvrščamo piškotke, ki vam omogočajo dostop do spletne strani, delovanje posameznih funkcionalnosti spletne strani in hkrati ne zbirajo analitičnih ali drugih podatkov o vašem obisku.
Ime piškotka
Trajanje
Opis
PHPSESSID
dokler ne zaprete brskalnika
Piškotek omogoča shranjevanje sej med posameznimi zahtevami znotraj sistema za upravljanje z vsebinami.
moove_gdpr_popup
1 leto
Shrani uporabnikove preference politike piškotkov
Če onemogočite ta piškotek, ne bomo mogli shraniti vaših nastavitev. To pomeni, da boste morali vsakič, ko obiščete to spletno mesto, ponovno omogočiti ali onemogočiti piškotke.
Piškotki tretjih oseb
Med piškotke tretjih oseb spadajo analitični in funkcijski piškotki, ki jih na vašo napravo nameščajo druga podjetja, kot so Facebook Inc. in Google Inc.. Ti piškotki vam omogočajo uporabo vtičnikov in funkcij na naši strani, ki so povezane z njihovimi družbenimi omrežji in drugimi platformami ter za sledenje vaši uporabi njihovih storitev.
Ime piškotka
Trajanje
Opis
_ga
2 leti
Google Analytics Zabeleži razlikovanje med uporabniki in sejami.
_gid
1 leto
Google Analytics Zabeleži novo sejo ali novega uporabnika.
_gat
10 min
Google Analytics piškotek se uporablja za omejevanje pogostosti zadetkov..
IDE
2 leti
Oglaševalski piškotek podjetja Google Inc. Ki nam omogoča prikazovanje oglasov.
Najprej omogočite strogo potrebne piškotke, da lahko shranimo vaše nastavitve!
Uporaba piškotkov na spletišču
Spletišče v brskalnik računalnika obiskovalca oziroma uporabnika odloži tako imenovani “piškotek”. Piškotki so tekstovne datoteke, ki se shranijo na uporabnikovem računalniku in omogočajo analize o uporabnikovem obisku, številu obiskov in kaj ga zanima v teh obiskih. V piškotku so osnovni podatki o uporabnikovem obisku določene spletne strani, npr. ime obiskovane spletne strani, ki jih opravi v spletišču. Vsebina piškotka se shrani v računalniku uporabnika v posebni mapi. Z dvakratnim klikom na datoteko dobimo podrobnejše informacije o obiskani spletni strani, datumu in uri obiska. Vsi ti podatki so shranjeni tudi pri upravljavcu spletne strani, ki jo uporabnik obiskuje.
Uporabnik lahko piškotke z določenimi nastavitvami briše, izključuje oziroma jih pogojno uporablja, a posledično uporabnik ne bo mogel uporabljati vseh funkcij spletišča v polni meri. V osnovi so brskalniki nastavljeni tako, da piškotke sprejemajo, zavračajo pa nastavljanje piškotkov, ki ne izvirajo iz področja, zapisanega v naslovni vrstici.