በአርዱኒኖ ፕሮግራም ውስጥ ትይዩ ተግባራትን (ክሮች) እንዴት ማከናወን እንደሚቻል

ዝርዝር ሁኔታ:

በአርዱኒኖ ፕሮግራም ውስጥ ትይዩ ተግባራትን (ክሮች) እንዴት ማከናወን እንደሚቻል
በአርዱኒኖ ፕሮግራም ውስጥ ትይዩ ተግባራትን (ክሮች) እንዴት ማከናወን እንደሚቻል

ቪዲዮ: በአርዱኒኖ ፕሮግራም ውስጥ ትይዩ ተግባራትን (ክሮች) እንዴት ማከናወን እንደሚቻል

ቪዲዮ: በአርዱኒኖ ፕሮግራም ውስጥ ትይዩ ተግባራትን (ክሮች) እንዴት ማከናወን እንደሚቻል
ቪዲዮ: እንደት የምባይላችንን ዳታ ወደ ዋይፋ እንቀይራለን how to convert mobile data to wi-fi 2024, ግንቦት
Anonim

በማይክሮፕሮሰሰር ቴክኖሎጂ ውስጥ በትይዩ የሚሰሩ ሥራዎች ክር ይባላሉ ፡፡ ይህ በጣም ምቹ ነው ፣ ምክንያቱም ብዙ ጊዜ በተመሳሳይ ጊዜ ብዙ ክዋኔዎችን ማከናወን አስፈላጊ ነው ፡፡ እንደ እውነተኛው አንጎለ ኮምፒውተር አርዱኢኖ ማይክሮ መቆጣጠሪያ በአንድ ጊዜ በርካታ ሥራዎችን እንዲያከናውን ማድረግ ይቻላልን? እናያለን.

በአርዱዲኖ ፕሮግራም ውስጥ ትይዩ ጅረቶች
በአርዱዲኖ ፕሮግራም ውስጥ ትይዩ ጅረቶች

አስፈላጊ ነው

  • - አርዱዲኖ;
  • - 1 LED;
  • - 1 የፓይዞ ጫጫታ ፡፡

መመሪያዎች

ደረጃ 1

በአጠቃላይ ሲናገር አርዱduኖ እውነተኛ ትይዩነትን ወይም ሁለገብ ንባብን አይደግፍም ፡፡

ነገር ግን በእያንዳንዱ የ “loop ()” ዑደት ድግግሞሽ አንዳንድ ተጨማሪ እና የጀርባ ተግባሮችን ለማከናወን ጊዜው እንደደረሰ ለማጣራት ለማይክሮ መቆጣጠሪያው መንገር ይችላሉ ፡፡ በዚህ ጊዜ በርካታ ተግባራት በአንድ ጊዜ እየተከናወኑ እንደሆነ ለተጠቃሚው ይመስላል ፡፡

ለምሳሌ ፣ በተጠቀሰው ድግግሞሽ ላይ ኤ.ዲ.ኤልን እናንፀባርቅ እና ፣ በትይዩ ፣ ከፓይኦኤሌክትሪክ ኃይል አመንጪው እንደ ሳይረን የሚነሱ እና የሚወድቁ ድምፆችን እናወጣ ፡፡

ሁለቱን ኤልዲ እና የፓይዞ አመንጪን ከአንድ ጊዜ በላይ ከአርዱduኖ ጋር አገናኘን ፡፡ በስዕሉ ላይ እንደሚታየው ወረዳውን እንሰብሰብ ፡፡ ኤ.ዲ.ኤልን ከ "13" ውጭ ወደ ዲጂታል ፒን እያገናኙ ከሆነ የአሁኑን የሚገደብ ተከላካይ ወደ 220 ohms እንዲኖርዎ ያስታውሱ ፡፡

ለባዛር እና ኤልኢዲ ወደ አርዱዲኖ የሽቦ ንድፍ
ለባዛር እና ኤልኢዲ ወደ አርዱዲኖ የሽቦ ንድፍ

ደረጃ 2

እስቲ ይህን የመሰለ ንድፍ እንጻፍ እና ወደ አርዱinoኖ እንሰቅለው።

ቦርዱን ከጫኑ በኋላ ንድፉ እኛ እንደፈለግነው በትክክል እንዳልተፈፀመ ማየት ይችላሉ-ሲሪኑ ሙሉ በሙሉ ሥራውን እስኪያከናውን ድረስ ኤሌዲው አይበራም ፣ እና ኤንዲው በሲሪን ድምፅ በሚሰማበት ጊዜ እንዲንፀባረቅ እንፈልጋለን ፡፡ እዚህ ችግሩ ምንድነው?

እውነታው ይህ ችግር በተለመደው መንገድ ሊፈታ እንደማይችል ነው ፡፡ ሥራዎቹ የሚከናወኑት በማይክሮ መቆጣጠሪያው በጥብቅ በቅደም ተከተል ነው ፡፡ የ “መዘግየቱ ()” ኦፕሬተር የፕሮግራሙን አፈፃፀም ለተወሰነ ጊዜ ያዘገየዋል ፣ እና እስከዚህ ጊዜ እስኪያበቃ ድረስ የሚከተሉት የፕሮግራም ትዕዛዞች አይተገበሩም ፡፡ በዚህ ምክንያት በፕሮግራሙ “loop ()” ውስጥ ለእያንዳንዱ ሥራ የተለየ የማስፈጸሚያ ጊዜ መወሰን አንችልም ፡፡

ስለዚህ ፣ እንደምንም ሁለገብ ሥራን ማስመሰል ያስፈልግዎታል።

በተከታታይ ቢፕ እና የኤል ዲ ቁጥጥር
በተከታታይ ቢፕ እና የኤል ዲ ቁጥጥር

ደረጃ 3

አርዱinoኖ በሐሰተኛ ትይዩ ውስጥ ተግባሮችን የሚያከናውንበት አማራጭ በአርዱዲኖ ገንቢዎች በአንቀጽ https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay ነው ፡፡

ዘዴው ዋናው ነገር በእያንዳንዱ የ "loop ()" loop ድግግሞሽ ፣ የ LED ን የማብራት (የጀርባ ተግባርን ለማከናወን) ጊዜው አሁን መሆን አለመሆኑን እንፈትሻለን ፡፡ እና እሱ ከሆነ ፣ ከዚያ የኤልዲውን ሁኔታ እናዞረዋለን። ይህ የ "መዘግየት ()" ኦፕሬተርን የማለፍ አንድ ዓይነት ነው።

የዚህ ዘዴ ጉልህ ጉዳት በ ‹LED› መቆጣጠሪያ አሃድ ፊት ለፊት ያለው የኮድ ክፍል ከ ‹ledInterval› ኤል.ዲ.ኤል ብልጭታ የጊዜ ክፍተት በበለጠ ፍጥነት መከናወን መቻሉ ነው ፡፡ አለበለዚያ ብልጭ ድርግም የሚለው አስፈላጊ ከሆነው ያነሰ በተደጋጋሚ ይከሰታል ፣ እናም ትይዩ ተግባሮችን የማስፈፀም ውጤት አናገኝም። በተለይም በእኛ ረቂቅ ንድፍ ውስጥ የሲረን ድምፅ መለዋወጥ የሚቆይበት ጊዜ 200 + 200 + 200 + 200 = 800 msec ነው ፣ እና የ LED ብልጭታ ክፍተቱን ወደ 200 ሜሴ ሴኮንድ አደረግን ፡፡ ግን ኤሌዲው ከ 800 ሜ / ሰከንድ ጊዜ ጋር ብልጭ ድርግም ይላል ፣ ይህም እኛ ካዘጋጀነው 4 እጥፍ የተለየ ነው። በአጠቃላይ ፣ የ “መዘግየቱ ()” ኦፕሬተር በኮዱ ውስጥ ጥቅም ላይ ከዋለ ፣ የውሸት-ትይዩአዊነትን ለማስመሰል አስቸጋሪ ነው ፣ ስለሆነም እሱን ለማስወገድ ይመከራል።

በዚህ ጊዜ ለሲረን ድምፅ መቆጣጠሪያ ክፍል ጊዜው ደርሶም አልደረሰም መፈተሽ እና “መዘግየት ()” ን ላለመጠቀም አስፈላጊ ይሆናል ፡፡ ግን ይህ የኮዱን መጠን ከፍ ያደርገዋል እና የፕሮግራሙን ተነባቢነት ያባብሰዋል ፡፡

ያለምንም መዘግየት የ LED ብልጭ ድርግም () ኦፕሬተር
ያለምንም መዘግየት የ LED ብልጭ ድርግም () ኦፕሬተር

ደረጃ 4

ይህንን ችግር ለመፍታት የውሸት-ትይዩ አሠራሮችን በቀላሉ እንዲፈጥሩ የሚያስችልዎትን አስደናቂውን የ ArduinoThread ቤተ-መጽሐፍት እንጠቀማለን። እሱ በተመሳሳይ መንገድ ይሠራል ፣ ግን ጊዜውን ለመፈተሽ ኮድ ላለመጻፍ ያስችልዎታል - በዚህ ዑደት ውስጥ ሥራውን ማከናወን ይፈልጉ ወይም አይፈልጉ። ይህ የኮዱን መጠን ይቀንሰዋል እና የንድፍ ንድፍ ንባብን ያሻሽላል። በተግባር ላይብረሪውን እንፈትሽ ፡፡

በመጀመሪያ ፣ የላይብረሪውን መዝገብ ቤት ከኦፊሴላዊው ጣቢያ https://github.com/ivanseidel/ArduinoThread/archive/master.zip ያውርዱ እና በአርዱዲኖ አይዲኢ ወደ “ቤተ-መጻሕፍት” ማውጫ ይክፈቱ ፡፡ ከዚያ የ "ArduinoThread-master" አቃፊን ወደ "ArduinoThread" እንደገና ይሰይሙ።

የ ArduinoThread ቤተ-መጽሐፍት በመጫን ላይ
የ ArduinoThread ቤተ-መጽሐፍት በመጫን ላይ

ደረጃ 5

የግንኙነት ዲያግራም ተመሳሳይ ሆኖ ይቆያል። የሚቀየረው የፕሮግራሙ ኮድ ብቻ ነው ፡፡ አሁን ከጎን አሞሌው ጋር ተመሳሳይ ይሆናል።

በፕሮግራሙ ውስጥ ሁለት ዥረቶችን እንፈጥራለን ፣ እያንዳንዱ የራሱ የሆነ ሥራ ይሠራል-አንደኛው በኤልዲ መብራት ፣ ሁለተኛው የሲሪን ድምፅ ይቆጣጠራል ፡፡ በእያንዳንዱ የሉፍ ድግግሞሽ ፣ ለእያንዳንዱ ክር ፣ የማስፈጸሚያ ጊዜው እንደደረሰ ወይም እንዳልሆነ እንፈትሻለን ፡፡ ከመጣ የ “ሩጫ ()” ዘዴን ለማስፈፀም ተጀምሯል ፡፡ ዋናው ነገር የ “መዘግየት ()” ኦፕሬተርን አለመጠቀም ነው ፡፡

የበለጠ ዝርዝር ማብራሪያዎች በኮዱ ውስጥ ተሰጥተዋል ፡፡

ኮዱን በአርዱዲኖ ማህደረ ትውስታ ውስጥ እንጫን ፣ እናሂደው ፡፡ አሁን ሁሉም ነገር እንደ ሁኔታው በትክክል ይሠራል!

የሚመከር: