TEOREETILINE OSA
Kooder on elektro-mehaaniline seade, mis konverteerib pöördenurga või
võlli nurkkiiruse analoogsignaaliks või digitaalkoodiks. Olemas on veel
lineaarkoodrid, mis erinevad pöördliikumisele mõeldud koodritest selle
poolest, et koodri liikumine toimub mööda sirget. Tööpõhimõte muus osas
on sarnane.
Olemas on kahte tüüpi koodreid: absoluutsed ja suhtelised
(loendavad). Absoluutse koodri väljund näitab jooksvat võlli asendit.
Toite katkemise korral on asend peale toite sisselülitamist tuvastatav.
Näitena on toodud lihtsa absoluutse koodri ketas, mida loetakse kolme
anduri abil. Moodustuv binaarkood võimaldab ketta asendit mõõta 45
kraadiste sammude täpsusega.
Suhtelise koodri väljund annab informatsiooni võlli liikumise kohta,
mida saab edasi töödelda. Tüüpiliselt arvutatakse liikumise kiirus,
suund ja vajadusel ka asukoht. Suhteline kooder ei võimalda peale toite
kadumist võlli konkreetset asendit kindlaks teha. See annab tsüklilist
väljundsignaali ainult siis, kui võll pöörleb.
Suhteline optiline kooder koosneb avade või lõhedega kettast ja
optopaarist. Optopaar on IR-valgusdioodist ja fototransistorist koosnev
süsteem, mille vahele on asetatud piludega kooderketas nii, et ketta
pöörlemisel avad perioodiliselt katkestavad valguse ning seetõttu
vastavalt lülitavad fototransistorit sisse ja välja. Selle tulemusena
tekib fototransistori väljundis ristküliksignaal, mida saab kasutada
võlli nurkkiiruse leidmiseks. Ühe optopaariga koodrid võimaldavad mõõta
ainult pöörlemiskiirust pulsside sageduse järgi. Suuna kohta
informatsioon puudub.
Võlli pöörlemissuuna kindlakstegemiseks lisatakse ka teine optopaar,
mille väljundeid võib tähistada A ja B. Tegemist on kvadratuur
väljunditega, kuna optopaarid on asetatud nii, et tekiks 90 kraadine
faasinihe nende signaalides.
Optopaaride signaalide olekudiagramm on toodud alloleval pildil:

Koodri tööpõhimõte
A ja B väljundeid loetakse tarkvaraliselt, tavaliselt katkestuste
vahendusel, mis genereeritakse kas iga või mõne signaali frondi korral.
Pöörlemise suund määratakse vastavalt toodud tabeli järgi. Näiteks kui
viimane väärtus on 00 ja uus väärtus 01, siis võll on pöördunud ühe
poolsammu võrra kellaosuti liikumise suunas.


Optopaar
Kui kooder pöörleb liiga kiiresti, siis võivad sisse tulla vead. Näiteks
lugemi 00 → 11 korral ei ole võimalik kindlaks teha, kummas suunas
kooder pöörleb. Õiged lugemid saavad olla kas 00 → 01 → 11 või 00 → 10 →
11. Veel kiirema pöörlemise korral võib toimuda ka tagurpidi
loendamine.
Koodreid kasutatakse robootikas ja tööstuses rataste ja ajamite kiiruse määramiseks ja liigendite asendi kindlaks tegemiseks.
Kodulabori teek on mõeldud kuni kahe suhteliselt sarnase koodri
kasutamiseks kiiruste mõõtmiseks ja pöörete arvu loendamiseks.
Näiteks võib koodreid kasutada kaherattalise roboti mõlema ratta
kiiruse jälgimiseks. Kodulabori komplektis on reduktormootor, mis on
integreeritud koodriga. Koodri anduriks on Halli andur. Anduri
ühendusskeem on näha alloleval joonisel.

Kooder
annab väljundisse 3 impulssi mootori pöörde kohta. Reduktormootori
väljundvõlli impulsside arvu saab, kui korrutada mootori võlli
impulsside arv läbi reduktori ülekande suhtega. Näiteks mootori
LE149.6.10 reduktori ülekandesuhe on 1:10, seega impulsside arv
arvestatuna reduktori võllist on 30 impulssi ühe väljundvõlli pöörde
kohta.
Koodri kasutamiseks on Kodulabori teegis olemas funktsioon encoder_init, mis seadistab koodri viigud sisendiks ja seab töökorda katkestuse. Funktsioon encoder_get_pulses tagastab koodri pulsside arvu ja funktsioon encoder_reset_pulses
nullib valitud koodri pulsside arvu. Koodri pulsside loendamine toimub
viigu väheneva frondi korral genereeritava katkestuse kaudu. Katkestuse
toimumise korral suurendatakse vastava koodri muutujat ühe võrra.