ዝርዝር ሁኔታ:

ATtiny84/85 SPI በይነገጽ ፒን እንደገና መጠቀም 6 ደረጃዎች
ATtiny84/85 SPI በይነገጽ ፒን እንደገና መጠቀም 6 ደረጃዎች

ቪዲዮ: ATtiny84/85 SPI በይነገጽ ፒን እንደገና መጠቀም 6 ደረጃዎች

ቪዲዮ: ATtiny84/85 SPI በይነገጽ ፒን እንደገና መጠቀም 6 ደረጃዎች
ቪዲዮ: MKS Gen L — Марлин 1 1 9 (configuration.h) 2024, ሀምሌ
Anonim
ATtiny84/85 SPI በይነገጽ ፒን እንደገና መጠቀም
ATtiny84/85 SPI በይነገጽ ፒን እንደገና መጠቀም

ይህ አስተማሪ የ “ATtiny84/85 የወረዳ ማረም በተከታታይ ውፅዓት” ማጠናከሪያ ትምህርት ነው እና በመተግበሪያ ፕሮግራሙ የፕሮግራም አውርድ ፒኖችን እንደገና ጥቅም ላይ ለማዋል ያንን የሃርድዌር እና የሶፍትዌር ውቅር ያራዝማል። በአጠቃላይ ፣ በዚህ እና በክፍል 1 አስተማሪ መካከል ፣ የሚከተሉት ርዕሶች ተወያይተዋል/ታይተዋል።

ርዕስ አትቲኒ 84 አትቲኒ 85
የሶፍትዌር ክፍል ክፍሉን በመጠቀም ተከታታይ ግንኙነት ኤክስ ኤክስ
በመተግበሪያ እና በማውረድ መካከል የመሣሪያ ፒኖችን ማጋራት ኤክስ ኤክስ
የፒን ለውጥ ይቋረጣል ኤክስ
ውጫዊ ማቋረጥ ኤክስ
በ POWER_DOWN ሞድ ውስጥ ይተኛሉ ፤ በማቋረጥ ላይ ንቃ ኤክስ
ከሶፍትዌር ሰርቪስ ጋር ለተዛመደው “ማባዛት” ለተቋረጠው የቬክተር አገናኝ ስህተት ሥራ ኤክስ
በወረዳ ውስጥ ለአትቲኒ መሣሪያዎች ማሻሻያ ፣ ማውረድ ፣ ማረም ፣… የልማት ዑደት ኤክስ ኤክስ

ለ SPI የፕሮግራም በይነገጽ ከተሰጡት ፒኖች በአንዱ ላይ የሃርድዌር I/O ክፍልን ማከል አንዳንድ ጊዜ ደህና ነው ፣ አንዳንድ ጊዜ አይደለም። ለምሳሌ ፣ LED ን ወደ MISO ማከል ልክ በማውረድ ጊዜ LED እንዲንሸራተት ያደርገዋል እና ከዚያ ለትግበራው ይገኛል። ሆኖም ፣ የፒዞዞ ማጉያ ወደ MISO ማከል አስፈሪ አስደንጋጭ ድምጽን የውርድ አለመሳካት ያስከትላል።

ይህ አስተማሪ ለ SPI በይነገጽ MISO ፣ MOSI እና SCK ምልክቶች የተመደቡትን የፒን አጠቃቀም “ለማገገም” 4x2: 1 ባለብዙ -ተኮር እንዴት እንደሚጠቀም ያብራራል። የ RESET ፒን እንደገና መጠቀም የፊውዝ ለውጥን የሚፈልግ ሲሆን በዚህ አቀራረብ አይሸፈንም። የማውረድ ሂደት በሂደት ላይ በመመስረት በመተግበሪያው እና በፕሮግራም ግብዓቶች መካከል ለመቀያየር ባለብዙ -ተኮር (ሚስማር) በመጠቀም የፒኖቹ ድርብ ምደባ ይከናወናል። ኮድ እና መርሃግብሮች ለሁለቱም ለ ATtiny84 እና ለ ATtiny85 ተካትተዋል። የ ATiny84 ውቅረት በመጀመሪያ የተመለከተው ሁለት I/O ወደቦች ስላሉት እና አንዳንድ ተጨማሪ ችግሮችን/መፍትሄዎችን ለማሳየት ሊያገለግል ይችላል። ጥቃቅን 84 ውይይቱን ተከትሎ ፣ ተመሳሳይ ሁኔታዎች ለ ATtiny85 ተብራርተዋል።

ደረጃ 1: ተፈላጊ ሃርድዌር

ምስል
ምስል

አብዛኛው የሚፈለገው ሃርድዌር በትምህርቱ ክፍል 1 ተዘርዝሯል ስለዚህ አዲሱ ሃርድዌር ብቻ ከዚህ በታች ተዘርዝሯል።

ስም ሊገኝ የሚችል ምንጭ እንዴት ጥቅም ላይ እንደዋለ
4x2: 1 ባለ ብዙ ማሰራጫ ሙሰርስ አራት ባለ 2-ግብዓት ይ 1ል ፣ 1-ውፅዓት መቀያየሪያዎች የ SPI በይነገጽ ምልክቶች እና የትግበራ I/O የሚጋሩበት ዘዴ ነው።
የ SPST መቀየሪያ ማንኛውም የመቀየሪያ ዓይነት (ቅጽበታዊ ወይም የታሰረ) ይሠራል። ማብሪያ / ማጥፊያው ለመተግበሪያ ግብዓት የፒን ማጋራትን ለማሳየት ያገለግላል።
10 ኪ resistor ተንሳፋፊ ግቤትን ለማስቀረት ለ SPST ማብሪያ / ማጥፊያ ወደታች ይጎትቱ
ምስል
ምስል
ምስል
ምስል

ባለብዙ ማሰራጫው የፒን ማውረድ አጠቃቀምን ከመተግበሪያ አጠቃቀም ለመለየት ቁልፍ ነው። የ 4x2: 1 ባለብዙ ማሰራጫ አጠቃላይ ተግባር 2 የቁጥጥር ምልክቶችን እና 4 በተመሳሳይ ሁኔታ የሚሰሩ መቀያየሪያዎችን ያካተተ በትክክል ቀጥ ያለ ነው። የእያንዳንዱ ባለብዙ -ሚስማር ፒን ባህሪ ከዚህ በታች ተብራርቷል-

ፒን ስም ተግባር
15 በእውነቱ ሠንጠረዥ ውስጥ እንደተመለከተው ፣ ባለብዙ ማከፋፈያው የሚሠራው ጂ ማንቃት ፒን ዝቅተኛ ሲሆን ብቻ ነው። ባለብዙ ማከፋፈያውን ሙሉ በሙሉ ማሰናከል ስለማንፈልግ ፣ ፒን 15 በቀጥታ ከመሬት ጋር ይገናኛል።
2-4; 5-7; 9-11;12-14 ሀ (ግብዓት) ፣ ቢ (ግብዓት) ፣ ያ (ውፅዓት) አራት 2-ግብዓት አሉ; በቅደም ተከተል ሀ (ግብዓት) ፣ ቢ (ግብዓት) ፣ ያ (ውፅዓት) ለምሳሌ እያንዳንዱ በቁጥር 3 ፒኖች ቁጥር ያላቸው 1-ውፅዓት መቀያየሪያዎች። ለ መቀየሪያ 1; ፒን 2 = 1A; ፒን 3 = 1 ለ; ፒን 4 = 1Y.
1 ይምረጡ Select ዝቅተኛ በሚሆንበት ጊዜ የመቀየሪያ ግቤት ሀ ከተጓዳኙ የመቀየሪያ ውፅዓት ፒን ጋር ተገናኝቷል ፣ Y. መምረጥ ከፍተኛ በሚሆንበት ጊዜ የመቀየሪያ ግቤት ቢ በምትኩ ከውጤት ጋር ተገናኝቷል። መቀያየሪያዎቹ በተመረጠው ምልክት እና በተመሳሳይ ተግባር በአንድ ጊዜ ይቆጣጠራሉ።
8 ጂ.ኤን.ዲ ባለ multiplexer IC መሬት
16 ቪ.ሲ.ሲ ባለ multiplexer IC ኃይል

ደረጃ 2 - የሙከራ ጉዳዮች አጠቃላይ እይታ

ምስል
ምስል
ምስል
ምስል

ለፒን እንደገና ጥቅም ላይ የሚውሉት ሁለቱ ሁኔታዎች ፒን የመተግበሪያ ግብዓት ወይም ውፅዓት መሆን ላይ የተመሠረተ ነው። ማንኛውንም ግብዓት አያያዝ ሂደት ሁል ጊዜ አንድ ነው። እንዲሁም የሃርድዌር ክፍሉ ምንም ይሁን ምን ለትግበራ ውፅዓት አሠራሩ ተመሳሳይ ነው። እንደዚያም ሆኖ ፣ የተወሰኑ ምሳሌዎች ከተሰጡ ማብራሪያው ቀላል ነው ፣ እና ተስፋ እናደርጋለን። ለሁለቱም ጉዳዮች አነስተኛነት አቀማመጦች ከላይ ይታያሉ። ለዝርዝሩ ቅንጅቶች በኋላ በግንኙነቶች ላይ ትንሽ የሽምችት ጎጆ ይሆናሉ ስለዚህ ወደ እነዚህ የጽዳት ሥዕላዊ መግለጫዎች ማመልከት ጠቃሚ ሊሆን ይችላል።

