ዝርዝር ሁኔታ:

AVR ሰብሳቢ መማሪያ 9: 7 ደረጃዎች
AVR ሰብሳቢ መማሪያ 9: 7 ደረጃዎች

ቪዲዮ: AVR ሰብሳቢ መማሪያ 9: 7 ደረጃዎች

ቪዲዮ: AVR ሰብሳቢ መማሪያ 9: 7 ደረጃዎች
ቪዲዮ: ትንታኔ እና ትርፋማነት፣ Mewtwo Elite Trainer Boxን መክፈት፣ EB10.5 Pokemon Go 2024, ሀምሌ
Anonim
AVR ሰብሳቢ መማሪያ 9
AVR ሰብሳቢ መማሪያ 9

ወደ መማሪያ 9 እንኳን በደህና መጡ።

ዛሬ የእኛን ATmega328P እና AVR የመሰብሰቢያ ቋንቋ ኮድ በመጠቀም ሁለቱንም ባለ 7 ክፍል ማሳያ እና ባለ 4 አሃዝ ማሳያ እንዴት እንደሚቆጣጠሩ እናሳያለን። ይህንን በሚያደርጉበት ጊዜ እኛ ማሰር ያለብንን የመመዝገቢያዎች ብዛት ለመቀነስ ቁልልን እንዴት መጠቀም እንደሚቻል ወደ ውስጥ ማዞር አለብን። በእኛ ቁልፍ ሰሌዳ ላይ ያለውን ጫጫታ ለመቀነስ ለመሞከር ሁለት አቅም (ዝቅተኛ ማለፊያ ማጣሪያዎች) እንጨምራለን። በቁልፍ ሰሌዳው ታችኛው ረድፍ ላይ የእኛ የ INT0 ማቋረጫ መቀየሪያ ለዝቅተኛ የቮልቴጅ አዝራሮች በተሻለ ሁኔታ እንዲሠራ ከሁለት ትራንዚስተሮች ውስጥ የቮልቴጅ ማጉያ እንፈጥራለን። እናም ነገሩ በትክክል እንዲሠራ ትክክለኛውን ተቃዋሚዎችን ለማግኘት በመሞከር ጭንቅላታችንን በግድግዳው ላይ ትንሽ እናወጋለን።

ከመማሪያ ትምህርት 7 የእኛን ቁልፍ ሰሌዳ እንጠቀማለን

ይህንን መማሪያ ለመሥራት ፣ ከመደበኛ ዕቃዎች በተጨማሪ ፣ ያስፈልግዎታል

  1. ባለ 7 ክፍል ማሳያ

    www.sparkfun.com/products/8546

  2. ባለ 4 አሃዝ ማሳያ

    www.sparkfun.com/products/11407

  3. የግፊት ቁልፍ

    www.sparkfun.com/products/97

  4. ከላይ ከተያያዙት ገጾቻቸው ሊወርዱ የሚችሉ የማሳያ የውሂብ ሉሆች።
  5. 68 ፒኤፍ ሴራሚክ capacitor ፣ አንድ ሁለት 104 capacitors ፣ የተቃዋሚዎች ስብስብ ፣ ሁለት 2N3904 NPN ትራንዚስተሮች።

ወደ የእኔ አጠቃላይ የ AVR አስተባባሪ ትምህርቶች ስብስብ አገናኝ እዚህ አለ

ደረጃ 1 የ 7 ሰከን ማሳያውን ሽቦ ማገናኘት

ባለ 7-ሴግ ማሳያውን ሽቦ
ባለ 7-ሴግ ማሳያውን ሽቦ
ባለ 7-ሴግ ማሳያውን ሽቦ
ባለ 7-ሴግ ማሳያውን ሽቦ
ባለ 7-ሴግ ማሳያውን ሽቦ
ባለ 7-ሴግ ማሳያውን ሽቦ

ባለ 7 ክፍል ማሳያውን ለመቆጣጠር በቁልፍ ሰሌዳው ላይ በመማሪያ 7 ውስጥ የተጠቀምነውን ተመሳሳይ ኮድ እንጠቀማለን። ስለዚህ ያንን ቅጂ ማዘጋጀት ያስፈልግዎታል እና እኛ እናስተካክለዋለን።

እኛ ክፍሎቻችንን ወደ ማይክሮ መቆጣጠሪያችን ካስማዎች እንደሚከተለው እናቀርባለን-

(dp ፣ g ፣ f ፣ e ፣ d ፣ c ፣ b ፣ a) = (PD7 ፣ PD6 ፣ PB5 ፣ PB4 ፣ PB3 ፣ PB2 ፣ PB1 ፣ PB0)

የክፍሎቹ ፊደላት በስዕሉ ላይ ከተለመዱት 5V እና እያንዳንዱ የ LED ክፍሎች በማሳያው ታችኛው ቀኝ በኩል የአስርዮሽ ነጥቦችን (ዲፒ) ጨምሮ በስዕሉ ላይ ይታያሉ። ይህ የሆነበት ምክንያት ክፍሎቹን ለማብራት ወደብ ለ እና ዲ ወደሚመዘገብ ወደ አንድ ምዝገባ እና ውፅዓት ሙሉውን ቁጥር ማስገባት እንድንችል ነው። እንደሚመለከቱት ቢቶች በቅደም ተከተል ከ 0 እስከ 7 ተቆጥረዋል እና ስለሆነም የግለሰቦችን ቁርጥራጮች ማዘጋጀት እና ማጽዳት ሳያስፈልጋቸው ወደ ትክክለኛው ፒኖች ካርታ ይይዛሉ።

በሚቀጥለው ደረጃ ባያያዝነው ኮድ እንደሚመለከቱት ፣ የማሳያ ልምዳችንን ወደ ማክሮ ወስደን በሚቀጥለው ትምህርት ውስጥ ለወደፊቱ ለመጠቀም የ SDA እና SCL ፒኖችን ነፃ አውጥተናል።

እኔ በማሳያው የጋራ አኖድ እና በ 5 ቪ ባቡር መካከል አንድ ተከላካይ ማስቀመጥ ያስፈልግዎታል ብዬ ማከል አለብኝ። እንደተለመደው የ 330 ohm resistor ን መርጫለሁ ነገር ግን ከወደዱት ከፍተኛውን ብሩህነት ከማሳያው ውጭ ለማውጣት የሚያስፈልገውን ዝቅተኛ ተቃውሞ ማስላት ይችላሉ። ያንን እንዴት ማድረግ እንደሚቻል እነሆ-

በመጀመሪያ የውሂብ ወረቀቱን ይመልከቱ እና በመጀመሪያው ገጽ ላይ የማሳያውን የተለያዩ ባህሪዎች እንደሚሰጥ ያስተውሉ። አስፈላጊዎቹ መጠኖች “ወደፊት አስተላላፊ” (I_f = 20mA) እና “ወደፊት ቮልቴጅ” (V_f = 2.2V) ናቸው። እነዚህ የአሁኑ የአሁኑ ከፊት ካለው የአሁኑ ጋር እኩል ከሆነ በማሳያው ላይ ያለው የቮልቴክት ጠብታ እንደሚፈልጉ ይነግሩዎታል። ይህ ማሳያው ሳይበስል የሚወስደው ከፍተኛው የአሁኑ ነው። በውጤቱም እንዲሁ ከክፍሎቹ መውጣት የሚችሉት ከፍተኛው ብሩህነት ነው።

ስለዚህ ከፍተኛውን ብሩህነት ለማግኘት ከማሳያው ጋር በተከታታይ ምን ማድረግ እንዳለብን ለማወቅ የኦሆምን ሕግ እና የኪርቾፍ loop ደንብን እንጠቀም። የኪርቾፍ ደንብ በወረዳው ውስጥ በተዘጋ ዑደት ዙሪያ ያለው የ voltage ልቴጅ ድምር ዜሮ እኩል ነው ይላል የኦሆም ሕግ ደግሞ በተከላካዩ R ላይ ያለው የቮልቴክት ጠብታ R - V = I አር እኔ በተቆራጩ በኩል የሚፈሰው የአሁኑ ነው።

ስለዚህ የ V ምንጭ voltage ልቴጅ ተሰጥቶ በወረዳችን ዙሪያ ስንዞር እኛ አለን-

V - V_f - I R = 0

ይህም ማለት (V - V_f)/I = R. ስለዚህ ከፍተኛውን ብሩህነት (እና ምናልባትም ክፍሎችን መጥበሻ) ለማግኘት የሚያስፈልገው ተቃውሞ የሚከተለው ይሆናል

R = (V - V_f)/I_f = (5.0V - 2.2V) /0.02A = 140 ohms

ስለዚህ እርስዎ ከፈለጉ ያለ ጭንቀት 150 ohms በደስታ መጠቀም ይችላሉ። ሆኖም ፣ እኔ 140 ohms ለምወደው በጣም ብሩህ ያደርገዋል እና ስለዚህ 330 ohms ን እጠቀማለሁ (ለኤልዲዎች የእኔ የግል ጎልዲሎክ ተቃውሞ ዓይነት ነው)

ደረጃ 2 - የመሰብሰቢያ ኮድ እና ቪዲዮ

የስብሰባውን ኮድ እና የቁልፍ ሰሌዳውን አሠራር ከማሳያው ጋር የሚያሳይ ቪዲዮ አያይዣለሁ። እርስዎ እንደሚመለከቱት እኛ በቀላሉ የ “አር” ቁልፍን ፣ የፍላሽ ቁልፉን ወደ “ኤፍ” ፣ የኮከብ ምልክት ወደ “ሀ” እና የሃሽ ምልክት ወደ “ኤች” ካርታ አድርገናል። በ LCD ማሳያዎች ወይም በ 4 አሃዝ ማሳያዎች ላይ ቁጥሮችን ለመተየብ የቁልፍ ሰሌዳውን መጠቀሙን ለመቀጠል ከፈለጉ እነዚህ ወደ ተለያዩ ሥራዎች ካርታ ሊሆኑ ይችላሉ ፣ ይግቡ እና ምን። ቀደም ባሉት አጋዥ ስልጠናዎች ውስጥ ካደረግነው ጋር በጣም ተመሳሳይ ስለሆነ በዚህ ጊዜ በኮድ መስመር-መስመር አልለፍም። ልዩነቶቹ በዋናነት ልክ እንደ ማቋረጦች እና የመመልከቻ ሰንጠረ likeችን እንዴት ማድረግ እንዳለብን አስቀድመን የምናውቃቸው ተመሳሳይ ነገሮች ናቸው። እርስዎ ኮዱን ብቻ ማለፍ እና እኛ ያከልናቸውን አዳዲስ ነገሮችን እና የቀየርናቸውን ነገሮች መመልከት እና ከዚያ መገንዘብ አለብዎት። በ AVR ማይክሮ መቆጣጠሪያዎች ላይ የመሰብሰቢያ ቋንቋ ኮድ አዲስ ገጽታዎችን ስናስተዋውቅ በሚቀጥለው ትምህርት ውስጥ ወደ የመስመር-ትንታኔ ትንታኔ እንመለሳለን።

አሁን ባለ 4 አኃዝ ማሳያ እንይ።

ደረጃ 3 ባለ 4-አሃዝ ማሳያውን ሽቦ ማገናኘት

ባለ 4-አሃዝ ማሳያ ሽቦን
ባለ 4-አሃዝ ማሳያ ሽቦን
ባለ 4-አሃዝ ማሳያ ሽቦን
ባለ 4-አሃዝ ማሳያ ሽቦን

በውሂብ ሉህ መሠረት ባለ 4-አሃዝ ማሳያ የ 60 mA የ Forward Current እና የ 2.2 ቮልት ወደፊት ቮልቴጅ አለው። ስለዚህ ፣ ልክ እንደበፊቱ ስሌት ፣ ከፈለግኩ 47 ohm resistor ን መጠቀም እችላለሁ። በምትኩ እኔ እጠቀማለሁ… hrm.. እስቲ እንመልከት… እንዴት 330 ohms ያህል።

ባለ 4-አሃዝ ማሳያ ባለገመድ መንገድ 4 አኖዶች አሉ ፣ ለእያንዳንዱ ለእያንዳንዱ አሃዞች ፣ እና እያንዳንዱ ፒኖች በእያንዳንዱ ውስጥ የትኛው ክፍል እንደሚመጣ ይቆጣጠራሉ። ባለብዙ ቁጥር ስለሆኑ በአንድ ጊዜ 4 አሃዞችን ማሳየት ይችላሉ። በሌላ አገላለጽ ፣ ልክ ለዳይ ጥንድ እንዳደረግነው ፣ እኛ በእያንዳንዱ ተራ አናዶዎች በኩል ኃይሉን በቀላሉ እናዞራለን እና እርስ በእርስ ያብራል። ዓይኖቻችን ብልጭ ድርግም እንዳያዩ እና አራቱም አሃዞች እንደበሩ እስኪመስል ድረስ ይህን በፍጥነት ያደርጋል። ሆኖም ፣ እርግጠኛ ለመሆን ፣ እኛ ኮድ የምናደርግበት መንገድ ሁሉንም አራት አሃዞች ማዘጋጀት ፣ ከዚያ አኖዶቹን ማዞር ፣ ከማቀናበር ፣ ከማንቀሳቀስ ፣ ከማንቀሳቀስ ፣ ወዘተ … በዚያ መንገድ እያንዳንዱን አሃዝ በማብራት መካከል ትክክለኛ ጊዜ ማግኘት እንችላለን።.

ለአሁኑ ፣ ሁሉም ክፍሎች እንደሚሠሩ እንፈትሽ።

በእርስዎ የዳቦ ሰሌዳ አወንታዊ ባቡር እና በማሳያው ላይ ባለው የመጀመሪያው አንቶይድ መካከል የእርስዎን 330 ohm resistor ያስቀምጡ። የውሂብ ሉህ እንደሚነግረን ካስማዎቹ በግራ በኩል ከ 1 እስከ 16 በተቃራኒ ሰዓት አቅጣጫ ተቆጥረዋል (ማሳያውን በመደበኛነት ሲመለከቱ.. ከታችኛው የአስርዮሽ ነጥቦች ጋር) እና አናዶዎች የፒን ቁጥሮች 6 እንደሆኑ ይገልጻል። ፣ 8 ፣ 9 እና 12።

ስለዚህ ፒን 6 ን ከ 5 ቮ ጋር እናገናኛለን እና ከዚያ ከጂኤንዲ ባቡርዎ አሉታዊ መሪን ወስደው ወደ ሌሎቹ ፒኖች ሁሉ ውስጥ ያስገቡት እና ሁሉም ክፍሎች በሚዛመደው አሃዝ ላይ ሲበራ (ይህም በእውነቱ ሁለተኛው አሃዝ ነው) መብት). ለማብራት ሁሉንም 7 ክፍሎች እና የአስርዮሽ ነጥብ ማግኘቱን ያረጋግጡ።

አሁን የአንዱን ክፍሎች ለማብራት የ GND ሽቦዎን በአንዱ ካስማዎች ውስጥ ይለጥፉ እና በዚህ ጊዜ ተቃዋሚውን ወደ ሌሎች 3 አኖዶች ያንቀሳቅሱ እና ተመሳሳይ ክፍል በእያንዳንዱ በሌሎች አሃዞች ውስጥ መብራቱን ይመልከቱ።

ያልተለመደ ነገር አለ?

በውሂብ ሉህ ላይ ያለው ምልክት የተሳሳተ ነው። ይህ የሆነበት ምክንያት ለ 12-ፒን ፣ ባለ 4-አሃዝ ማሳያ የውሂብ ሉህ እና ፒኖት ስለሆነ ነው። ኢ. ኮሎን ወይም የላይኛው የአስርዮሽ ነጥብ የሌለው። ባዘዝኩት ጊዜ ያገኘሁት ማሳያ 16 ፒን ፣ ባለ 4 አሃዝ ማሳያ ነው። በእውነቱ ፣ በእኔ ላይ ፣ ክፍል አኖዶች በፒን 1 ፣ 2 ፣ 6 እና 8 ላይ ናቸው። ባለሁለት ነጥብ አንቴድ ፒን 4 (ካቶድ ፒን 12) እና የላይኛው dp anode ፒን 10 ነው (ካቶድ ፒን 9)

መልመጃ 1 -እኛ ኮድ ስናደርግ ትክክለኛውን ክፍሎች እንዲያበሩ በማሳያው ላይ የትኛው ፒን ከየትኛው ክፍል እና የአስርዮሽ ነጥብ ጋር እንደሚዛመድ ለመለየት ተቃዋሚዎን እና የመሬት ሽቦዎን ይጠቀሙ።

የክፍል ካርታውን ኮድ የምንፈልግበት መንገድ ልክ ከላይ ካለው ባለአንድ አሃዝ 7-ክፍል ማሳያ ጋር እንዳደረግነው ነው-በኮዱ ውስጥ አንድ ነገር መለወጥ የለብንም ፣ የምንለውጠው ብቸኛው ነገር ሽቦዎቹ እንዴት እንደተገናኙ ነው በቦርዱ ላይ። ለምሳሌ ፣ PB0 አሁንም ከክፍል ሀ ጋር ወደሚዛመደው ፒን እንዲሄድ ፣ PB1 ወደ ክፍል B ፣ ወዘተ በመሄድ በማይክሮ መቆጣጠሪያው ላይ ያለውን ትክክለኛውን የወደብ ፒን በቀላሉ ወደ 4 ዲጂቱ ማሳያ ላይ ይሰኩት።

ወደ 5V ባቡር በቀላሉ መሄድ ስለማንችል ብቸኛው ልዩነት ለአናዶዎች አሁን 4 ተጨማሪ ፒኖች ያስፈልጉናል። ጭማቂውን የሚያገኘው የትኛው አሃዝ እንደሆነ ለመወሰን ማይክሮ መቆጣጠሪያው ያስፈልገናል።

ስለዚህ የ 4 አሃዞችን አኖዶች ለመቆጣጠር PC1 ፣ PC2 ፣ PC3 እና PD4 ን እንጠቀማለን።

እርስዎም እንዲሁ ይቀጥሉ እና ሽቦዎቹን ይሰኩ ይሆናል። (በአኖድ ሽቦዎች ላይ ያሉትን 330 ohm resistors አይርሱ!)

ደረጃ 4 ባለ 4-አሃዝ ማሳያውን ኮድ መስጠት

ባለ 4-አሃዝ ማሳያ ኮድ መስጠት
ባለ 4-አሃዝ ማሳያ ኮድ መስጠት

እስቲ ይህንን ማሳያ እንዴት ኮድ እንደምንፈልግ እናስብ።

እያንዳንዱን ቁልፍ ሲገፉ ተጠቃሚው የቁልፍ ሰሌዳ ቁልፎችን እንዲገፋ እና ቁጥሮቹ በቅደም ተከተል በማሳያው ላይ እንዲታዩ እንፈልጋለን። ስለዚህ እኔ 1 ን ተከትዬ 2 ን ብገፋው በማሳያው ላይ እንደ 12. ይታያል። እኔ ያንን እሴት ፣ 12 ን ለውስጣዊ አገልግሎት ማከማቸት እፈልጋለሁ ፣ ግን ትንሽ ቆይቶ ወደዚያ እንደርሳለን። ለአሁን የቁልፍ ጭነቶችዎን ወስዶ የሚያሳያቸው አዲስ ማክሮን መጻፍ እፈልጋለሁ። ሆኖም ፣ እኛ 4 አሃዞች ብቻ ስላሉን አራት ቁጥሮችን ለመተየብ ብቻ እንዲፈቅድልዎት እፈልጋለሁ።

ሌላ ጉዳይ ባለ ብዙ ባለ 4 አሃዝ ማሳያ የሚሠራበት መንገድ እያንዳንዱን አሃዝ ቀጣዩን እና ከዚያ ቀጥሎ እና በመጨረሻም ወደ መጀመሪያው እንደገና ከመመለሱ በፊት እያንዳንዱ አሀዝ ለአንድ ሰከንድ ሰከንድ ብቻ እንዲበራ በማድረግ አናዶቹን በብስክሌት በማሽከርከር ነው። ስለዚህ እኛ ይህንን ኮድ የሚያስፈልግበት መንገድ ያስፈልጋል።

እንዲሁም ቀጣዩን አሃዝ ስንጽፍ “ጠቋሚውን” ወደ ቀኝ ቦታ እንዲሸጋገር እንፈልጋለን። ስለዚህ እኔ 1234 ን ለመተየብ ከፈለግኩ ፣ 1 ን ከፃፍኩ በኋላ ፣ እኔ የምጽፈው ቀጣዩ አሃዝ በሚቀጥለው የ 7 ክፍል ማሳያ ላይ እንዲታይ ጠቋሚው ወደ ላይ ይንቀሳቀሳል። ይህ ሁሉ በሚሆንበት ጊዜ እኔ አሁንም የጻፍኩትን ማየት መቻል እፈልጋለሁ ስለዚህ አሁንም በዲጂቶቹ ውስጥ ብስክሌት መንዳት እና እነሱን ማሳየት አለበት።

እንደ ረጅም ትእዛዝ ይመስላል?

ነገሮች በእውነቱ የከፋ ናቸው። ልናሳያቸው የምንፈልጋቸውን 4 አሃዞች ወቅታዊ እሴቶችን ለማከማቸት ልንጠቀምባቸው የምንችላቸው 4 ተጨማሪ የአጠቃላይ መመዝገቢያዎች ያስፈልጉናል (በእነሱ ውስጥ ዑደት ከሄድን አንድ ቦታ እንዲከማች ማድረግ አለብን) እና የዚህ ችግር እኛ አለን የጠቅላላ ዓላማ መዝገቦችን እንደ እብድ እየተጠቀመ ነበር እና ካልተጠነቀቅን ምንም አንተርፍም። ስለዚህ ያንን ጉዳይ ፈጥኖ መፍታት እና መደራረብን በመጠቀም መዝገቦችን እንዴት ማስለቀቅ እንደሚቻል ማሳየት ጥሩ ሀሳብ ሊሆን ይችላል።

ስለዚህ ነገሮችን በመጠኑ በማቅለል እንጀምራለን ፣ ቁልልውን እንጠቀማለን ፣ እና አንዳንድ መመዝገቢያዎችን ነፃ እናደርጋለን ከዚያም ቁጥራችንን በ 4-አሃዝ ማሳያ ላይ የማንበብ እና የማሳየት ተግባሩን ለመፈፀም እንሞክራለን።

ደረጃ 5 - ፖፕን ይጫኑ

Ushሽ ፖፕ
Ushሽ ፖፕ

በእጃችን ያለን ጥቂት “አጠቃላይ ዓላማ መመዝገቢያዎች” አሉ እና አንዴ ከተጠቀሙ በኋላ የሉም። ስለዚህ ለማንበብ እና ለመፃፍ ወደቦች እና SRAM ጋር እንደ ጊዜያዊ ማከማቻነት ለሚጠቀሙባቸው ሁለት ተለዋዋጮች ብቻ እነሱን መጠቀማቸው ጥሩ የፕሮግራም ልምምድ ነው ፣ ወይም በሌላ በማንኛውም ንዑስ ክፍል ውስጥ የሚፈልጓቸው እና ስለዚህ እርስዎ ስማቸው። ስለዚህ እኔ የሠራሁት ፣ አሁን ቁመትን ለመጠቀም እና ለመማር እየተማርን ከሆነ ፣ ኮዱን ማለፍ እና በአንድ ንዑስ ክፍል ውስጥ ወይም በማቋረጥ እና በኮዱ ውስጥ ሌላ ቦታ ላይ ብቻ ጥቅም ላይ የሚውሉ የተሰየሙ አጠቃላይ ዓላማ መዝገቦችን ማግኘት ነው። በአንዱ የአየር ሁኔታ መመዝገቢያችን እና ወደ ቁልል በመገፋፋት እና በመጫን። በእውነቱ ፣ ለትንሽ ማይክሮ መቆጣጠሪያዎች የተፃፈውን ኮድ ከተመለከቱ ፣ ወይም ሁሉም ቺፕስ አነስ ያሉበት ወደነበረበት ተመልሰው ከሄዱ ፣ ለሁሉም ነገር ጥቅም ላይ መዋል የነበረባቸውን ሁለት አጠቃላይ የአላማ መመዝገቢያዎችን ብቻ ያያሉ ፣ ስለዚህ አልቻሉም ለሌሎች ነገሮች መመዝገብ እንደሚያስፈልግዎ እርግጠኛ ስለሆኑ እዚያ ውስጥ አንድ እሴት ያከማቹ እና ብቻውን ይተውት። ስለዚህ ኮዱ ውስጥ ባለው ቦታ ሁሉ usሺን እና ፖፒን ያያሉ። ምናልባት የእኛን የአየር ሁኔታ አጠቃላይ ዓላማ ኤክስ እና ቢኤክስን ለእነዚያ ያለፉ ቀናት እንደ አክብሮት ኩዶች አድርገው መሰየም ነበረብኝ።

አንድ ምሳሌ ይህንን የበለጠ ግልፅ ለማድረግ ይረዳል።

በእኛ የአናሎግ ወደ ዲጂታል ልወጣ ሙሉ ማቋረጫ ADC_int እኛ የ ADCH ን ዋጋ ለመጫን እና የአዶሎግን ፍለጋ አዝራሮችን ለመለወጥ የምንጠቀምበትን አዝራር ኤች ብለን የሰየምንበትን አጠቃላይ ዓላማ መመዝገቢያ እንጠቀማለን። እኛ የምንጠቀምበት ይህንን አዝራር ኤች በ ADC_int ንዑስ ክፍል ውስጥ እና በሌላ ቦታ ብቻ ነው። ስለዚህ በምትኩ በማንኛውም በተጠቀሰው ንዑስ ክፍል ውስጥ ልንጠቀምበት የምንችለውን እንደ ተለዋዋጭ ተለዋዋጭ የምንጠቀምበትን ተለዋዋጭ temp2 ን እንጠቀማለን እና እሴቱ ከዚያ ንዑስ ክፍል ውጭ ማንኛውንም ነገር አይነካም (ማለትም በ ADC_int የሰጠነው እሴት የትም ቦታ አይጠቀምም) ሌላ)።

ሌላው ምሳሌ በእኛ መዘግየት ማክሮ ውስጥ ነው። በሚሊሰከንዶች ውስጥ የመዘግየት ጊዜያችንን የያዘ ‹ሚሊሰከንዶች› ብለን የሰየምን መዝገብ አለን። በዚህ ሁኔታ እሱ በማክሮ ውስጥ ነው እና የማክሮ ሥራው መንገድ አሰባሳቢው አጠቃላይ የማክሮ ኮዱን ወደተጠራበት የፕሮግራሙ ቦታ ማስገባቱን እናስታውሳለን። በዚህ ሁኔታ የ “ሚሊሰከንዶች” ተለዋዋጭውን ማስወገድ እና በአንዱ ጊዜያዊ ተለዋዋጮቻችን መተካት እንፈልጋለን። በዚህ ሁኔታ የተለዋዋጩ ዋጋ በሌላ ቦታ የሚያስፈልግ ቢሆንም ቁልልውን በመጠቀም አሁንም ልንጠቀምበት እንደምንችል ለማሳየት ትንሽ በተለየ መንገድ አደርገዋለሁ። ስለዚህ በሚሊሰከንዶች ፋንታ ‹ቴምፕ› ን እንጠቀማለን እናም እኛ እንዲሁ የሙቀት መጠንን የሚጠቀሙ ሌሎች ነገሮችን ላለማበላሸት በቀላሉ “መዘግየት” ማክሮን ወደ ቁልሉ በመጫን “መዘግየት” እንጀምራለን ፣ ከዚያ እንጠቀማለን በሚሊሰከንዶች ፋንታ ፣ እና ከዚያ በማክሮው መጨረሻ ላይ የቀደመውን እሴቱን ከጥቅሉ መልሰን እናወጣለን።

የተጣራ ውጤቱ ለጊዜያዊ አገልግሎት “ተበድረን” እና እኛ ስንጨርስ ወደ ቀድሞ እሴቶቻቸው መልሰናል።

ይህንን ለውጥ ካደረጉ በኋላ የ ADC_int ማቋረጫ የዕለት ተዕለት እንቅስቃሴ ይኸውና ፦

ADC_int ፦

የግፊት ሙቀት; እኛ እዚህ ስለቀየርነው የሙቀት መጠንን ይቆጥቡ temp2; temp2 lds temp2 ፣ ADCH ን ይቆጥቡ። የመጫኛ ቁልፍ ldi ZH ፣ ከፍተኛ (2*ቁጥሮች) ldi ZL ፣ ዝቅተኛ (2*ቁጥሮች) cpi temp2 ፣ 0 breq መመለስ ፤ ጫጫታ ቀስቅሴዎች ካልቀየሩ 7segnumber setkey: lpm temp, Z+; ከጠረጴዛ ላይ ይጫኑ እና ጭማሪ clc cp temp2 ፣ temp; የቁልፍ ጭነቱን ከጠረጴዛው brlo PC+4 ጋር ያወዳድሩ። ADCH ዝቅተኛ ከሆነ ፣ እንደገና ይሞክሩ lpm 7segnumber ፣ Z; አለበለዚያ የቁልፍ እሴት ሠንጠረዥ ኢን ዲጂትን ይጫኑ ፤ የአሃዝ ቁጥሩን rjmp መመለስ ይጨምሩ። እና adiw ZH: ZL ፣ 1; ጭማሪ Z rjmp setkey; እና ወደ ከፍተኛ ተመላሽ ይመለሱ -ብቅ temp2; temp2 ብቅ temp እነበረበት መልስ; የሙቀት መጠንን ወደነበረበት መመለስ

ቁልል የሚሰራበት መንገድ የመጀመሪያው በርቶ መጨረሻው መሆኑን ልብ ይበሉ። ልክ እንደ ቁልል ወረቀቶች። በመጀመሪያዎቹ ሁለት መስመሮቻችን ውስጥ የሙቀት መጠንን ወደ ቁልል እንደገፋፋለን ፣ ከዚያ temp2 ን ወደ ቁልል እንገፋፋለን ፣ ከዚያ ለሌላ ነገሮች በንዑስ ክፍል ውስጥ እንጠቀማቸዋለን ፣ እና በመጨረሻም ወደ ቀድሞ እሴቶቻቸው እንደገና እንመልሳቸዋለን መጀመሪያ ብቅ temp2 ጠፍቷል (በላዩ ላይ የተገፋው የመጨረሻው በመቆለሉ አናት ላይ ስለሆነ እኛ መጀመሪያ የምንነሳው የመጀመሪያው ይሆናል) እና ከዚያ የሙቀት መጠን ብቅ ይላል።

ስለዚህ ከአሁን ጀምሮ ይህንን ዘዴ ሁል ጊዜ እንጠቀማለን። ከሙቀት መለዋወጫ ውጭ ለሌላ ነገር በእርግጥ ምዝገባን የምንሾምበት ብቸኛው ጊዜ በሁሉም ቦታ በሚያስፈልገን ጊዜ ነው። ለምሳሌ ፣ “ተጥለቅልቋል” የተባለው መዝገብ በፕሮግራሙ ውስጥ በተለያዩ ቦታዎች የምንጠቀምበት ስለሆነ ስም ልንሰጠው እንፈልጋለን። በእርግጥ እኛ ከጨረስን በኋላ ዋጋውን ስለምንመልስ አሁንም እኛ በ temp እና temp2 ባደረግነው መንገድ ልንጠቀምበት እንችላለን። ግን ያ ነገሮችን በጣም ያበዛል። እነሱ የተሰየሙት በምክንያት ነው እና እኛ ለዚያ ሥራ ቀድሞውኑ ተፈርዶበታል።

ደረጃ 6 ዝቅተኛ ማለፊያ ማጣሪያዎች እና የቮልቴጅ ማጉያ

ዝቅተኛ ማለፊያ ማጣሪያዎች እና የቮልቴጅ ማጉያ
ዝቅተኛ ማለፊያ ማጣሪያዎች እና የቮልቴጅ ማጉያ
ዝቅተኛ ማለፊያ ማጣሪያዎች እና የቮልቴጅ ማጉያ
ዝቅተኛ ማለፊያ ማጣሪያዎች እና የቮልቴጅ ማጉያ

ጫጫታውን ትንሽ ለማጽዳት እና የእኛ ቁልፍ ሰሌዳ በተሻለ ሁኔታ እንዲሠራ ለማድረግ ሁለት ዝቅተኛ ማለፊያ ማጣሪያዎችን ማከል እንፈልጋለን። እነዚህ ከፍተኛ ድግግሞሽ ጫጫታ ያጣሩ እና ዝቅተኛ ድግግሞሽ ምልክት እንዲያልፍ ያስችላሉ። በዋናነት ይህንን ለማድረግ የሚቻልበት መንገድ በአናሎግ ግብዓታችን እና በመሬት መካከል 68 ፒኤፍ capacitor እና እንዲሁም በእኛ PD4 (INT0) መቋረጥ እና መሬት መካከል 0.1 ማይክሮፋራድ (ማለትም 104) capacitor ማከል ነው። በቁልፍ ሰሌዳው ላይ አዝራሮችን ሲገፉ በእነዚህ የሚጫወቱ ከሆነ የሚያደርጉትን ማየት ይችላሉ።

በመቀጠል የቮልቴጅ ማጉያ መስራት እንፈልጋለን። በቁልፍ ሰሌዳው ላይ ያሉት የታችኛው ረድፎች ቁልፎች (እንዲሁም የማዞሪያ ቁልፍ) የ INT0 ማቋረጫውን ለመጉዳት በጣም ዝቅተኛ የቮልቴጅ እያወጡ ነው። የአናሎግ ወደብ ከነዚህ ቁልፎች ዝቅተኛ ውጥረቶችን ለማንበብ በቂ ስሜታዊ ነው ፣ ነገር ግን እነዚያን ቁልፎች ስንገታ የእኛን የማቋረጫ ፒን ለማቋረጥ በቂ የሆነ ከፍ ያለ ጠርዝ እያገኘ አይደለም። ስለዚህ አንድ ጥሩ የቮልቴጅ መነሳት ጠርዝ PD4 ን መምታቱን ግን ተመሳሳይ ዝቅተኛ ቮልቴጅ ADC0 ን መምታቱን ለማረጋገጥ አንድ መንገድ እንፈልጋለን። ሁለቱም ምልክቶች ከአንድ የቁልፍ ሰሌዳችን ተመሳሳይ የውጤት ሽቦ ስለሚመጡ ይህ በጣም ረጅም ቅደም ተከተል ነው። ይህንን ለማድረግ በርካታ የተራቀቁ መንገዶች አሉ ፣ ግን እኛ ከዚህ የመማሪያ ሥልጠና በኋላ የቁልፍ ሰሌዳችንን ከእንግዲህ አንጠቀምም ፣ ስለዚህ የሚሠራውን ዘዴ (በጭራሽ) አብረን እንገናኝ።

በቁልፍ ሰሌዳው ላይ ቁልፍ በመያዝ እና ቁልፉን ጠቅ በማድረግ የ INT0 ማቋረጫውን ለመተካት እና ማሳያውን ለመቆጣጠር መጀመሪያ የውጭ ቁልፍን ማያያዝ አለብዎት። ይህ ያነሱ የቁልፍ ሰሌዳ ችግሮች አሉት እና የእርስዎ ቮልቴጅዎች በቁልፍ ሰሌዳው መመልከቻ ጠረጴዛ ላይ በትክክል እንደተዘጋጁ እርግጠኛ እንዲሆኑ ያስችልዎታል። አንዴ የቁልፍ ሰሌዳው በትክክል እንደተገጠመ ካወቁ ከዚያ ቁልፉን ያስወግዱ እና የ INT0 ማቋረጫውን መልሰው ያስቀምጡ። የቁልፍ ሰሌዳውን በዚህ መንገድ የሚቆጣጠሩ አንዳንድ ከባድ ጫጫታ እና የቮልቴጅ ጉዳዮች አሉ ስለዚህ የወደፊቱ ችግሮች ለ INT0 ቁልፍ እንዲገለሉ ሁሉም ነገር እንደሚሰራ ማወቅ ጥሩ ነው።

የቁልፍ ሰሌዳዎን እና የቮልቴጅ ማጉያዎን ሲጭኑ ፣ እኔ የተጠቀምኳቸው ተመሳሳይ የመቋቋም እሴቶች ላይሰሩ ይችላሉ። ስለዚህ ለእርስዎ የሚሠሩ እሴቶችን ለማግኘት አንዳንድ ሙከራዎችን ማድረግ ይኖርብዎታል።

ከዚህ ደረጃ ጋር ያያያዝኩትን ዲያግራም ከተመለከቱ የቮልቴጅ ማጉያው እንዴት እንደሚሰራ ያያሉ። አንዳንድ ተከላካዮችን እና ሁለት ትራንዚስተሮችን እንጠቀማለን። ትራንዚስተሮች የሚሰሩበት መንገድ (የውሂብ ሉሆቹን ይመልከቱ!) በሚረከበው (መካከለኛ ፒን) ላይ ወደ መሰረታዊ ፒን ማስገባት የሚያስፈልግዎት ዝቅተኛ ቮልቴጅ አለ ፣ ይህም ያረካዋል እና የአሁኑ በአሰባሳቢው ፒን እና በኤምስተር መካከል እንዲፈስ ያስችለዋል። ፒን እዚህ እየተጠቀምን ባለው 2N3904 ትራንዚስተር ሁኔታ ቮልቴጁ 0.65 ቪ ነው። አሁን ያንን voltage ልቴጅ ከቁልፍ ሰሌዳው ውፅዓት እንወስዳለን እና ያንን ውፅዓት መለወጥ ስለማንፈልግ ከቁልፍ ሰሌዳው እና ከመጀመሪያው ትራንዚስተር መሠረት (1Mohm ን እጠቀማለሁ) ባለው ውፅዓት መካከል ትልቅ ተከላካይ እናስቀምጣለን። ይህንን በስዕላዊ መግለጫው ውስጥ R_1 አድርጌዋለሁ። ከዚያ የ “ትራንዚስተር” መሠረት ቀድሞውኑ በ 0.65 ቮልት ላይ “ማለት ይቻላል” እና የጉርምስና ዕድሜ ያለው weeny ቢት ብቻ ከላይ በላይ እንዲገፋው እና እንዲጠግነው የ voltage ልቴጅ ማከፋፈያ ማዘጋጀት እንፈልጋለን። አንድ አዝራር ስንገፋ ያ ያ ታዳጊው ትንሽ ልጅ ከቁልፍ ሰሌዳው ውጤት ይመጣል። በቁልፍ ሰሌዳው ላይ ያሉት የታችኛው ቁልፎች ጥቃቅን ቮልቴጅን ብቻ ስለሚያወጡ በቂ እንዲሆኑ አስቀድመን ወደ ሙሌት ቅርብ መሆን አለብን። የቮልቴጅ መከፋፈሉ ተቃዋሚዎች በስዕሉ ላይ R_a እና R_b የሚል ስያሜ ተሰጥቷቸዋል። እኔ R_a = 1Mohm እና R_b = 560Kohm ን እጠቀም ነበር ፣ ግን ለማዋቀርዎ በትክክል ለማስተካከል በእነዚህ ቁጥሮች ዙሪያ መጫወት እንደሚኖርብዎት እርግጠኛ ነው።ጭንቅላትዎን ለመንካት በአቅራቢያዎ ግድግዳ እንዲኖርዎት እና ሁለት ወይም ሶስት ብርጭቆ ስኮትክ በእጁ ላይ (ላፍሮአይግ - ውድ ፣ ግን ማጨስን ከፈለጉ ዋጋ ያለው ነው። ነገሮች በእውነቱ እብድ ከሆኑ ታዲያ ልክ አንድ ማሰሮ ያግኙ። የ BV እና ለሊት ይኑሩ)

አሁን ትራንዚስተሮች ወደ INT0 ቁልፍ በመግባት ጥሩ የመውጣት ጠርዝ እንዴት እንደሚያገኙልን እና የቁልፍ መጫኛ ማቋረጣችንን እንዴት እንደሚያመነጩ እንመልከት። ቁልፍ ካልጫንኩ መጀመሪያ ምን እንደሚሆን እንመልከት። እንደዚያ ከሆነ የመጀመሪያው ትራንዚስተር (በስዕሉ ላይ T1 የተሰየመ) ጠፍቷል። ስለዚህ በአሰባሳቢው እና በኤሚስተር ፒኖች መካከል ምንም ፍሰት አይፈስም። ስለዚህ የሌላኛው ትራንዚስተር (T2 የተሰየመ) መሠረት ወደ ላይ ይጎትታል እናም በዚህም በፒንዎቹ መካከል ፍሰት እንዲፈስ ያስችለዋል። ይህ ማለት እሱ ራሱ ከመሬት ጋር ከተገናኘው ሰብሳቢው ጋር ስለሚገናኝ የ T2 አምጪ ዝቅተኛ ይጎትታል ማለት ነው። ስለዚህ ፣ ወደ የእኛ INT0 የቁልፍ መጫኛ ማቋረጫ ፒን (PD4) የሚሄደው ውጤት ዝቅተኛ ይሆናል እና ምንም መቋረጥ አይኖርም።

አሁን ቁልፉን ስገፋው ምን ይሆናል? ደህና ከዚያ የ T1 መሠረት ከ 0.65 ቪ በላይ ይሄዳል (በዝቅተኛ ቁልፎች ሁኔታ ላይ ብቻ ወደ ላይ ብቻ ይሄዳል!) እና ከዚያ የአሁኑ ፍሰት እንዲፈስ ይፈቀድለታል ይህም የ T2 ን መሠረት ወደ ዝቅተኛ ቮልቴጅ የሚጎትት እና ይህ T2 ን ይዘጋዋል። ነገር ግን እኛ T2 ሲጠፋ ፣ ከዚያ ውጤቱ ከፍ ብሎ ስለሚጎትት ወደ እኛ INT0 ፒን የሚሄድ የ 5V ምልክት እናገኛለን እና መቋረጥን ያስከትላል።

የተጣራ ውጤት እዚህ ምን እንደሆነ ልብ ይበሉ። 1 ቁልፍን ብንገፋ ፣ ወደ ADC0 የሚሄደውን ውጤት በከፍተኛ ሁኔታ ሳይቀይር 5V ወደ PD4 እንሄዳለን ፣ እና ከሁሉም በላይ ፣ ምንም እንኳን አስትሪክስ ፣ 0 ፣ ሃሽ ወይም ሬዲያል ብንገፋው ፣ እንዲሁም ወደ INT0 እና እንዲሁም ወደ መቋረጥን ያስከትላል! እኛ በቀጥታ ከቁልፍ ሰሌዳው ውፅዓት ወደ INT0 ፒን ከሄድን ፣ እነዚህ ቁልፎች ምንም ዓይነት voltage ልቴጅ አያመነጩም እና ያንን የሚያቋርጥ ፒን ለመቀስቀስ በቂ አይሆኑም። የእኛ የቮልቴጅ ማጉያ ይህንን ችግር ፈቷል።

ደረጃ 7 ባለ 4-አሃዝ የማሳያ ኮድ እና ቪዲዮ

ያ ሁሉ ለመማሪያ 9 ነው! ቀዶ ጥገናውን የሚያሳይ ኮዱን እና ቪዲዮን አያይዣለሁ።

የአናሎግ ቁልፍ ሰሌዳውን (እግዚአብሔርን አመሰግናለሁ) የምንጠቀምበት ይህ የመጨረሻ ጊዜ ይሆናል። ለመጠቀም ከባድ ነበር ፣ ግን ስለ አናሎግ-ወደ-ዲጂታል መለወጥ ፣ የአናሎግ ወደቦች ፣ ማቋረጦች ፣ ብዙ ማባዛት ፣ የድምፅ ማጣሪያዎች ፣ የቮልቴጅ ማጉያዎች እና ብዙ የመሰብሰቢያ ኮድ ገጽታዎች ከመፈለጊያ ጠረጴዛዎች እስከ ሰዓት ቆጣሪ/ቆጣሪዎች እንድንማር እኛን ለመርዳት በጣም ጠቃሚ ነበር። ፣ ወዘተ ለዚህ ነው እሱን ለመጠቀም የወሰንነው። (በተጨማሪም ነገሮችን ማበላሸት አስደሳች ነው)።

አሁን እኛ በመገናኛ ተንታኛችን እንዳደረግነው የዳይስ ጥቅሎቻችንን ከዳይስ ሮለርችን ለማንበብ የ 7-ክፍል እና ባለ 4-አሃዝ ማሳያዎቻችንን እንደገና እንመለከታለን። በዚህ ጊዜ እኛ ከተጠለፍን አንድ የሞርስ ኮድ ዘዴ ይልቅ የሁለት ሽቦ በይነገጽን እንጠቀማለን።

አንዴ የግንኙነቶች ሥራ ሲሠራ እና ጥቅሎቹ በማሳያዎቹ ላይ ሲታዩ በመጨረሻ የመጨረሻውን ምርታችንን የመጀመሪያውን ቁራጭ ማድረግ እንችላለን። ያለ ሁሉም የአናሎግ ወደብ ነገሮች የእኛ ኮድ በከፍተኛ ሁኔታ አጭር እና ምናልባትም ለማንበብ ቀላል እንደሚሆን ያስተውላሉ።

ትልቅ ፍላጎት ላላቸው። እነዚህን ሁሉ አጋዥ ሥልጠናዎች እስከዚህ ነጥብ ድረስ ካሳለፉ በእርግጠኝነት በዚህ ጊዜ እርስዎ የሚያደርጉት እውቀት እንዳለዎት ሊሞክሩት የሚችሉት “ፕሮጀክት” እዚህ አለ።

ፕሮጀክት: ካልኩሌተር ያድርጉ! ባለ 4-አሃዝ ማሳያችንን እና የእኛን ቁልፍ ሰሌዳ ይጠቀሙ እና እንደ “አስገባ” ቁልፍ የሚሠራ የውጭ አዝራርን ግፊት ይጨምሩ። የኮከብ ቆጠራውን ወደ “ጊዜያት” ፣ ሃሽ አቅጣጫውን ወደ “ፕላስ” እና ብልጭቱን ወደ “መቀነስ” ለመከፋፈል እና መሐንዲሶቹ ሁሉ እንደነበሯቸው እንደ አሮጌው የ HP “የተገላቢጦሽ” ካልኩሌተሮች እንደ አንዱ የሚሠራውን የሂሳብ ማሽን ስራ ይፃፉ። ወደ ቀን ተመለስ። ኢ. እነሱ የሚሰሩበት መንገድ ቁጥር አስገብተው “አስገባ” ን መጫን ነው። ይህ ያንን ቁጥር ወደ ቁልል ይገፋል ፣ ከዚያ ሁለተኛ ቁጥር ያስገቡ እና “አስገባ” ን ይጫኑ ፣ ይህም ሁለተኛውን ቁጥር ወደ ቁልል ይገፋል። በመጨረሻም እንደ X ፣ /፣ + ወይም እንደ ኦፕሬሽኖች አንዱን ይጫኑ - እና ያንን ክዋኔ በቁልል ላይ ባሉት ሁለት ሁለት ቁጥሮች ላይ ተግባራዊ ያደርጋል ፣ ውጤቱን ያሳዩ እና ውጤቱን ወደ ቁልል ላይ ይግፉት እርስዎ እንደገና እንዲጠቀሙበት like. ለምሳሌ 2+3 ለማከል እርስዎ ያደርጉታል -2 ፣ “ግባ” ፣ 3 ፣ “አስገባ” ፣ “+” እና ማሳያው ከዚያ ይነበባል። 5. ቁልል ፣ ማሳያ ፣ የቁልፍ ሰሌዳ እና እርስዎ እንዴት እንደሚጠቀሙ ያውቃሉ አብዛኛው የጀርባ ኮድ አስቀድሞ ተጽ writtenል። የመግቢያ ቁልፍን እና ለሂሳብ ማሽን የሚያስፈልጉ ንዑስ ፕሮግራሞችን ብቻ ያክሉ። መጀመሪያ ከሚያስቡት በላይ ትንሽ የተወሳሰበ ነው ፣ ግን አስደሳች እና ማድረግ የሚችል ነው።

በኋላ እንገናኝ!

የሚመከር: