ዝርዝር ሁኔታ:

Attiny85 ተጓዳኝ የፕሮግራም አወጣጥ ወይም ዱባ ባለብዙ ቀለም ዓይኖች 7 ደረጃዎች
Attiny85 ተጓዳኝ የፕሮግራም አወጣጥ ወይም ዱባ ባለብዙ ቀለም ዓይኖች 7 ደረጃዎች

ቪዲዮ: Attiny85 ተጓዳኝ የፕሮግራም አወጣጥ ወይም ዱባ ባለብዙ ቀለም ዓይኖች 7 ደረጃዎች

ቪዲዮ: Attiny85 ተጓዳኝ የፕሮግራም አወጣጥ ወይም ዱባ ባለብዙ ቀለም ዓይኖች 7 ደረጃዎች
ቪዲዮ: Знакомство с Digispark ATtiny85. "Arduino для чайников" 2024, ህዳር
Anonim

ተጨማሪ በ ደራሲው ይከተሉ

ጩኸቱ
ጩኸቱ
ጩኸቱ
ጩኸቱ
የኒሲዲ ባትሪ ከውጭ የኃይል አቅርቦት ጋር መተካት
የኒሲዲ ባትሪ ከውጭ የኃይል አቅርቦት ጋር መተካት
የኒሲዲ ባትሪ ከውጭ የኃይል አቅርቦት ጋር መተካት
የኒሲዲ ባትሪ ከውጭ የኃይል አቅርቦት ጋር መተካት
ዲጂታል ካሜራ መያዣ
ዲጂታል ካሜራ መያዣ
ዲጂታል ካሜራ መያዣ
ዲጂታል ካሜራ መያዣ

ስለ: እኔ በአንዱ የባህር ወሽመጥ (ካሊፎርኒያ) ኩባንያዎች ውስጥ እንደ ሶፍትዌር መሐንዲስ እሠራለሁ። በማንኛውም ጊዜ የማይክሮ መቆጣጠሪያዎችን መርሃ ግብር ማዘጋጀት ፣ ሜካኒካዊ መጫወቻዎችን መገንባት እና አንዳንድ የቤት ማሻሻያ ፕሮጄክቶችን መሥራት የምወድበት ጊዜ አለኝ። ተጨማሪ ስለ jumbleview »

ይህ ፕሮጀክት በአቲንቲ 85 ቺፕ ሁለት ሁለት ሚሊ ሜትር ባለ ሶስት ቀለም የጋራ የአኖድ ኤልኢዲዎችን (ባለ ብዙ ቀለም ዱባ ሃሎዊን አንፀባራቂ ዓይኖች) እንዴት እንደሚቆጣጠር ያሳያል። የፕሮጀክቱ ግብ አንባቢን በአንድ ጊዜ በፕሮግራም ጥበብ ውስጥ እና በአዳም ዱንክልስ ቤተመፃህፍት ላይ ተረድቶ ማስተዋወቅ ነው። ይህ ፕሮጀክት አንባቢ ስለ AVR 8-ቢት ተቆጣጣሪዎች ያውቃል ብሎ ያስባል ፣ አንዳንድ ሲ-ፕሮግራምን መጻፍ ይችላል እና ከአትሜል ስቱዲዮ ጋር የተወሰነ ተሞክሮ አለው።

በ GitHub ላይ የታተመ የፕሮጀክት ኮድ:

አቅርቦቶች

ከፕሮግራሙ በፊት አንድ አሁንም ወረዳውን መገንባት አለበት። ክፍሎች እዚህ አሉ

  • Attiny85 ተቆጣጣሪ (ማንኛውም የኤሌክትሮኒክ አቅራቢ)።
  • ሁለት ሶስት ቀለም 10 ሚሜ ኤልኢዲዎች ከተለመደው አኖድ ጋር። Adafruit LEDs
  • Resistors 100 Ohm ፣ 120 Ohm ፣ 150 Ohm 0.125 ወይም 0.250 Wt (ማንኛውም የኤሌክትሮኒክ አቅራቢ)።
  • ለ AVR ISP በይነገጽ ስድስት ፒን ራስጌ። ከዚህ የ Adafruit ራስጌ ሊሠራ ይችላል
  • አንዳንድ የዳቦ ሰሌዳ ወይም የታተመ የአብነት ሰሌዳ። ይህንን አንዱን ተጠቅሜያለሁ
  • AVR ISP MKII በይነገጽ እና Atmel Studio 6.1 (የኋለኛው ስሪት እንዲሁ መስራት አለበት)።

ደረጃ 1: ሰርከክ

አቆራረጥ
አቆራረጥ

ንድፍ አምስት ቺፕ ፒኖችን ይጠቀማል-

  • አኖዶቹን ለመቆጣጠር የሚያገለግሉ ሁለት ፒኖች -እያንዳንዱ የ LED አንደር ከተወሰነው ፒን ጋር ተያይ attachedል።
  • ከ LEDs cathodes (ከተቃዋሚዎች በኩል) ሶስት ፒን ተያይዘዋል (የእያንዳንዱ መሪ ተመሳሳይ ቀለም ካቶዴድ ከአንድ ፒን ጋር ተያይ attachedል)

አንድ ሰው ይጠይቅ ነበር -ለምን የ LED ቺፖችን በቀጥታ ከ +5 v ጋር እንዲገናኝ እና እያንዳንዱ ካቶድ የወሰነውን ፒን እንዲኖረው ለምን ሁሉንም ስድስቱን/የቺፕ ፒኖችን አይጠቀሙም? ያ ፕሮግራሚንግን ቀጥተኛ ያደርገዋል። ወዮ ፣ ችግሩ አለ - ፒን PB5 (RESET) የአሁኑን ~ 2 mA ብቻ ለማቅረብ የሚችል ደካማ ፒን ነው ፣ ~ 20 mA መኖር አለበት።

በእርግጥ አንድ ሰው ለዚህ ደካማ ፒን ትራንዚስተር ማጉያ መገንባት ይችላል ፣ ግን እኔ በተቻለ መጠን በኮዱ ላይ ያለውን ችግር መፍታት እመርጣለሁ።

ደረጃ 2: የጊዜ ሰንጠረዥ

የጊዜ ሰንጠረዥ
የጊዜ ሰንጠረዥ

የጊዜ መርሃ ግብር መርሃ ግብር ምን ማድረግ እንዳለብን ለመረዳት ይረዳናል።

በስዕላዊ መግለጫው ላይ ያሉት ከፍተኛ ሁለት ረድፎች በ LED አኖዶች ላይ የቮልቴጅ ለውጥን ያሳያል። ከ LED አናዶዎች ጋር በተገናኙ ፒኖች ላይ ያለው voltage ልቴጅ ድግግሞሽ ~ 250 Hz። ለግራ ኤልኢዲ ይህ የቮልቴጅ ማወዛወዝ ከትክክለኛው የ LED ማወዛወዝ ተቃራኒ ነው። በአኖድ ላይ ያለው ቮልቴጅ ከፍተኛ ተጓዳኝ ኤልኢዲ ብሩህ ሊሆን ይችላል። እሱ ዝቅተኛ በሚሆንበት ጊዜ ኤልኢዲ ጨለማ ነው። ያ ማለት እያንዳንዱ ኤልኢዲ በ 2 ሚሊሰከንዶች ጊዜ ውስጥ ብሩህ ሊሆን ይችላል እና በሌላ 2 ሚሊሰከንዶች ጊዜ ጨለማ ይሆናል። የሰው ዐይን አንዳንድ ግፊቶች ስላሉት ፣ 250 Hz ብልጭ ድርግም በሚል ታዛቢ አይታይም። በስዕሉ ላይ ያሉት ሶስት ረድፎች ከ LEDs cathodes ጋር በተገናኙ ፒኖች ላይ የቮልቴጅ ለውጥ ያሳያል። የመጀመሪያውን የንድፍ አምድ እንይ። የግራ ኤልኢዲ በቀይ ቀለም እና በቀኝ LED በአረንጓዴ ቀለም ውስጥ ሲገኝ ጉዳዩን ያሳያል። የግራ anode ከፍ ባለበት ጊዜ ቀይ ቀይ ካቶዶስ ዝቅተኛ ሆኖ ይቆያል ፣ አረንጓዴው ካቶዴድ ቀኝ አኖድ ከፍ እያለ ፣ እና ሰማያዊ ካቶድ ሁል ጊዜ ዝቅተኛ ሆኖ ይቆያል። በስዕላዊ መግለጫው ላይ ያሉ ሌሎች ዓምዶች ለተለያዩ ቀለሞች የካቶድ እና የአኖድ ቮልቴጅ ጥምረቶችን ያሳያል።

እንደምናየው በፒን ግዛት ላይ እርስ በእርስ መደጋገፍ አለ። ያለ አንዳንድ ማዕቀፍ መፍታት ቀላል አይሆንም። እና ያ የቃለ -መጠይቅ ቤተ -መጽሐፍት በጥሩ ሁኔታ የሚመጣው እዚያ ነው።

ደረጃ 3 - ፕሮግራም ማውጣት። ማክሮዎች እና ትርጓሜዎች

ፕሮግራሚንግ። ማክሮዎች እና ትርጓሜዎች
ፕሮግራሚንግ። ማክሮዎች እና ትርጓሜዎች

በፕሮግራም ደረጃዎች ውስጥ ምሳሌ በትንሹ ቀለል ያለ ስሪት ይወክላል። ፕሮግራሙ አጭር ነው ፣ እና አንዳንድ ምሳሌያዊ ፍቺ በግልፅ ቋሚዎች ተተክቷል።

ከመጀመሪያው እንጀምር። ፕሮግራሙ ከአትሜል ስቱዲዮ ጋር የሚመጡ ፋይሎችን እንዲሁም የቤተመጽሐፍት ራስጌን እንደገና ማንበብን ያካትታል። በመቀጠልም የፒን ደረጃዎችን ለመቆጣጠር ሁለት ማክሮዎች እና አንዳንድ ትርጓሜዎች ለፒን ምልክቶች አመክንዮአዊ ስሞችን ይሰጣሉ። እስካሁን ምንም የተለየ ነገር የለም።

ደረጃ 4 - ፕሮግራም ማውጣት። ዋና ሉፕ

ፕሮግራሚንግ። ዋና ሉፕ
ፕሮግራሚንግ። ዋና ሉፕ

ከዚያ ዋናውን ሂደት ምን እንደ ሆነ ለማየት መጨረሻውን እንመልከት።

አንዳንድ የመነሻ ሥራዎችን ካከናወኑ በኋላ የተግባር ዋና ተግባር እስከመጨረሻው ይቆያል። በዚህ ሉፕ ውስጥ የሚከተሉትን ደረጃዎች ያደርጋል

  • ለግራ ኤልኢዲ የዕለት ተዕለት እንቅስቃሴን ይጠይቃል። አንዳንድ የፒን ቮልቴጅን ይቀይራል.
  • ሁለት ሚሊሰከንዶች እንዲዘገዩ ያድርጉ። በፒን ቮልቴጅ ውስጥ ምንም ለውጥ የለም።
  • ለትክክለኛው ኤልኢዲ (ፕሮቶኮል) ፕሮቶተርን ይደግፋል። አንዳንድ የፒን ቮልቴጅን ይቀይራል.
  • 2 MS መዘግየት ያድርጉ። በፒን ቮልቴጅ ውስጥ ምንም ለውጥ የለም።

ደረጃ 5 - ፕሮግራሚንግ። ረዳት ተግባራት

ፕሮግራሚንግ. ረዳት ተግባራት
ፕሮግራሚንግ. ረዳት ተግባራት

ስለ protothreads ለመወያየት ከመጀመራችን በፊት አንዳንድ የረዳት ተግባሮችን መመልከት አለብን። በመጀመሪያ ልዩ ቀለም ለማዘጋጀት ተግባራት አሉ። እነሱ ቀጥተኛ ናቸው። የ LED ጨለማን (NoColor) ለማዘጋጀት እንደ የሚደገፉ ቀለሞች ብዛት (ሰባት) እና አንድ ተጨማሪ ተግባር ያሉ ብዙ ተግባራት አሉ።

እና በፕሮቶቴራፒ አሠራሩ በቀጥታ የሚጠራ አንድ ተጨማሪ ተግባር አለ። ስሙ DoAndCountdown () ነው።

በቴክኒካዊ መናገር እንዲህ ዓይነቱን ተግባር መጠቀም ግዴታ አይደለም ፣ ግን ምቹ ሆኖ አገኘሁት። ሦስት ክርክሮች አሉት -

  • ጠቋሚ ወደ ተግባር ቅንብር የ LED ቀለም (እንደ RedColor ወይም GreenColor ወይም ወዘተ)
  • የተገላቢጦሽ ቆጣሪ የመጀመሪያ እሴት - ይህ ተግባር በልዩ የፕሮቶተር ደረጃ ምን ያህል ጊዜ መጠራት እንዳለበት።
  • ቆጣሪን ለመቀልበስ ጠቋሚ። የተገላቢጦሽ ቁጥር 0 በሚለው ቀለም ላይ ለውጥ ሲኖር ፣ ስለዚህ በመጀመሪያ የመደጋገም ኮድ ለዚያ ቆጣሪ የመጀመሪያ እሴት ይመድባል ተብሎ ይገመታል። እያንዳንዱ ድግግሞሽ ቆጣሪ ከተቀነሰ በኋላ።

ተግባር DoAndCountdown () የተገላቢጦሽ ቆጣሪ ዋጋን ይመልሳል።

ደረጃ 6 - ፕሮግራም ማውጣት። Protothread የዕለት ተዕለት እንቅስቃሴዎች

ፕሮግራሚንግ። Protothread የዕለት ተዕለት እንቅስቃሴዎች
ፕሮግራሚንግ። Protothread የዕለት ተዕለት እንቅስቃሴዎች

እና እዚህ የመሠረት ማዕቀፍ ዋና ነው። ለቀላል ምሳሌነት በሦስት ደረጃዎች ብቻ የተገደበ - ለቀለም ለውጥ ወደ ቀይ ፣ ወደ አረንጓዴ እና ወደ ሰማያዊ።

ተግባር በሁለት ክርክሮች ተጠርቷል-

  • አወቃቀሩን ለመቃኘት ጠቋሚ። ዋናው መዋቅር ከመጀመሩ በፊት ያ መዋቅር በዋናነት ተጀመረ።
  • ቆጣሪን ለመቀልበስ ጠቋሚ። ዋናው ዙር ከመጀመሩ በፊት በዋናው ወደ 0 ተቀናብሯል።

የግራ ኤልኢዲ (ገባሪ) ገባሪ እንዲሠራ ተግባር ያዘጋጁ። ይህ ክፍል በማክሮዎች PT_BEGIN እና PT_END መካከል ነው። በእኛ ውስጥ ማክሮዎችን PT_WAIT_UNTIL ብቻ የሚደግም አንዳንድ ኮድ አለ። ይህ ማክሮዎች የሚከተሉትን ያከናውናል

  • የ DoAndCountdown ተግባር ጥሪ። ያ የተወሰነ ቀለም እንዲለቁ በ LED ካቶዶች ላይ ቮልቴጅ ያዘጋጃል።
  • የተመለሰው ውጤት ከ 0. ጋር ሲነፃፀር ሁኔታው ‹ሐሰተኛ› የፕሮቶትሬድ ተግባር ወዲያውኑ ይመለሳል እና ወደ ዋናው ዑደት ቁጥጥርን ይሰጣል።
  • በሚቀጥለው ጊዜ ፕሮቶትሬድ ሲጠራ እንደገና ከ PT_BEGIN በፊት ኮድን ያስፈጽማል ፣ ከዚያም ባለፈው ጊዜ በተመለሰበት በ PT_WAIT_UNTIL ማክሮዎች ውስጥ በቀጥታ ይዘልላል።
  • የ DoAndCountdown ውጤት 0. እስኪሆን ድረስ እንደዚህ ያሉ ድርጊቶች ተደግመዋል። በዚያ ሁኔታ መመለሻ ከሌለ ፕሮግራሙ በፕሮግራሙ ውስጥ ይቆያል እና የኮዱን ቀጣይ መስመር ያስፈጽማል። በእኛ ሁኔታ ቀጣዩ PT_WAIT_UNTIL ነው ፣ ግን በአጠቃላይ ሲናገር ማንኛውም ሲ ኮድ ሊሆን ይችላል።
  • በሁለተኛው የ PT_WAIT_UNTIL ተገላቢጦሽ የመጀመሪያ አፈፃፀም ላይ 0 ነው ፣ ስለሆነም DoAndCountdown () የአሠራር ሂደት ወደ መጀመሪያው እሴት ያዋቅረው። የተገላቢጦሽ ቆጣሪ 0 እስኪደርስ ድረስ ሁለተኛ ማክሮዎች እንደገና 250 ጊዜ ይገደላሉ።
  • ቁጥጥር ወደ PT_END ማክሮዎች እንደደረሰ የመዋቅር pt ሁኔታ እንደገና ይጀመራል። የ protothread ተግባር በሚቀጥለው ጊዜ የፕሮቶትሬድ ክፍል ከ PT_BEGIN በኋላ ወዲያውኑ የኮዱን መስመር ማከናወን ይጀምራል።

ለትክክለኛው ኤልኢዲ ተመሳሳይ የቅድመ -ንባብ ልምምድ አለ። በእኛ ምሳሌ ውስጥ የተለያዩ የቀለሞችን ቅደም ተከተል ብቻ ያስፈጽማል ፣ ግን እኛ በተለየ መንገድ ልናደርገው ከቻልን - በግራ እና በቀኝ የ LED አሠራር መካከል ጥብቅ ትስስር የለም።

ደረጃ 7: ውስጣዊ

ውስጣዊ
ውስጣዊ

ጠቅላላው ፕሮግራም ከ 200 መስመሮች ኮድ (ከአስተያየቶች እና ባዶ መስመሮች ጋር) ያነሰ እና ከ Attiny85 ኮድ ማህደረ ትውስታ ከ 20% በታች ይወስዳል። አስፈላጊ ከሆነ እዚህ ብዙ ተጨማሪ ተደጋጋሚ ልምዶችን መጠቀም እና ለእነሱ በጣም የተወሳሰበ አመክንዮ መመደብ ይቻላል።

Protothreads ቤተ -መጽሐፍት ቀላሉ የኮምፒተር ተጓዳኝ መርሃ ግብር ነው። ተጓዳኝ መርሃ ግብር መርሃግብሩን ወደ ሎጂካዊ ክፍሎች ለመከፋፈል የሚያስችል አቀራረብ ነው -አንዳንድ ጊዜ ኮሮተንስ ፣ አንዳንድ ጊዜ ክር ፣ አንዳንድ ጊዜ ተግባራት ይባላሉ። መርሆው ብዙ ወይም ያነሰ መስመራዊ እና ከሌሎች ክፍሎች ገለልተኛ ሆኖ እያንዳንዱ እንደዚህ ያለ ተግባር ተመሳሳይ የአሠራር ኃይልን ማጋራት ይችላል። ከሎጂካዊ እይታ አንፃር ተግባራት በአንድ ጊዜ ሊከናወኑ ይችላሉ።

ለላቁ ሥርዓቶች በስርዓተ ክወና ከርነል ወይም በአቀነባባሪው በሚተገበር የቋንቋ አሂድ የሚከናወኑትን እንደዚህ ያሉ ሥራዎችን ይቆጣጠራል። ነገር ግን የፕሮቶትሬድስ አፕሊኬሽን ፕሮግራም አድራጊ በፕሮቶታይድስ ማክሮ ቤተመፃሕፍት በተግባሮች የዕለት ተዕለት እንቅስቃሴ ውስጥ እና እንደዚህ ያሉ አሰራሮችን (ብዙውን ጊዜ ከዋናው ዑደት ውጭ) በመጥራት በእጅ ይቆጣጠራል።

ፕሮቶተር በትክክል እንዴት እንደሚሰራ ማወቅ ይፈልጉ ይሆናል? አስማት የት ተደበቀ? Protothreads በልዩ የ C ቋንቋ ባህሪ ላይ ይተማመናሉ - የ C መቀየሪያ ጉዳይ መግለጫ ከሆነ ወይም ሌላ እገዳ (እንደ ሆነ ወይም እንደ) ወደ ውስጥ ሊገባ ይችላል። ዝርዝሮች በአዳም ዱንክልስ ጣቢያ

የዚህ ፕሮጀክት የኤሌክትሮኒክስ የውስጥ አካላት በጣም ቀላል ናቸው። ከላይ ያለው ፎቶ የተወሰነ ፍንጭ ይሰጥዎታል። የተሻለ መስራት እንደምትችሉ እርግጠኛ ነኝ።

የሚመከር: