Mga kategorya: Mga circuit ng Microcontroller
Bilang ng mga tanawin: 16,299
Mga puna sa artikulo: 0

Paano ikonekta ang dumadagdag na encoder sa Arduino

 

Kadalasan sa mga aparato sa mga microcontroller na kailangan mong ayusin ang pamamahala ng mga item sa menu o ipatupad ang ilang mga pagsasaayos. Maraming mga paraan: gumamit ng mga pindutan, variable na resistor, o mga encoder. Ang incremental encoder ay nagbibigay-daan sa iyo upang makontrol ang isang bagay sa pamamagitan ng walang katapusang pag-ikot ng hawakan. Sa artikulong ito, titingnan namin kung paano makagawa ang incremental encoder at Arduino work.

Paano ikonekta ang dumadagdag na encoder sa Arduino

Mga Tampok ng Incremental Encoder

Ang incremental encoder, tulad ng anumang iba pang uri ng encoder, ay isang aparato na may isang umiikot na hawakan. Distantly, kahawig ito ng isang potensyomiter. Ang pangunahing pagkakaiba mula sa potensyomiter ay ang paghawak ng encoder ay umiikot sa 360 degree. Wala siyang matinding probisyon.

Ang mga encoder ay dumating sa maraming uri. Ang incremental ay naiiba sa na sa tulong nito imposibleng malaman ang posisyon ng hawakan, ngunit ang katotohanan lamang ng pag-ikot sa ilang direksyon - sa kaliwa o sa kanan. Sa pamamagitan ng bilang ng mga pulses ng signal, maaari mo nang makalkula sa kung anong anggulo ang lumingon.

Encoder at Arduino

Sa paraang maaari kang pumasa microcontroller utos, pamahalaan ang menu, antas ng dami, halimbawa, at iba pa. Sa pang-araw-araw na buhay, maaari mong makita ang mga ito sa mga radio car at iba pang kagamitan. Ginagamit ito bilang isang organ ng pagsasaayos ng multifunctional level, equalizer at nabigasyon sa menu.

Knob ng Antas ng Tunog

Prinsipyo ng pagtatrabaho

Sa loob ng incremental encoder mayroong isang disk na may mga label at slider na nakikipag-ugnay sa kanila. Ang istraktura nito ay katulad ng isang potensyomiter.

Na-disassembled encoder

Sa figure sa itaas nakikita mo ang isang disk na may mga marka, kinakailangan nilang matakpan ang koneksyon sa koryente na may contact na maililipat, bilang isang resulta makakakuha ka ng data tungkol sa direksyon ng pag-ikot. Ang disenyo ng produkto ay hindi napakahalaga, maunawaan natin ang prinsipyo ng pagpapatakbo.

Disenyo ng Encoder

Ang encoder ay may tatlong mga output ng impormasyon, isang pangkaraniwan, ang iba pang dalawa ay karaniwang tinatawag na "A" at "B", sa figure sa itaas nakita mo ang encoder pin na may isang pindutan - maaari kang makatanggap ng isang senyas kapag nag-click ka sa baras nito.

Anong signal ang tatanggapin natin? Depende sa direksyon ng pag-ikot, ang lohikal na yunit ay unang lilitaw sa pin A o B, kaya nakakakuha kami ng isang phase-shift signal, at ang shift na ito ay nagbibigay-daan sa amin upang matukoy kung aling direksyon. Ang signal ay nakuha sa anyo ng isang hugis-parihaba na hugis, at ang microcontroller ay kinokontrol matapos ang pagproseso ng data ng direksyon ng pag-ikot at ang bilang ng mga pulses.

Prinsipyo ng pagtatrabaho

Ipinapakita ng figure ang simbolo ng disk kasama ang mga contact, sa gitna mayroong isang graph ng mga signal signal, at sa kanan ay ang katayuan ng talahanayan. Ang aparatong ito ay madalas na iginuhit bilang dalawang mga susi, na kung saan ay lohikal, dahil sa katunayan nakakakuha tayo ng isang senyas na "pasulong" o "pabalik", "up" o "down", at ang bilang ng mga aksyon.

Circuit ng Encoder

Narito ang isang halimbawa ng isang tunay na encoder pinout:

Halimbawa ng isang tunay na encoder pinout

Kawili-wili:

Ang isang kamalian na encoder ay maaaring mapalitan ng dalawang mga pindutan nang walang pag-lock, at kabaligtaran: kontrol ng lutong bahay kung saan ang dalawa sa mga pindutan na ito ay maaaring wakasan sa pamamagitan ng pagtatakda ng encoder.

Sa video sa ibaba, makikita mo ang kahalili ng signal sa mga terminal - sa panahon ng makinis na pag-ikot, ang mga LED ay lumiliwanag sa pagkakasunud-sunod na makikita sa nakaraang grap.

Walang mas malinaw na isinalarawan sa mga sumusunod na animation (mag-click sa larawan):

Ang aparato at prinsipyo ng pagpapatakbo ng encoder

Ang encoder ay maaaring maging parehong optical (ang signal ay nabuo ng mga emitters ng mga photodetectors, tingnan ang figure sa ibaba), at magnetic (gumagana ito sa epekto ng Hall). Sa kasong ito, wala siyang mga contact at mas mahabang buhay ng serbisyo.

Angle sensor

Tulad ng nabanggit na, ang direksyon ng pag-ikot ay maaaring matukoy kung alin sa mga signal ng output ay nagbago dati, ngunit ito ay kung paano ito nakikita sa pagsasanay!

Mga puntos sa pag-aayos ng mekanikal

Ang katumpakan ng kontrol ay nakasalalay sa paglutas ng encoder - ang bilang ng mga pulses bawat rebolusyon. Ang bilang ng mga pulso ay maaaring mula sa mga yunit hanggang libu-libong mga piraso. Dahil ang encoder ay maaaring kumilos bilang isang sensor ng posisyon, mas maraming mga pulses, mas tumpak ang pagpapasiya ay magaganap.Ang parameter na ito ay tinukoy bilang PPR - pulso bawat rebolusyon.

Ngunit mayroong isang maliit na nuance, lalo, ang isang katulad na pagtatalaga na LPR ay ang bilang ng mga label sa disk.

At ang bilang ng mga naproseso na pulso. Ang bawat label sa disk ay nagbibigay ng 1 hugis-parihaba na pulso sa bawat isa sa dalawang mga output. Ang salpok ay may dalawang fronts - ang likuran at harap. Dahil mayroong dalawang paraan, nakakakuha kami ng 4 na pulso sa kabuuan mula sa bawat isa sa kanila, ang mga halaga na maaari mong iproseso.

PPR = LPRx4


Kumonekta sa Arduino

Nalaman namin kung ano ang kailangan mong malaman tungkol sa dumadagdag encoder, ngayon alamin kung paano ikonekta ito sa Arduino. Isaalang-alang ang diagram ng koneksyon:

Ang diagram ng koneksyon ng sensor ng posisyon sa Arduino

Ang isang module ng encoder ay ang board kung saan matatagpuan ang incremental encoder at pull-up resistors. Maaari mong gamitin ang anumang mga pin.

Diagram ng mga kable ng Encoder

Kung wala kang module, ngunit isang hiwalay na encoder, kailangan mo lamang idagdag ang mga resistors na ito, ang circuit ay hindi magkakaiba sa prinsipyo. Upang suriin ang direksyon ng pag-ikot at kakayahang magamit nito kasabay ni Arduino maaari naming basahin ang impormasyon mula sa serial port.

Halimbawa ng programa

Suriin natin ang code nang mas detalyado, sa pagkakasunud-sunod. Sa walang bisa setup (), inihayag namin na gagamitin namin ang komunikasyon sa pamamagitan ng serial port, at pagkatapos ay magtakda ng mga pin 2 at 8 sa mode ng pag-input. Piliin ang mga numero ng pin mismo batay sa iyong scheme ng koneksyon. Ang INPUT_PULLUP patuloy na nagtatakda ng mode ng pag-input, ang arduino ay may dalawang pagpipilian:

  • INPUT - input nang walang pull-up resistors;

  • INPUT_PULLUP - koneksyon sa input ng mga pull-up resistors. Mayroon nang mga resistor sa loob ng microcontroller kung saan ang input ay konektado sa power plus (pullup).

Kung gumagamit ka ng mga resistor upang higpitan ang lakas kasama ang ipinapakita sa mga diagram sa itaas o gamitin ang module ng encoder - gamitin ang utos INPUT, at kung sa ilang kadahilanan ay hindi mo nais o ayaw mong gumamit ng mga panlabas na resistors - INPUT_PULLUP.

Ang lohika ng pangunahing programa ay ang mga sumusunod: kung mayroon kaming isa sa input na "2", naglalabas ito ng port H sa monitor, kung hindi, L. Samakatuwid, kapag umiikot ka sa parehong direksyon sa monitor ng serial port, makakakuha ka ng isang bagay tulad nito: LL HL HH LH LL. At kabaligtaran: LL LH HH HL LL.

Kung maingat mong basahin ang mga linya, marahil ay napansin mo na sa isang kaso ang unang karakter ay nakakuha ng isang halaga, at sa ibang kaso, ang pangalawang character ay unang nagbago.


Konklusyon

Ang mga incremental encoder ay natagpuan ang malawak na praktikal na aplikasyon sa mga amplifier para sa mga sistema ng acoustic - ginamit sila bilang isang control ng dami, sa mga radio radio - upang ayusin ang mga tunog na mga parameter at mag-navigate sa mga menu, sa mga computer mice kasama nito mag-scroll ka ng mga araw-araw (ang isang gulong ay naka-install sa baras nito) . At din sa pagsukat ng mga tool, mga machine ng CNC, mga robot, selsyn hindi lamang bilang mga kontrol, kundi pati na rin ang pagsukat ng mga halaga at pagtukoy ng posisyon.

Tingnan din sa electro-tl.tomathouse.com:

  • Mga pamamaraan para sa pagbabasa at pamamahala ng mga port ng Arduino I / O
  • Kontrol ng motor at servo kasama ang Arduino
  • Nagtatampok ng pagkonekta ng mga aparato sa Arduino
  • Pagkonekta at pagprograma ng Arduino para sa mga nagsisimula
  • Pinakatanyag na sensor para sa Arduino

  •