Բովանդակություն:

Rotary Encoder - Հասկացեք և օգտագործեք այն (Arduino/այլ ΜController). 3 քայլ
Rotary Encoder - Հասկացեք և օգտագործեք այն (Arduino/այլ ΜController). 3 քայլ

Video: Rotary Encoder - Հասկացեք և օգտագործեք այն (Arduino/այլ ΜController). 3 քայլ

Video: Rotary Encoder - Հասկացեք և օգտագործեք այն (Arduino/այլ ΜController). 3 քայլ
Video: FESTO հիանալի ցուցահանդեսային վան ընկերությունը 2024, Նոյեմբեր
Anonim
Rotary Encoder - Հասկացեք և օգտագործեք այն (Arduino/այլ ΜController)
Rotary Encoder - Հասկացեք և օգտագործեք այն (Arduino/այլ ΜController)

Պտտվող կոդավորիչը էլեկտրամեխանիկական սարք է, որը պտտվող շարժումը փոխակերպում է թվային կամ անալոգային տեղեկատվության: Այն կարող է պտտվել ժամացույցի սլաքի կամ հակառակ ուղղությամբ: Գոյություն ունեն պտտվող կոդավորիչների երկու տեսակ ՝ բացարձակ և հարաբերական (աճող) կոդավորիչներ:

Մինչ բացարձակ կոդավորիչը դուրս է բերում ընթացիկ լիսեռի անկյունին համարժեք արժեք, հավելյալ կոդավորիչը դուրս է բերում լիսեռի քայլը և դրա ուղղությունը: (Այս դեպքում մենք ունենք աճող կոդավորիչ)

Պտտվող կոդավորիչները դառնում են ավելի հայտնի, քանի որ դուք կարող եք օգտագործել երկու գործառույթ մեկ էլեկտրական մոդուլում. Գործողությունները հաստատող պարզ անջատիչ և նավարկելու համար պտտվող կոդավորիչ, օրինակ. մենյուի միջոցով:

Լրացուցիչ պտտվող կոդավորիչը առաջացնում է երկու ելքային ազդանշան, երբ նրա լիսեռը պտտվում է: Կախված ուղղությունից, ազդանշաններից մեկը տանում է մյուսին: (տես ներքեւում)

Քայլ 1: Հասկանալ ելքային տվյալները

Հասկանալով ելքային տվյալները
Հասկանալով ելքային տվյալները

Ինչպես տեսնում եք, երբ կոդավորիչի լիսեռը սկսում է պտտվել ժամացույցի սլաքի ուղղությամբ, ելքը A- ն առաջինը ընկնում է LOW- ի վրա, իսկ ելքը B- ն հետևում է դրան: Clockամացույցի սլաքի հակառակ ուղղությամբ գործողությունը շրջվում է հակառակ ուղղությամբ:

Այժմ մենք պարզապես պետք է սա ներդնենք մեր μController- ի վրա (ես օգտագործել եմ Arduino Nano):

Քայլ 2: Կառուցեք շրջանը

Կառուցեք շրջանագիծը
Կառուցեք շրջանագիծը
Կառուցեք շրջանագիծը
Կառուցեք շրջանագիծը

Ինչպես նկարագրեցի նախկինում, ելքերը ստեղծում են HIGH և LOW եզր: Մաք վերահսկիչի A և B տվյալների կապում մաքուր HIGH ստանալու համար մենք պետք է ավելացնենք ձգվող դիմադրություններ: Սովորական Pin C- ն ուղիղ գետնին է անցնում OWԱOWՐ թևի համար:

Ներքին անջատիչի (սեղմման կոճակի) մասին տեղեկատվություն ստանալու համար մենք կօգտագործենք մյուս երկու կապում: Նրանցից մեկը գնում է VCC, իսկ մյուսը `μC Controller- ի տվյալների Pin: Մենք նաև պետք է տվյալների PIN- ին ավելացնենք Pull-Down Resistor ՝ մաքուր OWԱOWՐ ստանալու համար:

Հնարավոր է նաև օգտագործել ձեր μController- ի ներքին Pull-Up և Pull-Down ռեզիստորները:

Իմ դեպքում քորոցը նման է.

  • +3, 3V => +3, 3V (Arduino) (հնարավոր է նաև +5V)
  • GND => GND (Arduino)
  • A => Pin10
  • B =>

    Կապում

    11

  • C => GND
  • SW =>

    Կապում

    12

Քայլ 3: Գրեք օրենսգիրքը

int pinA = 10; // ներքին անջատիչ A int pinB = 11; // ներքին անջատիչ B int pinSW = 12; // անջատիչ (սեղմված կոդավորիչ) int encoderPosCount = 0; // սկսվում է զրոյից, փոխեք, եթե ցանկանում եք

int դիրքորոշում;

bool switchval; int mrotateՎերջին; int mrotate;

void setup () {

int mrotateLast = digitalRead (pinA); Serial.begin (9600); ուշացում (50); }

void loop () {readencoder (); if (readwitch () == 1) {Serial.println ("Փոխել = 1"); }}

int readencoder () {

mrotate = digitalRead (pinA); if (mrotate! = mrotateLast) {// գլխիկը պտտվում է if (digitalRead (pinB)! = mrotate) {// switch A առաջինը փոխվել է -> պտտվող ժամացույցի սլաքի ուղղությամբ կոդավորիչPosCount ++; Serial.println («պտտվել ժամացույցի սլաքի ուղղությամբ»); } else {// անջատիչ B- ն նախ փոխվեց-> ժամացույցի սլաքի հակառակ ուղղությամբ պտտվող encoderPosCount--; Serial.println («պտտվել է ժամացույցի սլաքի հակառակ ուղղությամբ»); }

Serial.print ("Կոդավորողի դիրքը."); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = պտտել; վերադարձնել կոդավորիչըPosCount; } bool readwitch () {

if (digitalRead (pinSW)! = 0) {// անջատիչը սեղմված է

while (digitalRead (pinSW)! = 0) {} // switch այժմ սեղմված է switchval = 1; } else {switchval = 0;} // անջատիչը չճնշված վերադարձի անջատիչ է; }

Այժմ դուք կարող եք շրջել կոդավորիչը, և փոփոխական encoderPosCount- ը կհաշվի, եթե պտտեք ժամացույցի սլաքի ուղղությամբ և հետհաշվարկեք, եթե պտտեք ժամացույցի սլաքի ուղղությամբ:

Վերջ! Պարզ և օգտակար:

Ազատորեն փոխեք և կատարեք ծածկագիրը: Դուք կարող եք այն իրականացնել ձեր նախագծում:

Ես կբեռնեմ նաև LED նախագիծ, որտեղ ես օգտագործել եմ կոդավորիչը `իմ LED- ների պայծառությունը սահմանելու համար:

Խորհուրդ ենք տալիս: