ዝርዝር ሁኔታ:

ቀላል ሮታሪ ዲኮደር 4 ደረጃዎች
ቀላል ሮታሪ ዲኮደር 4 ደረጃዎች

ቪዲዮ: ቀላል ሮታሪ ዲኮደር 4 ደረጃዎች

ቪዲዮ: ቀላል ሮታሪ ዲኮደር 4 ደረጃዎች
ቪዲዮ: በቤት ቆጣሪ የሚሰራ ዘመናዊ የዳቦ መጋገሪያ ማሽኖች በቅናሽ ዋጋ እየተሸጠ ነዉ 2024, ሀምሌ
Anonim
Image
Image
ቀላል ሮታሪ ዲኮደር
ቀላል ሮታሪ ዲኮደር

ይህ አስተማሪ አርዱዲኖ ዩኖ R3 ን በመጠቀም ተከታታይ የ rotary encoder ን ዲኮዲንግ ቀላል ዘዴን ይገልጻል።

የታመቀ የሶፍትዌር አሰራሮች የሽግግሮችን ቁጥር ለመቁጠር ፣ የእውቂያ ንዝረትን ለማስወገድ እና የማዞሪያ አቅጣጫን ለመወሰን ያገለግላሉ። ተጨማሪ ክፍሎች እና የፍለጋ ሰንጠረ requiredች አያስፈልጉም።

የማቋረጫ እና የማያቋርጥ የኮድ ስሪቶች ቀርበዋል።

የኮዱ መቋረጫ ስሪት አንድ የሚያቋርጥ ፒን ብቻ ይፈልጋል።

ምስሎች ፦

  • የመክፈቻው ፎቶ የተሰበሰበውን ኢንኮደር ያሳያል።
  • የማያ ገጽ ቀረጻው የማቆሚያ ዘንግ በሰዓት አቅጣጫ እና በተቃራኒ ሰዓት አቅጣጫ ሲሽከረከር ለተቋረጠው ስሪት እና ቆጠራውን ያሳያል።
  • ቪዲዮው በፍጥነት በሚሽከረከርበት ጊዜ ቆጠራውን ያሳያል።

ደረጃ 1 የወረዳ ዲያግራም

የወረዳ ዲያግራም
የወረዳ ዲያግራም

የኢኮኮደር ሽቦው ዲያግራም በምስል 1 ላይ ይታያል።

የጃምፐር ሽቦዎች በቀጥታ ወደ ኢንኮደር ፒን ይሸጣሉ።

የመቁጠሪያው አቅጣጫ ከተገለበጠ ሁለቱን ሰማያዊ ሽቦዎች ይለዋወጡ።

ደረጃ 2 - ክፍሎች ዝርዝር

የሚከተሉት ክፍሎች የተገኙት ከ

  • 1 ብቻ አርዱዲኖ UNO R3 በዩኤስቢ ገመድ።
  • 1 ከመቀያየር ጋር ብቻ በቅደም ተከተል የሚሽከረከር መቀየሪያ (EC11 ወይም ተመጣጣኝ)።
  • ከጉድጓዱ ጋር የሚገጣጠም 1 ጉብታ ብቻ።
  • 3 አርዱinoኖ ከወንድ-ወደ-ወንድ ዝላይ ገመዶች ብቻ።

ደረጃ 3 ንድፈ ሃሳብ

ቲዎሪ
ቲዎሪ

ተከታታይ የማዞሪያ ኢንኮደሮች እያንዳንዳቸው ሁለት ካሬ-ሞገዶችን ያመነጫሉ እያንዳንዳቸው በ 90 ዲግሪዎች ይፈናቀላሉ።

በእውቂያ ሀ እና በእውቂያ ቢ ላይ ያሉት አመክንዮአዊ ዘይቤዎች ዘንግ በሰዓት አቅጣጫ (CW) እና በተቃራኒ ሰዓት አቅጣጫ (ሲ.ሲ.ቪ) ሲዞሩ ከ 1 እስከ 6 ባሉ ቦታዎች ይለያያሉ።

የማዞሪያ አቅጣጫን ለመወሰን የተለመዱ ዘዴዎች የሚከተሉትን ያካትታሉ:

  • ሃርድዌር
  • መንትያ ያቋርጣል
  • ንድፍ ፍለጋ ሰንጠረ.ች

ይህ ፕሮጀክት የፍለጋ ሰንጠረ requireችን የማይፈልግ የሶፍትዌር ዘዴን ይጠቀማል። [1]

አቅጣጫ

ከእውቂያ ሀ እና ከእውቂያ ለ የውጤት ንድፎችን ከመመልከት ይልቅ በእውቂያ ሀ ላይ እናተኩር።

ከእያንዳንዱ የእውቂያ ሽግግር በኋላ የእውቂያ ቢን ናሙና ካደረግን የሚከተሉትን እናስተውላለን-

  • እውቂያ ሀ እና ዕውቂያ ቢ ኢንኮደሩ ሲሽከረከር ተቃራኒ ሎጂክ ግዛቶች አሏቸው
  • እውቂያ ሀ እና እውቂያ ቢ ኢንኮደሩ ሲሽከረከር ተመሳሳይ አመክንዮአዊ ሁኔታ አላቸው

ትክክለኛ ኮድ ፦

// ----- ሽግግሮችን ይቁጠሩ

CurrentStateA = stateContactA (); ከሆነ (CurrentStateA! = LastStateA) {CurrentStateB = digitalRead (ContactB); ከሆነ (CurrentStateA == CurrentStateB) ቆጠራ ++; ከሆነ (CurrentStateA! = CurrentStateB) ቆጠራ--; LastStateA = CurrentStateA; }

ይህ ዘዴ የሚከተሉትን ጥቅሞች ይሰጣል-

  • የፍለጋ ሰንጠረ notች አያስፈልጉም
  • አንድ ማቋረጫ መስመር ብቻ ያስፈልጋል

ወደኋላ መመለስ

ሁሉም የሜካኒካል ኢንኮኮሮች በ “የእውቂያ መነሳት” ይሰቃያሉ።

የመቀየሪያ እውቂያው በንጽህና ካልሰራ/ካልሰበረ የመቀየሪያ እውቂያው እስኪረጋጋ ድረስ አመክንዮአዊ ሁኔታው ከከፍተኛ ወደ ዝቅተኛ በፍጥነት ይንቀጠቀጣል። ይህ የሐሰት ቆጠራዎችን ያስከትላል።

የእውቂያ ንዝረትን ለመግታት አንዱ ዘዴ በእያንዳንዱ የመቀየሪያ ዕውቂያ ላይ ትንሽ capacitor ማከል ነው። Capacitor እና ተጓዳኝ መጎተቻ ተከላካይ ከፍተኛ ድግግሞሾችን ውጤታማ በሆነ መንገድ ያሳጥራል እና የመቀየሪያ ቮልቴጁ በጥሩ ሁኔታ እንዲጨምር/እንዲወድቅ የሚያደርግ ውህደት ይፈጥራል።

የዚህ አቀራረብ ዝቅተኛው የኢኮኮደር ዘንግ በፍጥነት ከተሽከረከረ ሽግግሮች ሊያመልጡ ይችላሉ።

የሶፍትዌር ማቃለል

ይህ ዘዴ ወደ ዜሮ የተቀናበሩ ሁለት ቆጣሪዎችን (ክፍት ፣ ዝግ) ይጠቀማል። [2]

በእውቂያ ሀ ላይ አንድ ሽግግር ከተገኘ

  • ያለማቋረጥ የሕዝብ አስተያየት ያነጋግሩ ሀ.
  • እውቂያ ሀ ከፍተኛ በሚሆንበት ጊዜ ክፍት ቆጣሪውን ይጨምሩ እና የተዘጋውን ቆጣሪ እንደገና ያስጀምሩ።
  • እውቂያ ሀ ዝቅተኛ በሚሆንበት ጊዜ የተዘጋውን ቆጣሪ ይጨምሩ እና ክፍት ቆጣሪውን እንደገና ያስጀምሩ።
  • አንደኛው ቆጣሪ አስቀድሞ የተወሰነ ቆጠራ ላይ ሲደርስ ከጉዞው ይውጡ። ማንኛውንም የግንኙነት መነሳት ተከትሎ የተረጋጋውን ክፍለ ጊዜ ውጤታማ በሆነ መንገድ እየፈለግን ነው።

ትክክለኛ ኮድ ፦

// ----- Debounce እውቂያ ሀ

(1) {ከሆነ (digitalRead (ContactA)) {// ----- ContactA ክፍት ተዘግቷል = 0; // ባዶ ተቃራኒ ውህደት ክፈት ++; // (ክፍት> MaxCount) HIGH ከተመለሰ ያዋህዱ ፣ } ሌላ {// ----- ContactA ዝግ ነው ክፍት = 0; // ባዶ ተቃራኒ ውህደት ተዘግቷል ++; // (ተዘግቷል> MaxCount) LOW ከተመለሰ ያዋህዱ ፤ }}

የእውቂያ ሀ እና የእውቂያ ቢ ሽግግሮች ስላልተገናኙ የእውቂያ ቢን ማላቀቅ አያስፈልግም።

በመቁጠር ላይ

ጠቅታዎች በጠቅታዎች መካከል ስለተመዘገቡ ሜካኒካዊ “ማቆያ” ውጤታማ በሆነ መንገድ ቆጠራዎን በእጥፍ ይጨምራል (ምስል 1 ን ይመልከቱ)።

ከዚህ በታች እንደሚታየው ሞዱሎ 2 አርቲሜቲክን በመጠቀም የ “እስረኞች” ብዛት ሊወሰን ይችላል።

ትክክለኛ ኮድ ፦

// ----- “እስረኞችን” ይቆጥሩ

ከሆነ (ቆጠራ % 2 == 0) {Serial.print ("Count:"); Serial.println (ቆጠራ / 2); }

ማጣቀሻዎች

ተጨማሪ መረጃ በሚከተለው ላይ ሊገኝ ይችላል-

[1]

howtomechatronics.com/tutorials/arduino/ro…

[2]

newbiehack.com/ButtonorSwitchDebounceinSof…

ደረጃ 4: ሶፍትዌር

ይህ ፕሮጀክት ከ https://www.arduino.cc/en/main/software የሚገኝ የአርዲኖ ዩኖ አር 3 አይዲኢ (የተቀናጀ ልማት አካባቢ) የቅርብ ጊዜ ስሪት ይፈልጋል።

ከሚከተሉት ሁለት የአርዱዲኖ ንድፎች እያንዳንዱን ያውርዱ (ተያይ attachedል)

  • rotary_encoder_1.ino (የምርጫ ስሪት)
  • rotary_encoder_2.no (የተቋረጠ ስሪት)

በተመረጠው ስሪትዎ ላይ ሁለቴ ጠቅ ያድርጉ እና የማያ ገጽ ላይ መመሪያዎችን ይከተሉ።

ይደሰቱ…

ሌሎች አስተማሪዎቼን ለማየት እዚህ ጠቅ ያድርጉ።

የሚመከር: