ዝርዝር ሁኔታ:

ቁጥራዊ መረጃን ከአንድ አርዱዲኖ ወደ ሌላው ይላኩ - 16 ደረጃዎች
ቁጥራዊ መረጃን ከአንድ አርዱዲኖ ወደ ሌላው ይላኩ - 16 ደረጃዎች

ቪዲዮ: ቁጥራዊ መረጃን ከአንድ አርዱዲኖ ወደ ሌላው ይላኩ - 16 ደረጃዎች

ቪዲዮ: ቁጥራዊ መረጃን ከአንድ አርዱዲኖ ወደ ሌላው ይላኩ - 16 ደረጃዎች
ቪዲዮ: በርዝመታቸው የሚታወቁ 5 ምርጥ መስጊዶች በአለም ላይ 2024, ሀምሌ
Anonim
ቁጥራዊ መረጃን ከአንድ አርዱዲኖ ወደ ሌላው ይላኩ
ቁጥራዊ መረጃን ከአንድ አርዱዲኖ ወደ ሌላው ይላኩ

መግቢያ

በዴቪድ ፓልመር ፣ ሲዲኦ ቴክ። በአስቶን ዩኒቨርሲቲ።

ከአንዱ አርዱinoኖ ወደ ሌላ አንዳንድ ቁጥሮችን መላክ አስፈልጎዎት ያውቃል? ይህ አስተማሪ እንዴት እንደሆነ ያሳያል።

በ Serial Monitor ተርሚናል ላይ ለመላክ የቁጥሮችን ሕብረቁምፊ በመተየብ በቀላሉ እንደሚሰራ በቀላሉ መሞከር እና ቁጥሮቹን ከሁለተኛው አርዱinoኖ ጋር በተገናኘ በሁለተኛው ተከታታይ ማሳያ ላይ ተመልሰው ሲወጡ ማየት ይችላሉ። እንዲያውም የብሉቱዝ አገናኝን መጠቀም ይችላሉ።

ምን ያደርጋል

ሁለት የአርዱዲኖ ፕሮግራሞች (በአርዱዲኖ ውስጥ ያሉ ሥዕሎች ይናገራሉ) ማዳበር አለባቸው ፣ አንደኛው አርዱዲኖ ተከታታይ ሞኒተርን ከሚሠራው የአስተናጋጅ ኮምፒተር ጋር ለመገናኘት ፣ አንድ ሰው እንደ አገልጋይ ሆኖ ተከታታይ መልእክቱን ከመምህሩ ለመቀበል ፣ ዲኮዲንግ እና መልሰው ይላኩት። ባሪያው የሚመለከታቸው ቁጥሮችን በሁለተኛው IDE's Serial Monitor ላይ ለማሳየት በአማራጭ አቅም አለው - ይህንን ለመጠቀም ከፈለጉ። በመጀመሪያ ነገሮች እንዲሠሩ ሊረዳዎት ይችላል ፣ እና ለራስዎ ፍላጎቶች ለማሟላት በፕሮግራሞቹ ላይ ማንኛውንም ለውጥ ለማድረግ ከወሰኑ ሊረዳዎት ይችላል።

መሣሪያዎች

  • 2 የአርዱዲኖዎች
  • 2 የዩኤስቢ መምሪያዎች
  • የማጣበቂያ ሽቦዎች (እንደአስፈላጊነቱ)
  • 1 ፒሲ/ላፕቶፕ በአርዱዲኖ አይዲኢ ተጭኗል (ከ Arduino.cc ድር ጣቢያ እንደ ነፃ ማውረድ ይገኛል)

ደረጃ 1 - ማዋቀር - መጀመሪያ ሃርድዌርዎን ያዘጋጁ

ማዋቀር - መጀመሪያ ሃርድዌርዎን ያዘጋጁ
ማዋቀር - መጀመሪያ ሃርድዌርዎን ያዘጋጁ
ማዋቀር - መጀመሪያ ሃርድዌርዎን ያዘጋጁ
ማዋቀር - መጀመሪያ ሃርድዌርዎን ያዘጋጁ

በኮምፒተርዎ ላይ 2 አርዱኢኖዎችን ወደ 2 የዩኤስቢ ወደቦች ይሰኩ።

ጠቃሚ ምክር ፣ በኋላ ላይ ወደ ጭቃ ውስጥ እንዳይገቡ (እዚህ በ 2 ፎቶዎች ላይ እንደሚታየው) እንደ M እና ኤስ (ጌታ እና ባሪያ) መሰየማቸው ጥሩ ሀሳብ ነው።

ደረጃ 2 - ማዋቀር - ማያ ገጽዎን ያዘጋጁ

ማዋቀር - ማያ ገጽዎን ያዘጋጁ
ማዋቀር - ማያ ገጽዎን ያዘጋጁ

በጣም ጥሩው ነገር እንዲኖርዎት ማያ ገጽዎን ማቀናበር ነው

  • በግራ በኩል ባለው ማስተር ፕሮግራም የተጫነው አይዲኢ እና
  • በቀኝ ካለው ባሪያ ጋር።

እዚህ ማያ ገጽ ላይ እንደሚታየው ለሜዘር እና ለባሪያ ተከታታይ ማሳያዎችን በግራ እና በቀኝ ያኑሩ።

ደረጃ 3 ዋናውን መጨረሻ ያዋቅሩ ፣ ከዚያ አብረው ይገናኙ - ክፍል 1

ዋናውን መጨረሻ ያዋቅሩ ፣ ከዚያ አብረው ይገናኙ - ክፍል 1
ዋናውን መጨረሻ ያዋቅሩ ፣ ከዚያ አብረው ይገናኙ - ክፍል 1

ሁለት ቁጥሮችን ለመላክ ማስተር መጨረሻ ተከታታይ መቆጣጠሪያዎን ሲያዋቅሩ እዚህ እንደሚመለከቱት መጀመሪያ ፣ እና ማለቂያ ፣ ወሰን ገጸ -ባህሪያትን እና የኮማ መለያየትን ገጸ -ባህሪን ሁል ጊዜ መጠቀም አለብዎት።

አሁን ሁለቱን አርዱዲኖን በተከታታይ ላይ ማገናኘት ያስፈልግዎታል። ይህ በሁለት ጠጋኝ ሽቦዎች ይከናወናል።

አረንጓዴ እና ቢጫ እጠቀም ነበር

  • መጀመሪያ ቢጫውን ይውሰዱ ፣ ይህ በአንዱ አርዱዲኖ እና በሁለተኛው ውስጥ D6 ላይ መሰካት አለበት
  • ከዚያ ለአረንጓዴ ሽቦ ተቃራኒ ፣ በመጀመሪያው ላይ D7 እና በሁለተኛው አርዱinoኖ ላይ D6።

በአማራጭ ፣ እንደ ጥንድ የብሉቱዝ ሞጁሎች ያሉ አንድ ነገር ካለዎት - እንደ HC -05 - እነዚህ ከላይ ያሉት ሽቦዎች ልክ ተመሳሳይ ውጤት እንዲሰጡዎት ይሰራሉ።

ደረጃ 4 ዋናውን መጨረሻ ያዋቅሩ ፣ ከዚያ አብረው ይገናኙ - ክፍል 2

ዋናውን መጨረሻ ያዋቅሩ ፣ ከዚያ አብረው ይገናኙ - ክፍል 2
ዋናውን መጨረሻ ያዋቅሩ ፣ ከዚያ አብረው ይገናኙ - ክፍል 2
ዋናውን መጨረሻ ያዋቅሩ ፣ ከዚያ አብረው ይገናኙ - ክፍል 2
ዋናውን መጨረሻ ያዋቅሩ ፣ ከዚያ አብረው ይገናኙ - ክፍል 2

እኛ የሶፍትዌር ተከታታይ ቤተ -መጽሐፍትን እየተጠቀምን ነው። ተጨማሪ መረጃ በዚህ አገናኝ https://www.arduino.cc/en/Reference/Libraries ይገኛል።

ከፕሮግራሞቹ በአንዱ መስመር 7 ላይ ተጠርቶ ማየት ይችላሉ። ፒን ዲጂታል 7 እና 6 ን እንደ TX እና RX (ያስተላልፋል እና ይቀበላል) ያዋቅራል። ውሂቡ ከመምህሩ አርዱinoኖ በአረንጓዴ ሽቦ በኩል ወደ ባሪያው የሚጓዘው በዚህ መንገድ ነው ፣ እና በሁለተኛው አርዱዲኖ ውስጥ ያለው የባሪያ ፕሮግራም ሥራውን ሲያጠናቅቅ በቢጫው ሽቦ በኩል ይመለሳል። በተመሳሳዩ ሥዕላዊ መግለጫው ታችኛው ክፍል (በሴሪያል ሞኒተር መስኮት ውስጥ) እኛ ያስተላለፍነው ውሂብ አሁን እዚህ በተገለፀው ሉፕ ውስጥ ተዘዋውሮ ማየት እና የቁጥሮች ጥንድ በጥሩ ሁኔታ ተለያይቶ ወደ ፒሲ ተመልሰው መምጣት ይችላሉ።

ደረጃ 5 የስዕሎች / ፕሮግራሞች አጠቃላይ እይታ - የፕሮግራሙ አወቃቀር

የስዕሎች / ፕሮግራሞች አጠቃላይ እይታ - የፕሮግራሙ አወቃቀር
የስዕሎች / ፕሮግራሞች አጠቃላይ እይታ - የፕሮግራሙ አወቃቀር
የስዕሎች / ፕሮግራሞች አጠቃላይ እይታ - የፕሮግራሙ አወቃቀር
የስዕሎች / ፕሮግራሞች አጠቃላይ እይታ - የፕሮግራሙ አወቃቀር

አቀማመጥ በሁሉም የአርዱዲኖ ንድፎች ውስጥ 3 መሠረታዊ ክፍሎች አሉ-

  • መግለጫዎቹ
  • ቅንብር
  • ዋናው ሉፕ

ብዙ ጊዜ እንደሚከሰት ፣ እኛ ‹ተግባራት› መደመር የሆነውን የ 4 ኛ ክፍል እዚህ ተጠቅመናል። ተግባሮችን መጠቀምን የማያውቁ ከሆነ ለ “አርዱዲኖ ተግባራት” ጉግል ማድረግ ይችላሉ እና በዚህ አገናኝ ውስጥ እንደ ምሳሌ ያሉ የማብራሪያ ጣቢያዎችን ያገኛሉ- www.tutorialspoint.com/arduino/arduino_functions….

እንዲሁም ፕሮግራሙን በበለጠ ሊተዳደሩ በሚችሉ ብሎኮች ለመለየት ትሮችን ተጠቅመናል።

እኛ የተጠቀምናቸው ሦስቱ ብሎኮች ከላይ ባለው የ IDE መስኮቶች እያንዳንዱ ምሳሌ አናት ላይ ሊታዩ ይችላሉ-

  • simpleRxTx0330Master
  • የተለመደ
  • ማስታወሻዎች

በዚህ የዊንዶውስ ኤክስፕሎረር የባሪያ ፕሮግራም ፋይሎች ውስጥ እንደሚመለከቱት እነዚህ በእውነቱ በፕሮግራሙ አቃፊ ውስጥ የተለዩ ፋይሎች ናቸው።

ይህንን ያደረግንበት በጣም ጥሩ ምክንያት አለ።

  • ፕሮግራሙን በምንገነባበት ጊዜ ለመምህሩ አብዛኛው መርሃ ግብር ከባሪያው ጋር ተመሳሳይ መሆኑን ተገነዘብን።
  • ሁሉንም የጋራ ክፍሎች ወደ ትር በመጎተት አብረን ጨረስን ፣ ስለሆነም “የጋራ” ብለን የጠራነው ፣ እና ከዚያ እኛ አንድ ክፍልን ባረምነው (ሞክረን ፣ እና እሺ ሠርተናል) እኛ ያንን ሙሉ ትር ገልብጠን እና ለጥፈናል። ከመምህር ወደ ባሪያ ማዶ ፣ ወይም ቪዛ በተቃራኒው።
  • ንድፉ አጠቃላይ ስለሆነ የማስታወሻዎች ትሮች እንዲሁ ተመሳሳይ ይሆናሉ።

የትኛውም ተግባራት ከማዋቀር የተጠሩ አይደሉም ፣ ሁሉም ከሉፕ የተጠሩ ናቸው ፣ ስለዚህ እኛ ከተዋቀረ በኋላ ግን ከሉፕ በፊት ፈጠርናቸው።

ደረጃ 6 - የላይ ታች ንድፍ።

ማድረግ ከሚፈልጉት ትርጓሜ ጀምሮ ንድፍዎን መንደፍ ጥሩ ሀሳብ ነው።

አንዴ ይህንን ካገኙ ንድፉ እነዚህን ነገሮች እንዲያደርግ ማድረግ መጀመር ይችላሉ። በአጠቃላይ እስካሁን እንዴት ማድረግ እንዳለብዎት የማያውቁት ዝርዝር ካለ ፣ ልክ ተግባር ያድርጉት እና እስከ በኋላ ድረስ ተግባሩን መፍጠር ይተው።

ይህ በብዙ ዩኒቨርስቲዎች ውስጥ ያስተማረውን ፣ CDIO ተብሎ የሚጠራውን ጥሩ የንድፍ ፍልስፍና ይከተላል (ይህንን አስቀድመው ካላወቁት ጉግል ማድረግ ይችላሉ ፣ እና እሱን ለማብራራት ጣቢያዎችን ያግኙ - https://www.cdio.org/s.) ይህ በመሠረቱ እንዲህ ይላል -ጽንሰ -ሐሳቡን ግልፅ ከማድረግዎ በፊት ንድፉን አይጀምሩ። የዲዛይን ግልፅ እስኪያገኙ ድረስ አፈፃፀሙን አይጀምሩ። የአተገባበሩን ግልፅ ከማድረግዎ በፊት እንዲሠራ አይጠብቁ። C በመጀመሪያ ፣ ከዚያ ዲ ፣ እኔ ፣ እና ኦ። በእያንዳንዱ ቀጣይ ደረጃ እርስዎ ይደጋገማሉ (ወደ ዙር (ቶች) ይመለሱ) ፣ ስለዚህ አንዴ በመነሻ ንድፍዎ ደስተኛ ከሆኑ እና አሁንም ጽንሰ -ሐሳቡን የሚያሟላ መሆኑን ያረጋግጡ እና ያዘምኑ ካስፈለገዎት ሲ. እና የመሳሰሉት ፣ ስለዚህ ወደ ኦፕሬቲንግ ሲደርሱም እንኳ ወደ ላይኛው መንገድ ይመለሱ ፣ እና እንደገና ሲ አሁን እንዴት እንደሚመስል ይመልከቱ ፣ ከዚያ ዲ እና እኔ ፣ እና ሁሉንም ያድርጉ እና ያረጋግጡ እንደአስፈላጊነቱ ይለወጣል። በፕሮግራም ሥዕላዊ መግለጫዎች ይህ ከላይ ወደ ታች ዲዛይን ካደረጉ ይህ ተመሳሳይ ነው የሚሰራው።

ደረጃ 7 ጽንሰ -ሀሳብ እና ዲዛይን - ክፍል 1

ጽንሰ -ሀሳብ እና ዲዛይን - ክፍል 1
ጽንሰ -ሀሳብ እና ዲዛይን - ክፍል 1
ጽንሰ -ሀሳብ እና ዲዛይን - ክፍል 1
ጽንሰ -ሀሳብ እና ዲዛይን - ክፍል 1

ጽንሰ -ሐሳቡ እዚህ በ ‹ማስታወሻዎች› ትር ውስጥ የተገለጹትን የውል መስፈርቶች ይመስላል።

ዲዛይኑ ከማስታወሻዎች ትር ጋር የሚዛመድ እና በዚህ ስእል ላይ እንደሚታየው አንድ ነገር ሊመስል የሚችል የቀደመውን የሉፕ ስሪት ሊመስል ይችላል።

በእውነቱ CTRL-C አስተያየቶቹን ወደ መዞሪያው ራስ በመገልበጥ እንዴት እንደጀመርኩ ይመልከቱ እና ከዚያ እነዚያን በሚያደርጋቸው ትዕዛዞች ባዶዎቹን መሙላት ይጀምሩ።

በስዕሉ ውስጥ በማያ ገጹ ታችኛው ክፍል ላይ እንደሚመለከቱት ይህ በእውነቱ እሺን ያጠናቅራል። ያ ከሲዲአይ ደረጃ D እስከ እኔ ድረስ ይደርሳል ፣ እና ኮዱን ስናዳብረው በዚህ የ D-I ዑደት ዙሪያ መሄዱን ለመቀጠል ጥሩ ሀሳብ ነው።

ወደ ቀጣዩ ደረጃ ለመውረድ ጊዜው አሁን ነው ፣ እኛ አንድ ነገር አለ - // አንድ ነገር ከሃርድዌር ዩኤስቢ እንቀበላለን ፣ ከዚያ ያንን በሶፍትዌር ተከታታይ ሰርጥ ላይ እናስተላልፋለን። ይህንን ለማድረግ ይህንን ኮድ እንጽፋለን - ከ 133 እስከ 138 ያሉት መስመሮች በቢጫ ማድመቂያ ውስጥ ይታያሉ

ደረጃ 8 ጽንሰ -ሀሳብ እና ዲዛይን - ክፍል 2

ጽንሰ -ሀሳብ እና ዲዛይን - ክፍል 2
ጽንሰ -ሀሳብ እና ዲዛይን - ክፍል 2
ጽንሰ -ሀሳብ እና ዲዛይን - ክፍል 2
ጽንሰ -ሀሳብ እና ዲዛይን - ክፍል 2

እዚህ የምናስተዋውቃቸው ሁለቱ የመጀመሪያዎቹ ሁለት ተግባራት (ሪቪቭ) እና ትራን () ከሃርድዌር ወደብ መቀበሉን እና ወደ ሶፍትዌሩ ወደብ ማስተላለፉን - ስለዚህ በሚታዩት “hw” ወይም “sw” መለኪያዎች ይጠሯቸው።

ከእነሱ በተጨማሪ ፣ አዲስ ዳታ በሚባል ዓለም አቀፍ ተለዋዋጭ ላይ ሙከራ አክለናል። ይህ በ “ባዶ ባዶ recv ();” ተግባር ውስጥ የምናስቀምጠው ባንዲራ ነው። መልእክት ሲደርሰው ይህ ተለዋዋጭ ከሐሰት ወደ እውነት ተጠቁሟል። ይህንን የምናደርገው አንድ ሰው መልእክት ከተቀበለ (ባንዲራ == እውነት) በመስመር 134 ላይ ብቻ ነው። እና አንዴ ‹ሥራ ተከናውኗል› የሚለውን መልእክታችንን ካስተላለፍን በኋላ ባንዲራውን በመስመር 137 ውስጥ እንደገና ወደ ሐሰት እናጸዳዋለን።

እንደገና (D እስከ I) ማጠናከሩን ማረጋገጥ እንችላለን ፣ እና በዚህ ጊዜ ‹ያልታወጀ› የስህተት መልእክት (የታየ) አለን። ይህ እኛ ሪቪውን () ን እንዳላወጅን ይነግረናል ፣ ተግባር። እኛ ይህንን በኋላ ላይ ለማድረግ አቅደናል ፣ ስለዚህ ልክ አሁን እንደሚታየው ንፁህ ማጠናከሪያ እንድናገኝ እኛን ዱሚ ወይም የቦታ ያዥ ተግባር መፍጠር አለብን።

እንደገና (D እስከ I) ማጠናከሩን ማረጋገጥ እንችላለን ፣ እና በዚህ ጊዜ ለትራኑ () ሌላ ‹ያልታወጀ› የስህተት መልእክት አለን። ተግባር። ይህ ተመሳሳይ ግንድ መፍጠር ይፈልጋል። እንደገና (D እስከ I) ማጠናቀርን ማረጋገጥ እንችላለን ፣ እና በዚህ ጊዜ ይህ በትክክል ይሠራል እናገኛለን። እስካሁን በጣም ጥሩ።

ደረጃ 9 ዋናውን ዙር ይጨርሱ ሀ) ከዩኤስቢ መቀበል ፣ ለ) ከባሪያ አርዱዲኖ መቀበል።

ዋናውን ዙር ይጨርሱ ሀ) ከዩኤስቢ መቀበል ፣ ለ) ከባሪያ አርዱዲኖ መቀበል።
ዋናውን ዙር ይጨርሱ ሀ) ከዩኤስቢ መቀበል ፣ ለ) ከባሪያ አርዱዲኖ መቀበል።
ዋናውን ዙር ይጨርሱ ሀ) ከዩኤስቢ መቀበል ፣ ለ) ከባሪያ አርዱዲኖ መቀበል።
ዋናውን ዙር ይጨርሱ ሀ) ከዩኤስቢ መቀበል ፣ ለ) ከባሪያ አርዱዲኖ መቀበል።

ይህንን ክፍል ለመጨረስ ያከልነው አንድ የመጨረሻ ቁራጭ አለ ይህም አንዳንድ የማረም ኮድ ማከል ነው።

እዚህ ያደረግነውን እና ለምን እንደሆነ ለመረዳት ሊጠቀስ የሚችል በማረም ረቂቅ ንድፎች ላይ ሌላ አስተማሪ አለ። አስተማሪውን ይመልከቱ “የአርዱዲኖ ንድፎችን እንዴት እንደሚሠሩ እና እንደሚሠሩ እስከሚሠሩ ድረስ”

ስለዚህ እነዚህ የማረሚያ መስመሮች [136-139 ታይቷል] በዋናው ዑደት ውስጥ ተጨምረዋል ፣ እና እነሆ ፣ የማረሚያውን ተለዋዋጭ እውነት ፣ እና ማጠናቀር (እኔ) በማድረግ ፣ በማስተር መጨረሻው ውስጥ መሞከር ይችላሉ ፣ ከዚያ እርስዎ አርዱinoኖን ያገናኙታል ፣ ይስቀሉ ፣ ተከታታይ ሞኒተርን ይክፈቱ እና ወደ ተከታታይ ሞኒተር ተመልሶ የሚመጣው እዚህ እንደሚታየው ይመልከቱ (የ ‹ደብል ሁነታ› መልእክት ታክሏል?)

ደረጃ 10 በባሪያ አርዱዲኖ ውስጥ መረጃን መቀበል እና ማስተናገድ

በባሪያው አርዱዲኖ ውስጥ መረጃን መቀበል እና ማስተናገድ
በባሪያው አርዱዲኖ ውስጥ መረጃን መቀበል እና ማስተናገድ
በባሪያው አርዱዲኖ ውስጥ መረጃን መቀበል እና ማስተናገድ
በባሪያው አርዱዲኖ ውስጥ መረጃን መቀበል እና ማስተናገድ

ከባሪያ አርዱዲኖ በመቀበል ላይ

ለሁለተኛው ሰርጥ አስፈላጊውን ኮድ ወደ ዋናው ዑደት ፣ የሶፍትዌሩ ተከታታይ መቀበያ እንደሚታየው - መስመሮችን 149 እስከ 155 ያክሉ።

ለመምህሩ ጉዳይ ከላይ በጻፍነው መሠረት አወቃቀሩ በቀላል ላይ የተመሠረተ መሆኑን ማየት ይችላሉ?

እንዲሁም የአቀናባሪ ስህተት ፣ ሌላ ያልተገለፀ ተግባር እንደምናገኝ ያያሉ - በዚህ ጊዜ parseData (); - ስለዚህ ከስህተት-ነፃ የሙከራ ማጠናከሪያ ከመሮጣችን በፊት ለዚህ እኛ እንዲሁ ግንድ ማድረግ አለብን።

በባሪያ አርዱዲኖ ውስጥ ያለውን መረጃ አያያዝ

እንደሚታየው እንደ ባሪያ መሣሪያ ከተዋቀረ ለ Arduino የሚያስፈልገውን ዋናውን የሉፕ ኮድ ያክሉ - መስመሮች 163 እስከ 174. የእሱ አወቃቀር ከመጀመሪያው ሰርጥ ጋር በጣም ተመሳሳይ መሆኑን ማየት ይችላሉ?

እና በዚህ ጊዜ ማግኘት በጣም ጥሩ ነው።

ደረጃ 11 የመቀበያ ተግባሩን ይፃፉ

የመቀበያ ተግባሩን ይፃፉ
የመቀበያ ተግባሩን ይፃፉ

የመቀበያ ተግባር - ባዶ ባዶ ሪቪ (ቻር ከ) {} - ሁለት ዋና ሥራዎች አሉት።

1 ከዩኤስቢ ሰርጥ የቁምፊዎች ሕብረቁምፊ ለመቀበል ፣ እና

2 ከአርዱዲኖ ወደ አርዱዲኖ ሰርጥ አንድ ለመቀበል።

ለመጀመሪያው እኛ መጠቀም ያስፈልገናል ምክንያቱም በአርዱዲኖ የተገነባውን በሃርድዌር UART ውስጥ ይጠቀማል ፣ እና ለሁለተኛው ደረጃውን Arduino Library: ሶፍትዌር UART ን ይጠቀማል።

ኮዱን ወደ ተግባር ማከል ስንጀምር - ከቁጥቋጦ ይልቅ አንድ ነገር የሚያደርግ ተግባር ለመፍጠር - የሚተካውን ግንድ ለማስወገድ ወይም አስተያየት ለመስጠት ማስታወስ አለብን። አለበለዚያ እኛ የማጠናቀር ስህተት እናገኛለን - ‹ባዶ ባዶ (ቻር)› ማጣራት።

ይሞክሩት እና ስህተቱን ያግኙ ፣ ከዚያ እሱን ለማስወገድ ከላይ ከተጠቆሙት መንገዶች ውስጥ አንዱን ይሞክሩ።

በቢጫ ከ 75 እስከ 88 ያሉት መስመሮች እዚህ የምናሳየውን በሚመስል ተግባር ይጀምሩ።

በአሁኑ ጊዜ ኮድ በመያዝ የማጠናቀር ሥራውን መሞከር እንደሚያስፈልግዎት ያውቃሉ። ቀደም ሲል እንደነበሩት ዓይነት ፣ የተግባር ስም በዚህ ወሰን ውስጥ ያልታወጀ ስህተት ያመጣልዎታል። ይህንን ስህተት ቀደም ብለን እንድናጠናቅቅ መጀመሪያ ሌላ ግንድ እንፈልጋለን ፣ ስለዚህ እንደበፊቱ አንድ አክል እና አሁን ያለ ስህተቶች ማጠናከሪያ ማግኘት እንደምትችል እርግጠኛ ሁን።

አሁን ለሪቪቭ () ተግባር የጻፍነውን ኮድ እንመልከት።

እሱ በጣም ንፁህ ነው ፣ ከላይ የተጠቀሱትን ሁለት ክፍሎች ለማምረት የ ‹if› ሁኔታ አጠቃቀምን ማየት ይችላሉ።

በ ‹sw› ክፍል እና በ ‹hw› ክፍል ውስጥ ያለው ኮድ አንድ ዓይነት ነው ፣ እና እዚህ እገልፀዋለሁ።

በእያንዳንዱ ጉዳይ ላይ ያሉት ጥንድ የመስመሮች የመጀመሪያው የትንሽ ዙር መጀመሪያ ነው። እርስዎ እያወቁ ካልሆኑ ለማብራሪያ እና ምሳሌዎች በ Arduino.cc/Reference ጣቢያ ውስጥ መፈለግ ይችላሉ። እዚህ ውስጥ ‹ያልተገነባው‹ ተከታታይ ›ተግባር ምንም ቁምፊ (ቶች) ስላልተቀበለ እና አዲሱ የውሂብ ተለዋዋጭ ስለጠፋ (ማለትም አዲሱ ውሂብ == የውሸት ሁኔታ እውነት ነው)። አንድ ገጸ -ባህሪ - ወይም ከአንድ በላይ ገጸ -ባህሪ እንደደረሰ ወዲያውኑ በዚህ ጥንድ ውስጥ ወደ ሁለተኛው መስመር “ይወርዳል”። ያ ከዚያ ወደ recAstringChar (ቻር) ይደውላል ፤ የአሁኑን ቁምፊ ለማስተናገድ ተግባር። አሁንም (ወይም እስከሆነ ድረስ) አሁንም መቀበል የሚሹ ማንኛቸውም ቁምፊዎች ባሉበት ጊዜ ይህ ጥንድ መስመሮች ይለዋወጣሉ። ሁሉም ከተጠናቀቁ በኋላ ግዛቱ ሲያበቃ ፣ ካልሆነ ወይም ሌላ ቀጣዩ ደረጃ እስከ መጨረሻው እንዲጨርስ ፣ እና በተራው ደግሞ ሪከርድን (ቻር) በመፍቀድ ፣ ለመጨረስ ተግባር። ስለዚህ ሙሉ መልእክት አሁን ንብ ደርሷል።

ደረጃ 12 የተቀባዩን ንዑስ ተግባር ይፃፉ - ክፍል 1

ተቀባዩን ንዑስ ተግባር ይፃፉ - ክፍል 1
ተቀባዩን ንዑስ ተግባር ይፃፉ - ክፍል 1
ተቀባዩን ንዑስ ተግባር ይፃፉ - ክፍል 1
ተቀባዩን ንዑስ ተግባር ይፃፉ - ክፍል 1

አሁን recAstringChar (char) የተባለውን ተግባር መፃፍ አለብን ፤. ከአስተያየቱ እስከ መስመር 50 እዚህ እዚህ አናት ላይ ፣ ሥራው በመጪው ተከታታይ መልእክት ቅጂዎች ሁለት ባፋሮችን ማዘመን መሆኑን ያያሉ። [ይህ ሁሉ እንዲሠራ እየሞከርኩ ሳለሁ አንድ የተማርኩት አንድ ነገር ሁለት የተለያዩ መጋዘኖችን እንደሚያስፈልገኝ ነው - ወይም ቢያንስ አንዳንድ ችግሮችን ለማለፍ ቀላሉ መንገድ ነው ፣ ስለሆነም ወደ 2 ባፋሮች ፍላጎት ተለውጧል ፣ ስለዚህ እኔ ብቻ አድርጌአቸዋለሁ።] አንዱን ቋት - የተቀበልን ዳታ ፣ ሌላውን ደግሞ የተቀበሉትን ቼኮች ጠርቼዋለሁ።

መጋዘኖቹ ዓለም አቀፍ ተለዋዋጮች ናቸው ፣ ስለሆነም እነሱ በሞጁል ደረጃ ይታወቃሉ ፣ የጋራ ትር 9 እና 10 ን ይመልከቱ። በዚህ ተግባር ውስጥ የተገለጹ ሌሎች ተለዋዋጮች አሉ ፣ ስለሆነም የአከባቢ ስፋት አላቸው- እዚህ በመስመር 51-54 ውስጥ ይታያል። ይህ በአለምአቀፍ እና በአከባቢው ነዋሪዎች መካከል ያለውን ልዩነት ለማብራራት ቦታው አይደለም ፣ ግን በዚህ ላይ በ https://www.arduino.cc/glossary/en/ በአከባቢ እና በአለም አቀፍ ስር ተጨማሪ መረጃ አለ።

እንዲሁም ስለ የውሂብ ዓይነቶች እና ዓይነት-አሻሻዮች ሁሉንም እዚህ ማወቅ ይችላሉ-የማይንቀሳቀስ ፣ ቡሊያን ፣ ባይት ፣ const ፣ ቻር በ https://www.arduino.cc/reference/en/#variables ፣ እዚህ በሚታየው።

በዚህ ተግባር ውስጥ ያለው ዋናው የፕሮግራም ፍሰት እዚህ በመስመር 56 ከሆነ ፣ እና ተጓዳኙ ሌላ በመስመር 74 ላይ ይቆጣጠራል። ይህ ሁለት ሁኔታዎችን ይመለከታል።

ሀ) [ከመስመር 74 ጀምሮ] የተቀበለው መልእክት ሲጀመር። ይህ የሚጀምረው ጀማሪው ምልክት በተደረገበት ጊዜ ነው - ይህ ‹‹›› ገጸ -ባህሪ ተደርጎ ተገል,ል ፣ ለዚህም ነው ንድፉን በምንሞክርበት ጊዜ ሁል ጊዜ በዚያ ገጸ -ባህሪ ሕብረቁምፊችንን የምንጀምረው። እኛ ካላደረግን ምንም ነገር እንደ ተቀበለው አይሰራም ፣ እኛ በ ‹Serial Monitor› የቁልፍ ሰሌዳ ጥያቄ ላይ የማይረባ ነገር እየፃፍን እንደሆነ ሁሉ ችላ ይባላል።

ለ) [ሌሎቹ ገጸ -ባህሪያትን ከ 56 እስከ 73] የሚይዙትን ሁሉ የሚቀበል ፣ ነገር ግን ትክክለኛ ገጸ -ባህሪ ከተከሰተ በኋላ ብቻ (ሀ '>' እንደ ሀ) ከተቀበለ በኋላ)።

በእነዚህ መስመሮች (ከ 74 እስከ 78) ያንን የተቀበለውን <ወደ አንዱ (ወደ የተቀበለው መረጃ [0]) ወደ ሌላኛው ውስጥ ግን አስገባነው። በመስመር ndx ++ ውስጥ የድህረ-ጭማሪ ትዕዛዙን (++) በመጠቀም ቀጣዩን የመጠባበቂያ ቋት አቀማመጥ (የተቀበለው ውሂብ [1]) ለማመላከት የመጠባበቂያ ጠቋሚውን (ተለዋዋጭ ቻር ndx) እናስተካክለዋለን።, እና በሂደት ላይ ያለውን ባንዲራ ወደ እውነት አደረግነው።

በዚህ የተግባር ክፍል ውስጥ ያለው የፕሮግራም ፍሰት እዚህ መስመር 57 ከሆነ ፣ እና ተጓዳኙ ሌላ መስመር 65 ላይ ይቆጣጠራል። ይህ ሁለት ሁኔታዎችን ይመለከታል።

ሀ) [ከመስመር 65 ጀምሮ] የተቀበለው መልእክት ሲያበቃ። ይህ የሚሆነው መጨረሻው ማርከር ሲታይ - እንደ> ይገለጻል ፣ ለዚህም ነው የእኛን ንድፍ በምንሞክርበት ጊዜ ሁል ጊዜ በዚያ ገጸ -ባህሪ ሕብረቁምፊችንን የምንጨርሰው። የመጨረሻው ገጸ-ባህሪ ሲቀበል ከሚከሰቱት ነገሮች አንዱ የእኛን ንዑስ-ተግባር (የጥሪ ተግባሩ recv (charv) የጠራው ተግባር ልክ ተግባሩ እንዳበቃ ዓለም አቀፉ ባንዲራ (በቴክኒካዊ ተለዋዋጭ) አዲስ መረጃ ልክ እንደ ተቀመጠ ነው። ፤) ትክክለኛ አዲስ መረጃ ሙሉ በሙሉ እንደደረሰ 'ማወቅ' ይችላል።

ለ) [ከ 57 እስከ 64 ያሉት መስመሮች] ሌሎች ሁሉንም ገጸ -ባህሪዎች የሚቀበሉት ፣ ምንም ይሁኑ ምን። እሱ በሁለቱም ሥራ አስኪያጆች ውስጥ በተከታታይ በጥሩ ሁኔታ ያቆማቸዋል።

ደረጃ 13 የተቀባዩን ንዑስ ተግባር ይፃፉ - ክፍል 2

ተቀባዩን ንዑስ ተግባር ይፃፉ - ክፍል 2
ተቀባዩን ንዑስ ተግባር ይፃፉ - ክፍል 2
ተቀባዩን ንዑስ ተግባር ይፃፉ - ክፍል 2
ተቀባዩን ንዑስ ተግባር ይፃፉ - ክፍል 2

በተጨናነቁበት ጊዜ ሁለቱ ባለአደራዎች ምን እንደሚመስሉ ምሳሌ ለመስጠት ሊረዳ ይችላል። ወደ ውስጥ ለመግባት ቁልፍ ከሆንን ፣ መያዣዎቹ በውስጣቸው የሚታዩ ቁምፊዎች ይኖራቸዋል-

ስለዚህ አሁን እኛ መጀመሪያ የተየብነው ልክ ተመሳሳይ ገጸ -ባህሪያት ያለው አንድ ቋት እና ሁለት እሴቶች እና መለያየት ኮማ ያለው አንድ ቋት እንዳለን ማየት ይችላሉ። አሁን በ Serial Monitor ቁልፍ ሰሌዳ ላይ የምንጽፋቸውን ገጸ-ባህሪያትን የሚቀበል አንዳንድ ኮድ አለን ፣ ከሲዲኢኦ ደረጃ 1 ወደ ኦ ፣ አንዳንድ ሕብረቁምፊዎችን በመተየብ እና ምን እንደሚሆን ማየት እንችላለን። ኮዱን ወደ ማስተሩ አርዱዲኖ ይስቀሉ ፣ ተከታታይ ሞኒተርን ይክፈቱ እና ልክ እንደ ያስገቡ ልክ የሆነ ነገር ለመተየብ ይሞክሩ። እዚህ እንደሚታየው በ Serial Monitor ማያ ገጽ ላይ ማሚቶ ይቀበላሉ?

ደረጃ 14 - ማስተላለፊያውን እና የተቃራኒ ተግባሮችን ይፃፉ

የማስተላለፊያውን እና የተቃራኒ ተግባሮችን ይፃፉ
የማስተላለፊያውን እና የተቃራኒ ተግባሮችን ይፃፉ
የማስተላለፊያውን እና የተቃራኒ ተግባሮችን ይፃፉ
የማስተላለፊያውን እና የተቃራኒ ተግባሮችን ይፃፉ

በመጀመሪያ ለዝውውር

ስለዚህ አሁን አንድ ሕብረቁምፊ ተቀብለናል ፣ የማሰራጫውን ተግባር መፃፍ እንችላለን- tran (char); ገለባውን ለመተካት። ይህ ከመምህሩ ወደ ባሪያው አርዱዲኖ ሕብረቁምፊ እንድንልክ ያስችለናል ፣

ስለዚህ ይህንን አዲስ ተግባር ለመፈተሽ ሁለቱም መሣሪያዎች መሰካታቸውን እና መገናኘታቸውን ያረጋግጡ።

እዚህ ከ 117 እስከ 133 ባለው መስመር እንደሚታየው ይህንን ተግባር ያስገቡ። እርስዎ እንደሚያውቁት ፣ ሁለት ክፍሎች አሉት ፣ አንደኛው ወደ ዩኤስቢ ሰርጥ (ሃርድዌር UART) እና አንዱ ለሌላው አርዱinoኖ (ሶፍትዌር UART) ለማስተላለፍ ይህ ስህተት ማጠናቀር አለበት። -ነፃ ፣ እና ወዲያውኑ ንድፉን መስቀል እና ምን እንደሚከሰት ማየት ይችላሉ። በዚህ ጊዜ እልካለሁ። ውጤቱን ታያለህ?

የተቀበለው ሕብረቁምፊ… እንደበፊቱ ትክክለኛ ሆኖ መታየት አለበት ፣ እና የተላለፈው ሕብረቁምፊ… አሁን ትክክል መስሎ መታየት አለበት ምክንያቱም የማያ ገጹ ቀረፃ አስደሳች ነው። ሆኖም የኢንቲጀር መለወጥ እንዳልሰራ ልብ ይበሉ። ያንን እንዲሠራ አሁንም ትንሽ ተጨማሪ ኮድ አለ።

ደረጃ 15 - ማስተላለፊያውን እና የተቃራኒ ተግባሮችን ይፃፉ

የማስተላለፊያውን እና የተቃራኒ ተግባሮችን ይፃፉ
የማስተላለፊያውን እና የተቃራኒ ተግባሮችን ይፃፉ
የማስተላለፊያውን እና የተቃራኒ ተግባሮችን ይፃፉ
የማስተላለፊያውን እና የተቃራኒ ተግባሮችን ይፃፉ

ከዚያ ለፓርስ

ይህ የቁጥር ከፊል ሕብረቁምፊዎችን ለማምጣት የተቀበለውን ሕብረቁምፊ የሚለየው እና ወደ ኢንቲጀር እሴቶች የሚቀይር የኮድ ቁራጭ ነው። እሱ ባዶ ነው parseData (); የዋናው ዑደት ተግባር

በመስመር 98 - 113 ውስጥ በሚታየው ኮድ የተተነተነውን ገለባ ይተኩ። ይስቀሉት ፣ እና በ 2 ኢንቲጀር እሴቶች ላይ የነበረን ችግር አሁን ተስተካክሎ እንደሆነ እንይ። እስቲ እንሞክር።

አዎ ፣ ይሠራል ፣ እንደሚታየው ፣ የተገኙት ኢንቲጀሮች 49 እና 98 ናቸው።

ደረጃ 16: መጨረሻ

መጨረሻ!
መጨረሻ!

ይህ መረጃ በፒሲው በኩል በመምህሩ በኩል በባሪያው በኩል እና በመምህሩ በኩል እንደገና ወደ ፒሲ ተመልሷል። ወደ ማስተር እና የባሪያ ጫፎች በሁለቱም በተሰቀለ የተጠናቀቀ ስሪት ፣ እና አሁን የማረም ሁነታን በማጥፋት ፣ እዚህ እንደሚታየው በሁለቱም ጫፎች ላይ በትክክል የተቀበለውን ውሂብ እናያለን።

የሚመከር: