Šioje pamokoje mes sujungsime rotacinį kodavimo įrenginį su „ATmega8“ mikrovaldikliu. „ATmega8“ yra „atmel“ mikrovaldiklių serija, skirta įterptosioms programoms. Sukamasis koderis naudojamas norint sužinoti variklio ar ašies judėjimo padėtį ir kampinį judėjimą. Paprastai tai yra trijų terminalų įrenginys, kurio galia ir įžeminimo kaištis skaičiuojami iki penkių. Žemiau parodytas sukamasis kodavimo modulis.
Rotacinio kodavimo įrenginio kaiščiai yra:
- Žemė.
- Teigiamas prijungtas prie + 5V
- Išvesties signalas A kaištis
- Išvesties signalo B kaištis
- Laikrodžio kaištis arba bendras kaištis.
ENCODER pateikia impulsus, atspindinčius veleno padėties pokyčius, kad sistemos suprastų. Apsvarstykite, ar įjungtas sukamasis enkoderis, o velenas judinamas.
Kaip parodyta aukščiau esančioje lentelėje, apsvarstykite, ar velenas judinamas pagal laikrodį. Tai padarys „Falling Edge“ A, tada B terminale.
Apsvarstykite, ar velenas judinamas prieš laikrodį. Tai padarius „Falling Edge“ bus B terminale, tada A terminale.
Šis kraštas įvyks vieną kartą 360/20 = 18 laipsnių kampu (tai yra koduotojui, turinčiam 20 padėčių, tai keičiasi pagal tipą, didesnis skaičius yra didesnis tikslumas).
Esant abiem aukščiau nurodytoms sąlygoms, galime gauti krypties ir sukimosi laipsnį. Taigi gauname reikiamus parametrus veleno padėčiai nustatyti.
Komponentai
Aparatūra: ATMEGA8, jungiamieji kaiščiai, AVR-ISP PROGRAMMERIS, 220Ω rezistorius, LED (aštuonios dalys), 1KΩ rezistorius, 220Ω rezistorius (2vnt.), 100nF kondensatorius (2vnt), duonos lenta.
Programinė įranga: „ Atmel studio 6.1“, „progisp“ arba „flash magic“.
Grandinės schema ir darbo paaiškinimas
Kondensatoriai skirti neutralizuoti kontakto atšokimo efektą ENCODER. Be šių kondensatorių bus rimtų problemų skaitant padėtį.
Kai velenas yra perkeltas, tarp dviejų išvesties kaiščių išėjimo bus laiko skirtumas. ATMEGA8 atpažins šį laiko skirtumą, sukdamasis pagal laikrodžio rodyklę.
Jei sukimasis pagal laikrodžio rodyklę, dvejetainis skaičius padidinamas vienu, ir šis skaičius rodomas LED prievade, kaip parodyta paveiksle.
Jei sukimasis yra prieš laikrodžio rodmenis, dvejetainis skaičius mažinamas vienu, o dvejetainis skaičius rodomas LED baitu.
Prisiminkite, kad čia nenustatome jokių „atmega8“ saugiklių bitų, todėl valdiklis dirbs su numatytuoju 1Mhz vidiniu kristalu.
Sąveikaujančio rotacinio kodavimo įrenginio ir mikrovaldiklio ATmega8 darbas paaiškintas žemiau esančiame kode.