categorii: Circuite de micro-controler
Număr de vizualizări: 16,299
Comentarii la articol: 0

Cum să conectați codificatorul incremental la Arduino

 

Adesea, pe dispozitivele de pe microcontrolere trebuie să organizați gestionarea elementelor din meniu sau să implementați unele ajustări. Există mai multe moduri: utilizați butoane, rezistențe variabile sau codificatoare. Encoderul incremental vă permite să controlați ceva prin rotația interminabilă a mânerului. În acest articol, vom analiza cum să funcționeze codificatorul incremental și Arduino.

Cum să conectați codificatorul incremental la Arduino

Caracteristici incrementale ale codificatorului

Encoderul incremental, ca orice alt tip de codificator, este un dispozitiv cu mâner rotativ. Distant, seamănă cu un potențiometru. Principala diferență față de potențiometru este că mânerul codificatorului se rotește cu 360 de grade. Nu are dispoziții extreme.

Codificatoarele vin în mai multe tipuri. Incremental diferă prin faptul că, cu ajutorul său, este imposibil să cunoaștem poziția mânerului, ci doar faptul că se rotește într-o direcție - spre stânga sau spre dreapta. După numărul de impulsuri de semnal, puteți deja să calculați în ce unghi s-a transformat.

Encoder și Arduino

Astfel poți trece microcontroler comandați, gestionați meniul, nivelul volumului, de exemplu, etc. În viața de zi cu zi, le puteți vedea în radiourile auto și alte echipamente. Este utilizat ca organ multifuncțional de ajustare a nivelului, egalizator și navigare prin meniu.

Buton nivel sonor

Principiul de lucru

În interiorul codificatorului incremental există un disc cu etichete și glisiere care vin în contact cu ele. Structura sa este similară cu a unui potențiometru.

Codificator dezasamblat

În figura de mai sus vedeți un disc cu semne, acestea sunt necesare pentru a întrerupe conexiunea electrică cu contactul mobil, ca urmare veți obține date despre direcția de rotație. Designul produsului nu este atât de important, să înțelegem principiul funcționării.

Proiectare codificator

Codificatorul are trei ieșiri de informații, una obișnuită, celelalte două sunt de obicei numite „A” și „B”, în figura de mai sus vedeți știftul codificatorului cu un buton - puteți primi un semnal când faceți clic pe arborele acestuia.

Ce semnal vom primi? În funcție de direcția de rotație, unitatea logică va apărea mai întâi pe pinul A sau B, astfel încât obținem un semnal defazat și această deplasare ne permite să determinăm ce direcție. Semnalul este obținut sub formă de formă dreptunghiulară, iar microcontrolerul este controlat după prelucrarea datelor despre direcția de rotație și numărul de impulsuri.

Principiul de lucru

Figura arată simbolul discului cu contactele, în mijloc se află un grafic al semnalelor de ieșire, iar în dreapta se află tabelul de stare. Acest dispozitiv este adesea desenat sub două taste, ceea ce este logic, deoarece de fapt obținem un semnal „înainte” sau „înapoi”, „sus” sau „jos” și numărul de acțiuni.

Circuitul codificator

Iată un exemplu de identificare reală a codificatorului:

Exemplu de identificare reală a codificatorului

I mirare:

Un codificator defect poate fi înlocuit cu două butoane fără blocare și invers: control de casă în care două dintre aceste butoane pot fi finalizate prin setarea codificatorului.

În videoclipul de mai jos, vedeți alternanța semnalului la terminale - în timpul rotirii lin, LED-urile se aprind în secvența reflectată în graficul precedent.

Nu mai puțin ilustrat clar în următoarea animație (faceți clic pe imagine):

Dispozitivul și principiul funcționării codificatorului

Encoderul poate fi atât optic (semnalul este generat de emițători de fotodetectori, vezi figura de mai jos), cât și magnetic (funcționează pe efectul Hall). În acest caz, el nu are contacte și o durată de viață mai lungă.

Senzor unghi

După cum am menționat deja, direcția de rotație poate fi determinată de care dintre semnalele de ieșire s-a schimbat anterior, dar așa arată în practică!

Puncte de fixare mecanică

Precizia controlului depinde de rezoluția codificatorului - numărul de impulsuri pe revoluție. Numărul de impulsuri poate fi de la unități la mii de bucăți. Deoarece codificatorul poate acționa ca un senzor de poziție, cu cât impulsuri sunt mai multe, cu atât determinarea va fi mai precisă.Acest parametru este denumit PPR - puls pe revoluție.

Există însă o mică nuanță, și anume, o LPR cu denumirea similară este numărul de etichete de pe disc.

Și numărul de impulsuri procesate. Fiecare etichetă de pe disc oferă 1 impuls dreptunghiular pe fiecare dintre cele două ieșiri. Impulsul are două fronturi - partea din spate și cea din față. Deoarece există două modalități de ieșire, obținem 4 impulsuri în total din fiecare dintre ele, valorile pe care le puteți procesa.

PPR = LPRx4


Conectează-te la Arduino

Ne-am dat seama ce trebuie să știți despre codificatorul incremental, acum să aflăm cum să-l conectați la Arduino. Luați în considerare diagrama conexiunii:

Schema de conectare a senzorului de poziție la Arduino

Un modul de codificare este placa pe care se află codificatorul incremental și rezistențele de tragere. Puteți utiliza orice ace.

Schema de cablare a codificatorului

Dacă nu aveți un modul, ci un codificator separat, trebuie doar să adăugați aceste rezistențe, circuitul nu va diferi în principiu. Pentru a verifica direcția de rotație și operativitatea acesteia în legătură cu Arduino putem citi informații din portul serial.

Exemplu de program

Să analizăm codul mai detaliat, în ordine. În void setup (), am anunțat că vom folosi comunicarea prin portul serial și apoi vom seta pinii 2 și 8 în modul de intrare. Selectați singur numerele de pin pe baza schemei dvs. de conexiune. Constanta INPUT_PULLUP setează modul de intrare, arduino are două opțiuni:

  • INPUT - intrare fără rezistențe pull-up;

  • INPUT_PULLUP - conexiune la intrarea rezistențelor de tragere. Există deja rezistențe în interiorul microcontrolerului prin care intrarea este conectată la power plus (pullup).

Dacă utilizați rezistențe pentru a strânge puterea plus, așa cum se arată în diagramele de mai sus sau utilizați modulul codificator - folosiți comanda INPUT și dacă, din anumite motive, nu puteți sau nu doriți să folosiți rezistențe externe - INPUT_PULLUP.

Logica programului principal este următoarea: dacă avem unul la intrarea „2”, el scoate portul H către monitor, dacă nu, L. Astfel, când rotiți în aceeași direcție pe monitorul portului serial, veți obține ceva de genul: LL HL HH LH LL. Și invers: LL LH HH HL LL.

Dacă citiți cu atenție liniile, probabil ați observat că într-un caz primul personaj a dobândit o valoare, iar în celălalt caz, al doilea personaj s-a schimbat pentru prima dată.


concluzie

Codificatoare incrementale au găsit o aplicație practică largă în amplificatoare pentru sisteme acustice - au fost folosite ca un control al volumului, în radiourile auto - pentru a ajusta parametrii sunetului și a naviga prin meniuri, la șoarecii computerului cu acesta parcurgeți paginile zilnic (o roată este instalată pe axul său) . Și, de asemenea, în instrumente de măsurare, mașini CNC, roboți, selsyn nu numai ca comenzi, ci și măsurarea valorilor și determinarea poziției.

Consultați și la i.electricianexp.com:

  • Metode de citire și gestionare a porturilor I / O Arduino
  • Control motor și servo cu Arduino
  • Dispune de conectarea dispozitivelor la Arduino
  • Conectarea și programarea Arduino pentru începători
  • Cele mai populare senzori pentru Arduino

  •