Talaan ng mga Nilalaman:
- Hakbang 1: Diagram ng Circuit
- Hakbang 2: Listahan ng Mga Bahagi
- Hakbang 3: Teorya
- Hakbang 4: Software
Video: Simpleng Rotary Decoder: 4 na Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:13
Ang itinuturo na ito ay naglalarawan ng isang simpleng pamamaraan ng pag-decode ng isang sunud-sunod na rotary encoder gamit ang isang Arduino Uno R3.
Ginagawa ang mga regular na gawain ng software upang mabilang ang bilang ng mga paglipat, alisin ang contact bounce, at matukoy ang direksyon ng pag-ikot. Ang mga karagdagang bahagi at talahanayan ng paghahanap ay hindi kinakailangan.
Nakagambala at hindi nagagambala na mga bersyon ng code ay ibinigay.
Ang nakakaabala na bersyon ng code ay nangangailangan lamang ng isang solong pag-abala ng pin.
Mga Larawan:
- Ipinapakita ng pambungad na larawan ang naka-assemble na encoder.
- Ipinapakita ng shot ng screen ang code para sa nakagambalang bersyon at ang bilang kapag ang encoder shaft ay pinaikot pakanan at kontra sa pakaliwa.
- Ipinapakita ng video ang bilang sa mabilis na pag-ikot.
Hakbang 1: Diagram ng Circuit
Ang diagram ng mga kable ng encoder ay ipinapakita sa fig.1.
Ang mga jumper wires ay solder na direkta sa mga encoder pin.
Palitan ang dalawang asul na mga wire kung ang direksyon ng bilang ay baligtad.
Hakbang 2: Listahan ng Mga Bahagi
Ang mga sumusunod na bahagi ay nakuha mula sa
- 1 lang ang Arduino UNO R3 na may USB Cable.
- 1 lamang ang sunud-sunod na rotary encoder (EC11 o katumbas) na may switch.
- 1 isang knob lamang upang umangkop sa baras.
- 3 lamang ang Arduino male-to-male jumper wires.
Hakbang 3: Teorya
Ang mga sunud-sunod na rotary encoder ay bumubuo ng dalawang square-waves na ang bawat isa ay na-displaced ng 90 degree tulad ng ipinakita sa Fig.1.
Ang mga pattern ng lohika sa Makipag-ugnay sa A at Makipag-ugnay sa B ay magkakaiba kapag ang baras ay pinaikot paikot (CW) at counter ng pakaliwa (CCW) sa pamamagitan ng mga posisyon 1 hanggang 6.
Ang mga karaniwang pamamaraan ng pagtukoy ng direksyon ng pag-ikot ay kinabibilangan ng:
- hardware
- nakakagambala ang kambal
- mga talahanayan ng paghahanap ng pattern
Gumagamit ang proyektong ito ng isang pamamaraan ng software na hindi nangangailangan ng mga talahanayan ng paghahanap. [1]
Direksyon
Sa halip na tingnan ang mga pattern ng output mula sa Makipag-ugnay sa A at Makipag-ugnay sa B mag-focus tayo sa Makipag-ugnay sa A.
Kung natitikman namin ang pakikipag-ugnay sa B pagkatapos ng bawat paglipat ng Isang Pakikipag-ugnay na tandaan namin na:
- Ang contact A at contact B ay may kabaligtaran na estado ng lohika kapag ang encoder ay pinaikot CW
- Ang contact A at contact B ay may parehong estado ng lohika kapag ang encoder ay pinaikot CCW
Tunay na code:
// ----- Bilangin ang mga pagbabago
CurrentStateA = stateContactA (); kung (CurrentStateA! = LastStateA) {CurrentStateB = digitalRead (ContactB); kung (CurrentStateA == CurrentStateB) Bilang ++; kung (CurrentStateA! = CurrentStateB) Bilangin--; LastStateA = CurrentStateA; }
Nag-aalok ang pamamaraang ito ng mga sumusunod na kalamangan:
- hindi kinakailangan ang mga talahanayan ng paghahanap
- iisang linya ng paggambala lamang ang kinakailangan
Pagbulalas
Ang lahat ng mga mechanical encoder ay nagdurusa mula sa "contact bounce".
Kung ang isang contact sa switch ay hindi gagawa / masira nang malinis ang estado ng lohika ay mabilis na mag-oscillate mula SA Mataas hanggang sa Mababa hanggang sa mag-ayos ang contact sa switch. Nagreresulta ito sa maling bilang.
Ang isang pamamaraan para sa pagpigil sa bounce ng contact ay upang magdagdag ng isang maliit na capacitor sa bawat contact ng switch. Ang capacitor at nauugnay na pull-up risistor ay bumubuo ng isang integrator na kung saan ay mabisa ang mataas na frequency at pinapayagan ang boltahe ng switch na tumaas / mahulog nang kaaya-aya.
Ang downside sa diskarte na ito ay ang mga paglipat ay maaaring napalampas kung ang encode shaft ay mabilis na pinaikot.
Pag-utos ng Software
Gumagamit ang pamamaraang ito ng dalawang mga counter (Buksan, Isara) na itinakda sa zero. [2]
Kapag nakita ang isang paglipat sa Makipag-ugnay sa A:
- Patuloy na poll Makipag-ugnay sa A.
- Palakihin ang Open counter, at i-reset ang Closed counter, tuwing MAKataas ang contact A.
- Palakihin ang Closed counter, at i-reset ang Open counter, tuwing mababa ang contact A.
- Lumabas sa loop kapag naabot ng isa sa mga counter ang isang paunang natukoy na bilang. Mabisang hinahanap namin ang matatag na panahon ng estado kasunod ng anumang bounce ng contact.
Tunay na code:
// ----- I-debate ang Pakikipag-ugnay sa A
habang (1) {kung (digitalRead (ContactA)) {// ----- Ang contactA ay Bukas Na Sarado = 0; // Empty kabaligtaran integrator Buksan ++; // Isama kung bumalik ang (Buksan> MaxCount) TAAS; } iba pa {// ----- Ang contactA ay Saradong Bukas = 0; // Empty tapat integrator Sarado ++; // Isama kung (Sarado> MaxCount) ibalik ang LOW; }}
Hindi kailangang i-debounce ang contact B dahil ang mga pakikipag-ugnay sa A at contact B ay hindi magkakasabay.
Nagbibilang
Ang isang mekanikal na "detent" na epektibo na pagdodoble ng iyong bilang bilang dalawang bilang ay nakarehistro sa pagitan ng mga pag-click (tingnan ang fig 1).
Ang bilang ng mga "detent" ay maaaring matukoy gamit ang modulo 2 arithmetic tulad ng ipinakita sa ibaba.
Tunay na code:
// ----- Bilangin ang "mga detenso"
kung (Bilangin ang% 2 == 0) {Serial.print ("Bilang:"); Serial.println (Bilang / 2); }
Mga Sanggunian
Ang karagdagang impormasyon ay maaaring matagpuan sa:
[1]
howtomechatronics.com/tutorials/arduino/ro…
[2]
newbiehack.com/ ButtonorSwitchDebounceinSof…
Hakbang 4: Software
Nangangailangan ang proyektong ito ng isang kamakailang bersyon ng Ardino Uno R3 IDE (integrated environment na pag-unlad) na magagamit mula sa
I-download ang bawat isa sa mga sumusunod na dalawang sketch ng Arduino (nakakabit)
- rotary_encoder_1.ino (bersyon ng botohan)
- rotary_encoder_2.no (makagambala na bersyon)
Mag-double click sa iyong ginustong bersyon at sundin ang mga tagubilin sa screen.
Masiyahan…
Mag-click dito upang matingnan ang aking iba pang mga itinuturo.
Inirerekumendang:
LabDroid: Morse Code Encoder / Decoder: 4 Hakbang
LabDroid: Morse Code Encoder / Decoder: Tandaan: Ang tagubiling ito ay hindi maisasakatuparan 1: 1 sa pinakabagong bersyon ng LabDroid. I-a-update ko ito sa lalong madaling panahon. Ipapakita sa iyo ng proyektong ito kung ano ang maaari mong gawin sa LabDroid. Dahil ang isang Hello World ay karaniwang ginawa batay sa teksto, ilaw o tunog, naisip ko para sa LabDr
Binary Tree Morse Decoder: 7 Hakbang (na may Mga Larawan)
Binary Tree Morse Decoder: a.articles {font-size: 110.0%; font-weight: naka-bold; font-style: italic; dekorasyon sa teksto: wala; background-color: red;} a.articles: hover {background-color: black;} Ito ay nagtuturo na nagpapaliwanag kung paano i-decode ang Morse Code gamit ang isang Arduino Uno R3.T
Paano Gumawa ng isang Simpleng DTMF (tone) Phone Line Decoder: 3 Mga Hakbang
Paano Gumawa ng isang Simpleng DTMF (tono) Decoder ng Linya ng Telepono: Ito ay isang simpleng proyekto na hinahayaan kang ma-decode ang mga signal ng DTMF sa karaniwang anumang linya ng telepono. Sa tutorial na ito, ginagamit namin ang decoder MT8870D. Gumagamit kami ng isang prebuilt tone decoder dahil, maniwala ka sa akin, sakit sa likuran upang subukan at gawin ito sa
Paano Gumamit ng Stepper Motor Bilang Rotary Encoder at OLED Display para sa Mga Hakbang: 6 na Hakbang
Paano Gumamit ng Stepper Motor Bilang Rotary Encoder at OLED Display para sa Mga Hakbang: Sa tutorial na ito matututunan namin kung paano subaybayan ang mga hakbang sa motor ng stepper sa OLED Display. Manood ng isang demonstration video. Ang kredito para sa Orihinal na tutorial ay napupunta sa gumagamit ng youtube " sky4fly "
Mabilis at Madaling Paraan upang Baguhin ang Iyong Lock Screen sa 6 Mga Simpleng Hakbang (Windows 8-10): 7 Mga Hakbang
Mabilis at Madaling Paraan upang Baguhin ang Iyong Lock Screen sa 6 Mga Simpleng Hakbang (Windows 8-10): Nais mong baguhin ang mga bagay sa iyong laptop o PC? Nais mo ng isang pagbabago sa iyong kapaligiran? Sundin ang mga mabilis at madaling hakbang na ito upang matagumpay na maisapersonal ang iyong computer lock screen