Mai devreme, în articolele sale realizate manual pe microcontrolere trece întotdeauna buton, dar aici recent pentru piese accidental a căzut în mâinile apparaturka cu codificatoare, aici și a decis să încerce acest dispozitiv în cazul.
Codificatoare sunt frecvent utilizate în casetofoane pentru a regla volumul și alte setări: ton, echilibru, meniu la alegere, configurare radio. În general, codificatoare sunt utilizate atunci când sunt utilizate anterior Rezistențe variabile.
encoder extern este foarte similar cu un rezistor variabil, dar structural există diferențe fundamentale
Principalul avantaj al codificator pentru rezistențe variabile în faptul că acesta se rotește în mod continuu. În principiu, rezistor de asemenea, poate fi modificat, astfel încât să se învârtea continuu, dar ADC este necesar să-l proces, iar acest lucru este o creștere a bugetului echipamentelor. Și, în plus, nu toate dispozitivele au un ADC încorporat.
Pentru a conecta traductorul are trei ieșiri. ieșire comună centrală și două capăt închis prin rotirea periodică cu o medie impulsuri de formare terminale.
concluzie generală medie. Cele două extreme sunt închise cu o putere medie în timpul rotației arborelui codificator.
Principiul de funcționare al unui codificator incremental este ca miscarea de rotatie a mânerului pe cele două ieșiri se formează impulsuri. În funcție de numărul de impulsuri poate determina unghiul de rotație al arborelui, iar defazajul dintre cele două semnale determină direcția de rotație. Dacă primul impuls a venit de pe contactele dreapta, vraschaetya arborele din dreapta. În cazul în care impulsul a venit mai întâi la ieșirea din stânga, arborele este rotit spre stânga, respectiv. De obicei encoder oferă 24 de impulsuri pe rotație completă.
Semnalele Graph codificator în timpul rotației arborelui în direcții opuse
Mâinile mele erau codificatoare două modele diferite, dar rezultatul muncii lor cu aceeași.
Bazate encoder incremental de antrenare rotativ mecanic poate fi utilizat, pe a cărui suprafață de contact 24 de benzi dispuse radial. Aceste contacte sunt închise în rotație alternativ cu două contacte cu resort.
Atunci când arborele se rotește contactul radial disc cu contactele elastice sunt închise.
O structură mai simplă cuprinde trei rotative de contact arc și un disc fix. Pe suprafața discului se aplică masca de izolare, care, atunci când arborele se rotește întrerupe periodic contactul electric între bornele codorului.
Arbore encoder are trei pini, care se rotesc peste discul cu modelul dielectric. Ca urmare, contactele sunt închise împreună.
Pe arborele secundar revers are dinți care sunt proptesc arcuri, poziții de blocare pentru efect atunci când arborele se rotește.
Pe măsură ce testul a luat prima disponibil bord de testare microcontroler ATmega8. În plus față de controlerul de pe placa am fost interesat de conector de programare, terminale pentru conectarea codificator și interfața pentru conectarea la portul COM al computerului. Pentru a asigura stabilitatea conectarea microcontrolerului la placa de PC-ul este furnizat pe cristal de cuarț 4MHz.
bord de testare bazat pe MK ATmega8
Schema electrică a codificator este foarte simplu:
Plumbul medie este conectat la sol;
Ieșirea din dreapta este conectat la patru ieșire IC;
Stânga terminal de ieșire 5 pentru a conecta MC;.
De obicei, dreapta și stânga de contact pull-up rezistor la sursa de pozitiv, dar nu am făcut, pentru că Porturile MK deja au construit în rezistențe pull-up la 100k de retragere Vcc.
Mai târziu, în CodeVisionAVR a scris în grabă un program de test simplu. Ca urmare a funcționării sale ieșiri microcontroler la terminalul de calculator a conținutului contra și starea de stânga și la dreapta contactelor codificatorul. Ca de contact este foarte bun este clar modul în care codificatorul.
Contorul este incrementat când codificatorul este rotit dreapta și la stânga de rotație scade.
Aici este textul de program (ușor introduceți-l într-un proiect pentru CodeVisionAVR, totul va fi acolo frumos și elegant aspectul și design al programului este un text foarte lame):
// -------- setare USART -------------------------------------- --------------------------
UCSRB = 1<
UBRRL = 0x19;
// -------- setarea de întrerupere externă ------------------------------------- ------------- SREG.7 = 1; // permite întrerupere comună printf ( "AVRmegaboard este \ n \ r ON!"); // mesaj de control la PC Sews-l în microcontroler și ... nifiga nu funcționează, nu e de mirare! Dacă te uiți atent la contactul pistei encoder, este în mod clar de dezvoltare vizibilă a suprafețelor de frecare. Ca urmare a acestui efect este observat drebezka de contact atunci când comutare. O performanță MK suficient pentru a sări tratate în mod repetat, ca funcționarea reală a codorului. Pentru a combate saritura a decis să nu deranjeze și nu scrie protecție software de la contactul de respingere, și a intrat în modul de modă veche - între ieșirile codorului cositorite două condensatoare de 10nF, rupte din același organ baril codoare. Ca rezultat, totul a mers așa cum ar trebui! Conectarea MK în port COM și martor necesare 24 de impulsuri pe rotație a arborelui de codificator.
GICR | = (0<
Condensatorii sunt sudate între bornele codificator pentru a compensa efectul de respingere
Există mai multe algoritmi de interesante, de prelucrare a semnalului codificator, dacă este interesat, după un timp eu pot scrie despre ea.
P.S. În timpul încercărilor, nici un element radioactiv nu este afectată! Codificatoare colectate în condiții de siguranță înapoi și să continue să îndeplinească funcțiile sale.