ዳግመኛ በማውረድ ጊዜ ዝቅተኛ ስለሆነ ግን ማውረዱ ሲጠናቀቅ ወደ ኋላ ስለሚመለስ ለባለብዙ ቁጥር ይምረጡ ምልክት ፍጹም ምርጫ ነው። ሁሉም መቀያየሪያዎች አንድ ዓይነት ባህሪ ስላላቸው ማናቸውም ባለብዙ (multixer) መቀየሪያዎች ለማንኛውም ጉዳይ ሊያገለግሉ እንደሚችሉ ልብ ይበሉ። እንደዚሁም ፣ ሁለቱም ምሳሌዎች “ተጨባጭ” አይደሉም። የገለልተኝነት ቴክኒኮችን ለማሳየት በጣም ቀጥተኛ መንገድ ሆነው ተመርጠዋል

  1. የውጤት መያዣ -ከ ATtiny84 ፒን 4 (SCK) የ LED ውፅዓት ባለብዙ ማዞሪያ 2 በመጠቀም ተለይቷል

    • ባለብዙ -ሚስማር 2A ን ከመሬት ጋር ያገናኙ
    • ባለብዙ -ሚስማር 2B ን ከ ATtiny85 ፒን 4 ጋር ያገናኙ
    • ውፅዓት 2Y ን ከ LED anode ጋር ያገናኙ

      • የሚጠበቁ ውጤቶች

        • ከ 2A ፣ ከመሬት ጋር ከተገናኘ ጀምሮ በማውረድ ጊዜ LED ጠፍቷል
        • LED በ 2B በኩል ከወረደ በኋላ ከትግበራ ውፅዓት ፒን 4 ጋር ተያይዞ እና ብልጭ ድርግም ማለት ይጀምራል
  2. የግቤት መያዣ: የ SPST መቀየሪያ ግብዓት ወደ ATtiny84 pin 6 (MOSI) ባለ ብዙ ማዞሪያ 3 በመጠቀም ተገልሏል

    • ከኤቪአር ፕሮግራመር ራስጌ የ MOSI መሪ ሽቦ ወደ 3 ኤ ተንቀሳቅሷል
    • የመቀየሪያ ግብዓት 3B ከ SPST ውፅዓት ጋር ተገናኝቷል
    • ውፅዓት 3Y ከ ATtiny84 pin 6 ጋር ተገናኝቷል

      • 3A ፣ MOSI ፣ በማውረድ ጊዜ ከፒን 6 ጋር ተገናኝቷል
      • 3B ፣ የ SPST ውፅዓት ፣ ከወረደ በኋላ ከፒን 6 ጋር ተገናኝቷል

በፕሮግራሙ ቁጥጥር ስር እንደሚጠበቀው ማውረዱን ተከትሎ በየሁለት ሰከንዱ ብልጭ ድርግም የሚል ከሆነ በፕሮግራሙ ማውረድ ወቅት ኤልዲው ብልጭ ድርግም ካለ ጉዳዩ 1 ይሳካል። ሁኔታውን ወደ የሰዓት መረጃ መቀበል/ማስተላለፍን ከሚቀይረው ከ SCK ምልክት ጋር በቀጥታ የተገናኘ ስለሆነ LED ን በማግለል ጊዜ ያብረቀርቃል።

በማውረድ ጊዜ የ MOSI ምልክት ወደ ATtiny84 ከተላለፈ ኬዝ 2 ተሳክቷል ፣ ማለትም ማውረድ አይሳካም ፣ እና ማውረዱ ካልተሳካ እና ለ SPST ማብሪያ/ማጥፊያ ምላሽ ይሰጣል። ጉዳይ 2 አንድ የማይታሰብ የማውረድ ውድቀትን ይከላከላል። ያለ ማግለል ፣ የ SPST መቀየሪያ ውድቀትን ያስከትላል 1) የተቆለፈ መቀየሪያ ጥቅም ላይ ከዋለ እና 2) በማውረዱ ጊዜ ማብሪያው በቦታው ላይ ከተተወ። በባለብዙ አገልጋዩ ሲገለሉ ፣ ማብሪያው በማንኛውም ሁኔታ የውርድ ውድቀትን ሊያስከትል አይችልም። ትንሽ ዝርጋታ ግን ለእኛ አረጋውያን ያጽናናል።

ባለብዙ ማዞሪያን መጠቀም አንድ መዘዝ የሃርድዌር ክፍሉ ከአሁን በኋላ በቀጥታ ከማይክሮ መቆጣጠሪያ I/O ፒን ጋር መገናኘት አለመቻሉ ነው። ይህ በመጠኑ የማይመች ቢሆንም ከሌላው የመተግበሪያ ሃርድዌር ጋር በፈተና ወቅት ክፍሉ በዳቦ ሰሌዳው ላይ እንዲቆይ ያስችለዋል ፣ እና ሙከራው ሲጠናቀቅ ወደ ትክክለኛው ቦታ ሊመለስ ይችላል።

ደረጃ 3: ATtiny84 መያዣ 1 - የትግበራ ውፅዓት ለይቶ

ምስል
ምስል

ይህ ደረጃ የመተግበሪያ ውፅዓት ፒን ከማውረጃ ምልክት ጋር ለማጋራት ማዋቀሩን ይገልጻል። ጥቅም ላይ የዋለው ምሳሌ ከፒን 4 (SCK) ጋር የተያያዘው LED ነው። ነባሩን ኤልዲኤን እንደ ምሳሌ መጠቀም ባለብዙ ማከፋፈያውን ወደ ክፍል 1 ሃርድዌር እና ሶፍትዌር አከባቢ ለመጨመር አፅንዖት ይሰጣል።

  • ሃርድዌር

    • ከዚህ በላይ ባለው የፍሪግራፍ ሥዕላዊ መግለጫ ላይ በሚታየው አንጻራዊ ቦታ ላይ ባለ ብዙ ማከፋፈያውን ወደ የዳቦ ሰሌዳው ያክሉ። በቁጥር 2 ውስጥ ለሚፈለገው የ SPST መቀየሪያ ቦታ ለመፍቀድ ባለብዙ ማከፋፈያው ወደ ማእከሉ አቅጣጫ ተቀምጧል።
    • ከ ATtiny84 pin 11 ወደ ባለብዙ -ፒን 1 የእርሳስ ሽቦ (ቢጫ ይጠቁሙ) በማከል የ RESET ምልክትን ወደ ባለብዙ erሲው ያራዝሙ።
    • ቀሪው የሃርድዌር ቅንብር በደረጃ 2 እንደተሰጠው ነው

      • ባለብዙ -ሚስማር 2A ን በቀጥታ ከመሬት ጋር ያገናኙ
      • 2B ን ከ ATtiny84 pin 4 ጋር ያገናኙ
      • ውፅዓት 2Y ን ከ LED anode ጋር ያገናኙ

        • የሚጠበቁ ውጤቶች

          • በማውረድ ጊዜ 2Y ከመሬት (2 ሀ) ጋር ተገናኝቷል ፣ ስለዚህ ኤልኢዲ ጠፍቷል
          • 2Y ን ካወረዱ በኋላ ከ ATtiny84 pin 4 - የመተግበሪያ LED ቁጥጥር ጋር ተገናኝቷል
  • ሶፍትዌር

    • ክፍል 1 ኮድ እንደገና ጥቅም ላይ ውሏል። እዚህ ከማባዛት ይልቅ ከሚያስተምር ክፍል 1 ይገኛል
    • በአርዱዲኖ አይዲኢ ውስጥ የክፍል 1 ፕሮግራምን ይጫኑ እና ያጠናቅሩ
    • ትንሹ AVR ፕሮግራመርን ወደ ፒሲ ዩኤስቢ ወደብ ይሰኩ
    • Adafruit USB ን ወደ ተከታታይ ገመድ ወደ ሁለተኛው የዩኤስቢ ወደብ ያስገቡ

      • የ COM ወደብ ተፈጥሯል እና በ IDE ወደብ ዝርዝር ውስጥ በራስ -ሰር እንዲገኝ ተደርጓል
      • የ COM መስኮቱን ያስጀምሩ
    • የተጠናቀረውን ኮድ ወደ ATtiny84 ያውርዱ

ብቸኛው ለውጥ ኤልዲውን ወደ “የተጠበቀ” ቦታ ማዛወር ስለነበረ የመተግበሪያው ፕሮግራም ውጤቶች ከክፍል 1 ጋር ተመሳሳይ ናቸው - ኤል ዲ በ 2 ሰከንዶች ብልጭ ድርግም ይላል። ተከታታይ ውፅዓት ተመሳሳይ ነው። ሊፈጠር የሚገባው አንድ ልዩነት ፣ በማውረድ ጊዜ ኤልኢዲ ከእንግዲህ አይንሸራተትም ፣ ምክንያቱም በዚያን ጊዜ ፣ በባለብዙ ፒን 2 ሀ በኩል ከመሬት ጋር የተገናኘ ነው።

ምስል
ምስል

ደረጃ 4: ATtiny84 መያዣ 2 - የመተግበሪያ ግብዓት ለይ

ምስል
ምስል

ይህ ደረጃ ለቀድሞው የውጤት ማግለል ጉዳይ በማዋቀር ላይ ይገነባል። የሃርድዌር ለውጦች የ “SPST” መቀየሪያን ወደ “ATtiny84 pin 6” (MOSI) በማባዛት (multixer) በኩል ማያያዝን ያካትታሉ። ስለዚህ የሃርድዌር ለውጦች አነስተኛ ናቸው ነገር ግን የፒኤስ ለውጥ ማቋረጫ በመጠቀም የ SPST ማብሪያ / ማጥፊያ / LED ን ለመቆጣጠር እንዲችል በርካታ የሶፍትዌር ለውጦች አሉ። የዘመነው ኮድ በዚህ ክፍል ግርጌ ላይ ተካትቷል። ኮዱ ወደ አርዱዲኖ አይዲኢ መቅዳት አለበት ፣ በ Multiplexer_Input ስም ስር እንዲያስቀምጡት ይጠቁሙ። (ለዚህ ክፍል ርዝመት ይቅርታ እጠይቃለሁ ፣ ግን የአስተማሪው ዓላማ ልብ ነው እና ሰው ሰራሽ ዕረፍቶችን ከማስገባት ይልቅ እንደ ሞኖሊቲ በተሻለ ይነበባል ብለው ያስባሉ።)

አዘምን አካባቢ ዓላማ
"ተጠልፎ" የሶፍትዌር ክፍል ክፍልን ያካትቱ ክፍልን ያካትቱ LED አሁን በፒን ለውጥ ማቋረጫ በኩል በ SPST መቀየሪያ ቁጥጥር ይደረግበታል። አለበለዚያ የፒን ለውጥ ማቋረጫ ቬክተሮችን ሁሉ ስለሚመድብ የሶፍትዌርSerial ክፍል መለወጥ አለበት። ይህ ለ SPST ማብሪያ ለተመደበው (ወደብ 0) ቬክተር “ባለብዙ ፍቺ” የአገናኝ ስህተት ያስከትላል። ተጠልፎ የ SoftwareSerial ስሪት በዚህ መተግበሪያ ላይ ብቻ ተጽዕኖ እንዲያሳድር ከፕሮግራሙ ጋር በተመሳሳይ ማውጫ ውስጥ መቀመጥ አለበት።
የ SPST የግቤት ፒን ፍቺ አካት/ትርጓሜ ክፍል የ SPST ግቤት ወደ መሣሪያ ፒን መመደብ። ፒን መሣሪያ የተወሰነ ስለሆነ ወደ #ifdef ATtiny8x ክፍል (ሎች) ታክሏል።
የ SPST የግቤት ፒን ሞድ የማዋቀር ተግባር የ SPST ፒን እንደ ግቤት ተዋቅሯል
የ SPST ፒን መቋረጥን ያዋቅሩ የማዋቀር ተግባር የመቀየሪያ ሁኔታ ለውጥ መስተጓጎል እንዲፈጠር የማቋረጫው ቬክተር ለ SPST የግብዓት ፒን ተመድቧል። የውቅረት መመዝገቢያዎቹ እና የማቋረጫ አይነት በመሣሪያው ላይ የተወሰኑ ናቸው። ኮዱን በተቻለ መጠን ቀጥተኛ ለማድረግ ፣ ልዩነቶች በ #if በተገለጸ ክፍል ውስጥ ይስተናገዳሉ
የተሟላ ተከታታይ መልእክት ያዋቅሩ የማዋቀር ተግባር የብዙ ቅንብር ግቤትን ትግበራ ለማንፀባረቅ የማዋቀር የተሟላ ተከታታይ የውጤት መልእክት ተቀይሯል
የ SPST ማብሪያ ISR ተግባር ያክሉ የኮድ ክፍል ለ SPST ፒን ለውጥ መቋረጥ ISR ታክሏል። ኮዱ የተለመደ ነው ፣ ነገር ግን ጥቅም ላይ የዋለው ቬክተር በመሣሪያው የተወሰነ እና በፕሮግራሙ አናት ላይ ባለው የመሣሪያ ጥገኛ ክፍሎች ውስጥ ይገለጻል። ISR ገቢር መሆኑን ለማረጋገጥ የ LED ሁኔታ ተቀይሯል። በእውነተኛ ትግበራ ውስጥ የለም-የለም ፣ አዲሱን የ LED ሁኔታ የሚያንፀባርቅ ተከታታይ የውጤት መልእክት ይፈጠራል።
የሉፕ ማቀነባበሪያን ያስተካክሉ የሉፕ ተግባር ተግባራዊነት ከሉፕ አሠራሩ እንዲወገድ ISR አሁን LED ን ማብራት እና ማጥፋት ይቆጣጠራል። ለ ATtiny84 የእንቅልፍ አሠራር ጥሪ እንደ “ተጨማሪ” ዓይነት ተጨምሯል። ለዚህ ትግበራ ፣ ATtiny85 እንቅልፍ አይሰራም ፤ ምናልባት ከሶፍትዌርSerial ተወግዶ ስለሚሠራ በሶፍትዌር ተከታታይ ክፍል ጣልቃ ገብነት ምክንያት ሊሆን ይችላል።
የእንቅልፍ ልምድን ይጨምሩ የኮድ ክፍል የብዜት አገልጋዩን አጠቃቀም ለማሳየት የእንቅልፍ ተግባር አስፈላጊ አይደለም። ልክ ታክሏል ምክንያቱም ግብዓት እስኪከሰት ድረስ ምንም ሳያደርግ በፕሮግራሙ ዑደት ውስጥ መሮጡን ከመቀጠል ይልቅ ኃይልን ለመቆጠብ በ POWER_DOWN ሞድ ውስጥ ግቤትን መጠበቅ ይፈልጋል።

የሶፍትዌር ክፍል ክፍል ኮድ ይቀይሩ

ሁሉንም የፒን ለውጥ ማቋረጫ ወደቦችን እንዳያሰናክል የሶፍትዌርSerial ክፍል መለወጥ አለበት። የ SoftwareSerial ክፍል ኮድ የሚገኘው በ

C: / የፕሮግራም ፋይሎች (x86) Arduino / hardware / arduino / avr / libraries / SoftwareSerial / src

የኮድ ለውጦቹን መነሻ ቦታ ለማግኘት በ PCINT0_vect በ SoftwareSerial.cpp ላይ አንድ ግኝት ያድርጉ። አሁን ካለው #if (PCINT0_vect) መግለጫ በፊት ወዲያውኑ የሚከተለውን ኮድ ያክሉ።

#ከተገለጸ (_ AVR_ATtiny84_)

#መግለፅ MYPORT PCINT1_vect #elif የተገለጸ (_ AVR_ATtiny85_) #መግለፅ MYPORT PCINT0_vect #endif ISR (MYPORT) {SoftwareSerial:: handle_interrupt (); }

ከዚህ በታች እንደተገለፀው የወደብ ማቋረጫ ቬክተሮችን የሚመድብበትን ነባር የኮድ ብሎግ አስተያየት ይስጡ (ልክ መጀመሪያ እና መጨረሻ የማገጃ አስተያየት ምልክቶችን / * እና * /ያክሉ)

/*

#ከተገለጸ (PCINT0_vect) ISR (PCINT0_vect) {SoftwareSerial:: handle_interrupt (); } #endif #ከተገለጸ (PCINT1_vect) ISR (PCINT1_vect) {// SoftwareSerial:: handle_interrupt (); ISR (PCINT1_vect ፣ ISR_ALIASOF (PCINT0_vect)); } #endif #ከተገለጸ (PCINT2_vect) ISR (PCINT2_vect ፣ ISR_ALIASOF (PCINT0_vect)); #endif #ከተገለጸ (PCINT3_vect) ISR (PCINT3_vect ፣ ISR_ALIASOF (PCINT0_vect)); #ኤንዲፍ */

ሃርድዌርን ያዋቅሩ

የ SPST ማብሪያ / ማጥፊያ በ 2 ኛ ደረጃ ላይ እንደተገለጸው ከ ATtiny84 pin 6 (MOSI) ጋር ተያይ isል አሠራሩ ለምቾት እዚህ የተባዛ ነው።

  • የመቀየሪያ ግብዓት 3A ን ከትንሽ AVR Programmer ራስጌ MOSI መሪ ጋር ያገናኙ
  • 3B ን ከ SPST ማብሪያ / ማጥፊያ / መውጫ ፒን ላይ ያገናኙ
  • 3Y ን ከ ATtiny84 pin 6 ጋር ያገናኙ

    • ውጤቶች ፦

      • 3A ፣ MOSI ፣ በሚወርድበት ጊዜ ወደ ATtiny84 pin 6 ይተላለፋል
      • 3B ፣ የ SPST ውፅዓት ፣ ከተወረደ በኋላ በፒን 6 ላይ ይቀመጣል

ፕሮግራሙን ያሂዱ

ከመሮጥዎ በፊት የ SPST ማብሪያ / ማጥፊያውን በማጠፊያው ቦታ ላይ ያድርጉት። አለበለዚያ ማብሪያው ሲጠፋ እና በተቃራኒው ሲበራ ኤልኢዲ ያበራል። Arduino IDE ን በመጠቀም የመተግበሪያ ግብዓት ፕሮግራሙን ለመጫን ፣ ለማጠናቀር እና ለማውረድ ለደረጃ 3 ሂደቱን ይከተሉ። እንደበፊቱ ፣ በማውረዱ ጊዜ ኤልዲው መብረቅ የለበትም ስለዚህ ፕሮግራሙ መነሳቱን እና መሥራቱን የሚያመለክተው ብቸኛው አመላካች በማዋቀሪያው የዕለት ተዕለት መጨረሻ ላይ ተከታታይ መልእክት ይሆናል - SETUP ተጠናቋል - የግቤት ምሳሌ

በዚህ ጊዜ ፕሮግራሙ ከ SPST መቀየሪያ ግብዓት እየጠበቀ ነው። ማብሪያ / ማጥፊያውን በ ON ቦታ ላይ ማድረጉ ኤልኢዲ እንዲበራ ያደርገዋል። ወደ ጠፍቶ ቦታ መመለስ LED ን ያጠፋል። የውጤት መልዕክቶች ISR መጠራቱን ያረጋግጣሉ (ISR: Led HIGH ፣ ISR: LED LOW)። የተከታታይ መልእክቶች ቅደም ተከተል ያስተውሉ በመጀመሪያ ወደ ማብሪያ ሁኔታ ለውጥ በመጠባበቅ ላይ ለመተኛት ይሂዱ። የመቀየሪያ ግብዓት ሲያገኙ ISR ተጠርቷል ፣ LED ን ይቀይራል ፣ እና ለውጡን ይመዘግባል ፤ ከዚያ መቋረጡ አንጎለ ኮምፒውተሩን ከእንቅልፉ ስለሚያነቃው የእንቅልፍ ጥሪውን ተከትሎ ሂደት ይጀምራል።

ምስል
ምስል

ለዚህ መመሪያ ፕሮግራም:

//************************************************************************

// ክፍል 2 - የመተግበሪያ/አውርድ መሣሪያ ፒን መጋራት //። ለ SPI የፕሮግራም በይነገጽ // የተመደቡትን የፒን ትግበራዎች እንደገና ጥቅም ላይ ለማዋል የክፍል 1 ኮዱን ይለውጣል። የ “ኮሞን” ኮድ ለ ATtiny85 እና ATtiny84 // **************************************** ***** የማቀናበሪያው ኮድ የተለመደ ነው ፣ ጥቅም ላይ የዋሉት ፒኖች መሣሪያ ተኮር ናቸው #ከተገለጸ (_ AVR_ATtiny84_) || የተገለጸ (_ AVR_ATtiny84A_) #የተገለጸው ledPin 4 // ተገናኝቷል/አብራ/አብራ/አብራ/አጥፋ #ዲፊን rxPin 9 // ለተከታታይ ጥቅም ላይ የዋለው ፒን ተቀባይን ተቀበለ #define txPin 10 // ፒን ለተከታታይ ማስተላለፊያ ጥቅም ላይ ውሏል #ዴፊን SpstPin 6 // ከ SPST መቀየሪያ ግቤት (MOSI) #የ ISR_VECT PCINT0_vect // SPST ማብሪያ / ማጥፊያ የፒን ለውጥ ማቋረጫ ቬክተር #ኤሊፍ (_ AVR_ATtiny85_) // የ SPST ማብሪያ/ ማጥፊያ የፒን ለውጥ ማቋረጫ ቬክተር #else #ስህተት ብቻ ATiny84 እና ATtiny85 በዚህ ፕሮጀክት የሚደገፉ ናቸው #endif // የሶፍትዌር ተከታታይ ማይስሪያል (rxPin) ለመቀበል እና ለማስተላለፍ የትኛውን መሣሪያ // ፒኖች እንደሚጠቀሙ የሚገልጽ የሶፍትዌር ተከታታይ ክፍል ምሳሌ ይፍጠሩ። ፣ txPin); // ------------------------------------------------ ------------------------ // የሂደት ሀብቶችን ያስጀምሩ // ------------------- -------------------------------------------------- --- ባዶነት ማዋቀር () {mySerial.begin (9600); // ተከታታይ የሂደት መዘግየት ይጀምሩ (2000); // ጅምርን ለማጠናቀቅ ለ Ser Com Com ወደብ ጊዜ ይስጡ። // አለበለዚያ ፣ 1 ኛ ውጤት ምናልባት የጠፋ ወይም የተጨናነቀ ፒን ሞዶ (ledPin ፣ OUTPUT) ፤ // ለ OUTPUT pinMode (SpstPin ፣ ማስገቢያ) የመሪ ፒን ያዋቅሩ ፤ // የ SPST መቀየሪያ ፒን እንደ ግብዓት ያዋቅሩ #ከተገለጸ (_ AVR_ATtiny84_) || (_AVR_ATtiny84A_) // በፒን 6 (MOSI) GIMSK | = (1 <

ደረጃ 5: ATtiny85 ጉዳይ 1 - የትግበራ ውፅዓት ለይቶ

ምስል
ምስል

ለ ATtiny85 የተባዛ የሃርድዌር ቅንብርን ከመገንባት ይልቅ ፣ ለኤቲንቲን44 በተጠናቀቀው ውቅር ከ 4 ኛ ደረጃ መጀመር እና ጥቃቅን84 ቺፕውን በትናንሽ 85 መተካት ቀላል ሊሆን ይችላል። ሁሉም አስፈላጊ ሃርድዌር ከዚያ አስቀድሞ ይገኛል። ይህንን አቀራረብ የሚጠቀሙ ከሆነ ፒን 3 እና 4 በተከታታይ ገመድ tx እንዲሰለፉ እና ሽቦዎችን እንዲቀበሉ ጥቃቅን 85 ን ይፈልጉ። ከዚያ ለኤቲንቲን 85 አስፈላጊ ቦታዎቻቸውን ለማዛመድ የ SPI በይነገጽ መሪ ሽቦዎችን ማዛወር ብቻ ነው።

ከባዶ የሚጀምሩ ከሆነ ፣ ከደረጃ 3 አጠቃላይ እርምጃዎችን እና ከላይ ያለውን የፍሪግራም ንድፍ ብቻ ይከተሉ። ኮዱ በደረጃ 3 ላይ ለ ATtiny84 ከተጠቀመው ተመሳሳይ ውጤት ጋር ተመሳሳይ ነው - በሚወርድበት ጊዜ ብልጭ ድርግም አይልም ፤ የ LED ን በ 2 ሰከንዶች መካከል ብልጭ ድርግም ሲያደርግ እና ተከታታይ የውጤት መልዕክቶች የ LED ሁኔታን ይከተላሉ።

ምስል
ምስል

ደረጃ 6: ATtiny85 መያዣ 2 - የትግበራ ግብዓት ለይ

ምስል
ምስል

ለሃርድዌር ማዋቀር ፣ ከደረጃ 5 ውቅረት ይጀምሩ እና ከላይ ባለው የፍሪግራም ሥዕሉ ላይ እንደተመለከተው የ SPST ማብሪያ / ማጥፊያውን ያክሉ። እኔ ለትንሽ 85 ሥሪት ቅጽበታዊ መቀየሪያን እጠቀም ነበር እና ማረጋገጡን ትንሽ ቀላል ያደርገዋል። የመቀየሪያ ውፅዓት ከ ATtiny84 ውቅረት በ 180 ዲግሪ መዞሩን ልብ ይበሉ። ሁሉም 3 የ SPI ምልክቶች ለ ATtiny85 በአንድ በኩል ስለሆኑ ይህ ለውጥ የማያያዣ ሽቦዎችን መጓዝ ቀላል ያደርገዋል።

ለ ATtiny84 ደረጃ ተመሳሳይ ፕሮግራም ይጠቀሙ 4. ተመሳሳይ አጠቃላይ ውጤቶች ይጠበቃሉ - የ SPST ማብሪያ/ማጥፊያ ሲበራ/ሲጠፋ እና ተከታታይ የውጤት መልዕክቶች ለውጦቹን በሰነዱ ጊዜ የ LED ለውጦች ሁኔታ። የእንቅልፍ ተግባር ለ ATtiny85 ስላልተጠየቀ የ GO TO SLEEP መልዕክቶች ጠፍተዋል። ምንም እንኳን ተመሳሳዩ መርሃ ግብር ጥቅም ላይ ቢውልም ፣ ATtiny85 አንድ የወደብ መመዝገቢያ (ወደብ 0) ብቻ ስላለው በአተገባበሩ ውስጥ ጉልህ ልዩነቶች አሉ።

  1. SoftwareSerial አሁን ለተከታታይ ግንኙነት የወደብ 0 ፒን ለውጥ መቋረጥን ይመድባል (ወደብ 1 ን ለ ATtiny84 መጠቀም እንደቻልን ያስታውሱ።)
  2. አንድ እና ብቸኛው የፒን ለውጥ ማቋረጫ በሶፍትዌር ሰርቪስ የተመደበ በመሆኑ የ SPST ማብሪያ መቋረጫው በውጫዊ መቋረጥ 0 (INT0) መተግበር አለበት። ይህ የፒን ለውጥ የሚያቋርጥ እና የውጭ መቋረጦች ከአመክንዮ ነፃ የሆኑ እና በተመሳሳይ የወደብ መዝገብ ውስጥ ጥቅም ላይ ሊውሉ የሚችሉበትን ነጥብ ያሳያል።
  3. የተሻሻለ የሶፍትዌር ስሪትን ስሪት በመጠቀም ምንም አይገኝም - አንድ ወደብ ብቻ አለ እና የሶፍትዌር ክፍሉ ክፍል ይይዛል። ሆኖም ፣ የተቀየረው ክፍል ከዚህ እርምጃ ግብ ጋር በቀጥታ ያልተዛመደ ለውጥን ለማስወገድ ብቻ ጥቅም ላይ ውሏል።

የሚመከር: