Šajā apmācībā mēs saskaramies ar rotējošo kodētāju ar ATmega8 mikrokontrolleru. ATmega8 ir atmel mikrokontrolleru sērija, kas paredzēta iegultām lietojumprogrammām. Rotējošo kodētāju izmanto, lai uzzinātu motora vai ass kustības stāvokli un leņķisko kustību. Parasti tā ir trīs termināļu ierīce, kuras jauda un zemes kontakts ir līdz pieciem. Rotācijas kodētāja modulis ir parādīts zemāk.
Rotējošā kodētāja tapas ir:
- Zeme.
- Pozitīvs savienojums ar + 5V
- Izejas signāls A tapa
- Izejas signāla B tapa
- Pulksteņa tapa vai kopēja tapa.
ENCODER nodrošina impulsus, kas atspoguļo vārpstas stāvokļa izmaiņas, lai sistēmas saprastu. Apsveriet, vai ir ieslēgts rotācijas kodētājs un kāja tiek pārvietota.
Kā parādīts iepriekšējā tabulā, ņemiet vērā, ka vārpsta tiek pārvietota gudri. Līdz ar to A terminālī būs Falling Edge, tad B terminālā.
Apsveriet, kā vārpsta ir kustināta pretēji pulksteņa rādītājiem. Ar to B terminālī būs Falling Edge, tad A terminālā.
Šī mala notiks vienreiz 360/20 = 18 grādiem (tas ir kodētājam ar 20 pozīciju, tas mainās atkarībā no veida, jo lielāks skaitlis ir lielāka precizitāte).
Ar abiem iepriekš minētajiem nosacījumiem mēs varam iegūt virzienu un rotācijas pakāpi. Tādējādi mēs iegūstam nepieciešamos parametrus vārpstas stāvokļa iegūšanai.
Komponenti
Aparatūra: ATMEGA8, savienojošās tapas, AVR-ISP PROGRAMMER, 220Ω rezistors, LED (astoņi gabali), 1KΩ rezistors, 220Ω rezistors (2 gab.), 100nF kondensators (2 gab.), Maizes dēlis.
Programmatūra: Atmel studio 6.1, progisp vai flash magic.
Shēmas shēma un darba skaidrojums
Kondensatori šeit ir paredzēti, lai neitralizētu kontakta atlēciena efektu ENCODER. Bez šiem kondensatoriem būs dažas nopietnas problēmas pozīcijas nolasīšanā.
Kad vārpsta tiek pārvietota, starp divu izejas tapu izeju būs laika starpība. ATMEGA8 atpazīs šo laika starpību pulksteņrādītāja kustības virzienā pretēji pulksteņa rādītāja virzienam.
Ja rotācija notiek pulksteņrādītāja kustības virzienā, bināro skaitu palielina par vienu, un šis skaitlis tiek parādīts LED portā, kā parādīts attēlā.
Ja pagriešana ir pret pulksteni, bināro skaitu samazina par vienu un bināro skaitu parāda LED baits.
Atcerieties, ka šeit mēs nenosakām nekādus atmega8 drošinātāju bitus, tāpēc kontrolieris strādās pie 1Mhz noklusējuma iekšējā kristāla.
Rotējošā kodētāja un ATmega8 mikrokontrollera darbība ir paskaidrota zemāk esošajā kodā.