Orodha ya maudhui:

Encoder ya Rotary - Ifahamu na Itumie (Arduino / nyingine ΜController): 3 Hatua
Encoder ya Rotary - Ifahamu na Itumie (Arduino / nyingine ΜController): 3 Hatua

Video: Encoder ya Rotary - Ifahamu na Itumie (Arduino / nyingine ΜController): 3 Hatua

Video: Encoder ya Rotary - Ifahamu na Itumie (Arduino / nyingine ΜController): 3 Hatua
Video: Lesson 97: Controlling Servo Motor using Rotary Encoder and Display Angle On LCD 2024, Novemba
Anonim
Encoder ya Rotary - Ifahamu na Itumie (Arduino / nyingine ΜController)
Encoder ya Rotary - Ifahamu na Itumie (Arduino / nyingine ΜController)

Encoder ya rotary ni kifaa cha elektroniki ambacho hubadilisha mwendo wa kuzunguka kuwa habari ya dijiti au ya Analog. Inaweza kugeuza saa moja kwa moja au kinyume cha saa. Kuna aina mbili za encoders za rotary: encoders kamili na jamaa (nyongeza).

Wakati encoder kamili inatoa thamani sawa na pembe ya sasa ya shimoni, encoder inayoongeza hutoa hatua ya shimoni na mwelekeo wake.

Usimbaji wa Rotary unakuwa maarufu zaidi kwa sababu una uwezo wa kutumia kazi mbili kwenye moduli moja ya umeme: Kitufe rahisi cha kuthibitisha operesheni na kisimbuaji cha rotary kusafiri, n.k. kupitia menyu.

Encoder inayozunguka inayozunguka hutoa ishara mbili za pato wakati shimoni yake inazunguka. Kulingana na mwelekeo, moja ya ishara inaongoza nyingine. (tazama hapa chini)

Hatua ya 1: Kuelewa Takwimu za Pato

Kuelewa Takwimu za Pato
Kuelewa Takwimu za Pato

Kama unavyoweza kuona wakati shimoni ya encoder inapoanza kuzunguka kwa saa, Pato A linaanguka chini LOW kwanza na Pato B linafuata. Katika mwelekeo wa kukabiliana na saa, operesheni inageuka kinyume.

Sasa inabidi tu tekeleze hii kwenye µController yetu (nilitumia Arduino Nano).

Hatua ya 2: Jenga Mzunguko

Jenga Mzunguko
Jenga Mzunguko
Jenga Mzunguko
Jenga Mzunguko

Kama nilivyoelezea kabla ya matokeo kuunda KIWANGO cha juu na cha chini. Ili kupata HIGH safi kwenye pini ya data A na B ya µKidhibiti lazima tuongeze vipingaji vya Kuvuta-Juu. Pin ya kawaida C huenda moja kwa moja ardhini kwa ubavu wa CHINI.

Ili kupata habari juu ya swichi ya ndani (kitufe cha kushinikiza) tutatumia pini zingine mbili. Mmoja wao huenda kwa VCC na yule mwingine kwenye Pini ya data ya µController. Lazima pia tuongeze Resistor ya Kuvuta-Chini kwenye pini ya data ili kupata LOW safi.

Inawezekana pia kutumia vipinga-ndani vya Kuvuta-Juu na Vuta-Chini vya µMdhibiti wako!

Kwa upande wangu pinout inaonekana kama:

  • +3, 3V => +3, 3V (Arduino) (pia + 5V inawezekana)
  • GND => GND (Arduino)
  • A => Pin10
  • B =>

    Bandika

    11

  • C => GND
  • SW =>

    Bandika

    12

Hatua ya 3: Kuandika Nambari

siri pin = 10; // kubadili kwa ndani pin pinB = 11; // kubadili ndani B int pinSW = 12; // kubadili (Encoder iliyoshinikizwa) int encoderPosCount = 0; // huanza saa sifuri, badilisha ikiwa unataka

nafasi nzuri;

ubadilishaji wa bool; int mrotateLast; int mrotate;

usanidi batili () {

int mrotateLast = digitalRead (pinA); Kuanzia Serial (9600); kuchelewesha (50); }

kitanzi batili () {readencoder (); ikiwa (readwitch () == 1) {Serial.println ("Switch = 1"); }}

kusoma kusoma kwa maandishi () {

mrotate = digitalRead (pinA); ikiwa (mrotate! = mrotateLast) {// knob inazunguka ikiwa (digitalRead (pinB)! = mrotate) {// switch A changed first -> rotating clockwise encoderPosCount ++; Serial.println ("kuzungushwa kwa saa"); } mwingine {// kubadili B imebadilishwa kwanza -> kuzunguka encoderPosCount-- saa moja kwa moja -; Serial.println ("kuzungushwa kinyume cha saa"); }

Serial.print ("Nafasi ya Encoder:"); Serial.println (encoderPosCount); Serial.println (""); } mrotateLast = mrotate; kurudi encoderPosCount; } wasomaji wa bool () {

ikiwa (digitalRead (pinSW)! = 0) {// switch imesisitizwa

wakati (digitalRead (pinSW)! = 0) {} // switch sasa imebonyezwa switchval = 1; } mwingine {switchval = 0;} // swichi ni ubadilishaji wa kurudi unavuliwa; }

Sasa unaweza kugeuza kisimbuzi na encoder ya kutofautishaPosCount itahesabu ikiwa utazunguka kwa saa na kuhesabu chini ikiwa unazunguka kinyume cha saa.

Hiyo ndio! Kwa urahisi na muhimu.

Jisikie huru kubadilisha na kutekeleza nambari. Unaweza kutekeleza katika mradi wako.

Pia nitapakia mradi wa LED ambapo nilitumia kisimbuzi kuweka mwangaza wa LED zangu.

Ilipendekeza: