I denna handledning ska vi gränssnitt en roterande kodare med ATmega8 mikrokontroller. ATmega8 är atmels mikrokontroller-serie designad för inbäddade applikationer. Roterande kodare används för att känna till motorns eller axelns rörelse- och vinkelrörelse. Det är en tre terminalenhet vanligtvis, med ström och jordstift räknas till fem. En roterande kodarmodul visas nedan.
Stiften på en roterande kodare är:
- Jord.
- Positiv ansluten till + 5V
- Utgångssignal A stift
- Utgångssignal B-stift
- Klockstift eller vanlig stift.
ENCODER tillhandahåller pulser som representerar förändringen i axelpositionen för systemen att förstå. Tänk på att en ROTATORISK KODARE är påslagen och axeln flyttas.
Som visas i tabellen ovan, tänk på att axeln flyttas medurs. Med detta kommer Falling Edge att vara på A-terminalen och sedan på B-terminalen.
Tänk på att axeln flyttas moturs. Med detta kommer Falling Edge att vara på B-terminalen och sedan på A-terminalen.
Denna kant kommer att inträffa en gång i 360/20 = 18 grader (detta är för en kodare med 20 position, detta ändras från typ till typ, desto högre är antalet större noggrannheten).
Med båda ovanstående förhållanden kan vi få riktning och rotationsgrad. Således får vi erforderliga parametrar för att få positionen på en axel.
Komponenter
Hårdvara: ATMEGA8, anslutningsstift, AVR-ISP PROGRAMMER, 220Ω motstånd, LED (åtta delar), 1KΩ motstånd, 220Ω motstånd (2stycken), 100nF kondensator (2 stycken), brödbräda.
Programvara: Atmel studio 6.1, progisp eller flash magi.
Kretsschema och arbetsförklaring
Kondensatorerna här är för att neutralisera kontaktsprångeffekten i ENCODER. Utan dessa kondensatorer kommer det att finnas några allvarliga problem i läsläsning.
När axeln flyttas kommer det att finnas tidsskillnad mellan två utgångsstifters utgång. ATMEGA8 kommer att känna igen denna tidsskillnad för medurs för moturs rotation.
Om rotationen är medurs ökas det binära antalet med en, och detta antal visas i LED-porten som visas i figuren.
Om rotationen är motsols minskas binärräkningen med en och binärantalet visas med LED-byte.
Kom ihåg att vi inte ställer in några säkringsbitar av atmega8, så styrenheten kommer att arbeta med 1Mhz intern intern kristall.
Arbetet med gränssnitt mellan roterande kodare och ATmega8-mikrokontroller förklaras i nedanstående kod.