ኮድ ይፈልጉ

ትምህርት 98-5፡ ቁልፍ ሲጫን ብርሃን ማድበስበስ በአርዱዊኖ በመጠቀም

ትምህርት 98-5፡ ቁልፍ ሲጫን ብርሃን ማድበስበስ በአርዱዊኖ በመጠቀም

በዚህ ትምህርት በትእዛዝ የሚጠፋ ብርሃን ይገነባሉ፡ የግፊት ቁልፍን ይጫኑ እና ኤልኢዲ በሙሉ ብሩህነት ይጀምራል፣ ከዚያም ወደ ጠፋ ድረስ በቀስታ ይደበዝዛል። ይህ በአርዱዊኖ ውስጥ በጣም ጠቃሚ ከሆኑ የጀማሪ ንድፎች አንዱ ነው ምክንያቱም ዲጂታል ግብዓትን (ቁልፉን) ከPWM አናሎግ ውጤት (የኤልኢዲ ብሩህነት) ጋር ያጣምራል፣ እና አንድን ነገር በቀላሉ ማብራትና ማጥፋት ብቻ ሳይሆን የለውጡን ፍጥነት እና ለስላሳነት እንዴት እንደሚቆጣጠሩ ያስተምርዎታል።

LED with resistor on breadboard connected to Arduino with a push button
LED with resistor on breadboard connected to Arduino with a push button

በፍላጎት ላይ የሚደረግ መደብዘዝ በእውነተኛ ምርቶች ውስጥ በሁሉም ቦታ ይታያል። እዚህ የሚማሩትን በተግባር ለመጠቀም ጥቂት መንገዶች እነሆ፡

  • ለስላሳ ማጥፊያ አመልካች መብራቶች — መብራቱ በአንድ ጊዜ ከመጥፋት ይልቅ ቁልፍ ሲጫኑ በቀስታ ይደበዝዛል፣ ይህም በመሳሪያዎች እና በ3D-የታተሙ ማሸጊያዎች ላይ በጣም የተከበረ ይመስላል።
  • የእንቅልፍ / ዝግጁነት ሁነታ — አንድ ቁልፍ ይጫኑ እና ብሩህ የሁኔታ ኤልኢዲ ወደ ጥቁር ይደበዝዛል ስለዚህ በሌሊት አይረብሽዎትም፣ ወረዳው ግን ኃይል ይይዛል።
  • "ወደ ጥቁር መደብዘዝ" የመድረክ ወይም የሞዴል መብራት — አንድ ቁልፍ በድንገት ከመቋረጥ ይልቅ የኤልኢዲ ስትሪፕ ወይም ፓነል ለስላሳ መደብዘዝን ያስነሳል።
  • ባትሪ ቆጣቢ ግብረመልስ — የጊዜያዊ ቁልፍ ግፊት ብሩህ የማረጋገጫ ብልጭታ ይሰጥዎታል ከዚያም ይጠፋል፣ ስለዚህ ኤልኢዲ ለአጭር ጊዜ ብቻ ሙሉ በሙሉ ይበራል።
  • በይነተገናኝ ጥበብ እና ተጨማሪ መሳሪያዎች — በንክኪ የሚነሳ "የመተንፈስ" ውጤት፣ ለኮስፕሌይ፣ ለዲዮራማ ወይም ለሙዚየም ማሳያዎች ተስማሚ።

ዋናው ሃሳብ ቀላል ነው፡ ቁልፉ ለአርዱዊኖ "አሁን መደብዘዝ ጀምር" ይላል፣ እና አርዱዊኖ የኤልኢዲ ብሩህነትን ከ255 (ሙሉ) ወደ 0 (ጠፍቷል) በትንንሽ ደረጃዎች ይወርዳል። ደረጃዎቹ ትንንሽ ስለሆኑ እና በፍጥነት ስለሚከሰቱ፣ ዓይንዎ ከዘለላ ይልቅ ለስላሳ መደብዘዝን ያያል።

ከዚህ በፊት ኤልኢዲ አላደበዘዙም ከሆነ፣ መሰረታዊው የብሩህነት ቁጥጥር በትምህርት 98-4፡ አርዱዊኖን በመጠቀም የኤልኢዲ ብርሃን ማደብዘዝ፡ የብሩህነት ቁጥጥር ተሸፍኗል። ይህ ትምህርት የግፊት ቁልፍን እንደ ማስነሻ በመጨመር በዚያ መሰረት ላይ በቀጥታ ይገነባል።

ሃርድዌር እና አካላት

330_ohm_resistor
330_ohm_resistor

ይህ በጣም አነስተኛ ወጪ የሚጠይቅ ግንባታ ነው — እዚህ ያለው ሁሉም መደበኛ የመጀመሪያ ኪት ቁሳቁስ ነው፡

  • የአርዱዊኖ ቦርድ (Uno፣ Nano፣ Mega ወይም ማንኛውም ተኳሃኝ ቦርድ)
  • አንድ ኤልኢዲ (5 ሚሜ ወይም 3 ሚሜ፣ ማንኛውም ቀለም)
  • አንድ የግፊት ቁልፍ ማብሪያ (ጊዜያዊ፣ ባለ4-ፒን ታክታይል አይነት በደንብ ይሰራል)
  • ለኤልኢዲ አንድ ተቃዋሚ — ከ200 Ω እስከ 1000 Ω መካከል ያለ (ጥንታዊው 220 Ω ወይም 330 Ω ፍጹም ነው)
  • ብሬድቦርድ እና የዱፖንት መገጣጠሚያ ሽቦዎች
  • ለፕሮግራም ማድረግ የUSB ገመድ (እና ያለ ገመድ እንዲሰራ ከፈለጉ ባትሪ ወይም 5 ቮልት አስማሚ)

ስለ ኤልኢዲ ተቃዋሚ አጭር ማስታወሻ፡ ኤልኢዲ በአካባቢው 2 ቮልት እና ወደ 10 ሚሊአምፔር ጅረት ይፈልጋል። በ5 ቮልት አቅርቦት፣ ተቃዋሚው ቀሪውን 3 ቮልት መቀነስ አለበት፣ ስለዚህ የኦም ህግ ወደ 300 Ω ይሰጣል። ከ300 Ω እስከ 1000 Ω ያለ ማንኛውም ነገር ይሰራል — ከፍተኛ እሴቶች ኤልኢዲውን የበለጠ ደብዘዝ ያደርጉታል። ተቃዋሚ መጠቀም አማራጭ አይደለም፤ ያለሱ ኤልኢዲ ከመጠን በላይ ጅረት ይስባል እና ይቃጠላል።

የሽቦ ማገናኛ መመሪያ

Arduino schematic for LED with a push button switch
Arduino schematic for LED with a push button switch
Arduino wiring for LED with a push button switch
Arduino wiring for LED with a push button switch

ሽቦው ሆን ተብሎ አነስተኛ ነው። የኤልኢዲ አኖድ (ረዥሙ እግር) በተቃዋሚው በኩል ከዲጂታል ፒን 3 ጋር ይገናኛል፣ ካቶድው (አጭሩ እግር፣ ጠፍጣፋው ጎን በማሸጊያው ላይ) ደግሞ ወደ መሬት ይሄዳል። የግፊት ቁልፉ በዲጂታል ፒን 2 እና በመሬት መካከል ይገናኛል — የኮዱ የአርዱዊኖ ውስጣዊ ፑል-አፕን ስለሚያስችል ውጫዊ ፑል-አፕ ተቃዋሚ አያስፈልግም።

ለኤልኢዲ ግምታዊነት ትኩረት ይስጡ፡ የፕላስቲክ አካሉ ጠፍጣፋ ጎን እና አጭሩ እግር ካቶድን (አሉታዊ) ያመለክታሉ። ወደ ኋላ ካስገቡት፣ ኤልኢዲው በቀላሉ አይበራም — ምንም ጉዳት አይደርስም፣ ብቻ ዙሩት።

ለግፊት ቁልፉ፣ ባለ4-ፒን ታክታይል ማብሪያ እየተጠቀሙ ከሆነ፣ ፒኖቹ በውስጥ በጥንድ የተያዙ መሆናቸውን ያስታውሱ፡ ከአራቱ ፒኖች ሁለቱ ሁልጊዜ አንድ ላይ ተገናኝተዋል። ሲጫኑ የሚጮህ ጥንድ ለማግኘት ሙልቲሜትርን በቀጣይነት ሁነታ ይጠቀሙ፣ ከዚያም ከእያንዳንዱ ጎን አንድ ፒን ይጠቀሙ። አንደኛው ጎን ወደ ፒን 2፣ ሌላኛው ደግሞ ወደ መሬት ይሄዳል።

የኮድ ማብራሪያ

ስኬችው አጭር ነው፣ እና ሊቀይሩት የሚፈልጉት የሚመስል ሁሉም ነገር ማለት ይቻላል ከላይ ባሉት ጥቂት መስመሮች ውስጥ ይገኛል። በተጠቃሚ ሊዋቀሩ የሚችሉት ክፍሎች እነሆ፡

const int pushButtonPin = 2;//የፑሽ በተን ስዊች የሚገናኝበት ፒን
const int LEDPin = 3;//ኤልኢዲ የሚገናኝበት ፒን
const int fadeAmount = 10;    // ኤልኢዲው በምን ያህል ነጥቦች እንዲደበዝዝ
const int fadeSpeed = 5;//የመደብዘዝ ጊዜ በሚሊሰከንዶች። እሴቱ ትንሽ ሲሆን፣ መደብዘዙ ፈጣን ይሆናል

pushButtonPin እና LEDPin ለአርዱዊኖ ነገሮቹን ያገናኟቸው ፒኖች ምን እንደሆኑ በቀላሉ ይነግሩታል። በተኑን ወደ ፒን 4 ወይም ኤልኢዲውን ወደ ፒን 9 (PWM የሚደግፍ ፒን) ካዛወሩ፣ ከሽቦ አገናኝዎ ጋር እንዲመሳሰሉ እነዚህን ሁለት ቁጥሮች ብቻ ይቀይሩ። የኤልኢዲ ፒን PWM ማደገፍ አለበት — በኡኖ ላይ ይህ ማለት ፒኖች 3፣ 5፣ 6፣ 9፣ 10፣ ወይም 11 ማለት ነው — ምክንያቱም መደብዘዝ analogWrite() ይፈልጋል።

fadeAmount እያንዳንዱ የብሩህነት ደረጃ ምን ያህል ትልቅ እንደሆነ ይቆጣጠራል። ብሩህነት ከ0 እስከ 255 ይሄዳል፣ ስለዚህ fadeAmount 10 ማለት ኤልኢዲው በግምት በ25 ደረጃዎች ይደበዝዛል ማለት ነው። ትልቅ ቁጥር መደብዘዙን ወፍራምና ፈጣን ያደርገዋል፤ ትንሽ ቁጥር ደግሞ ለስላሳና ቀርፋፋ ያደርገዋል።

fadeSpeed በእያንዳንዱ ደረጃ መካከል ያለው መዘግየት በሚሊሰከንዶች ነው። ይህ ውጤቱ እንዴት ይሰማል ለሚለው በጣም አስፈላጊው መቆጣጠሪያ ነው። የ5 ሚሴ እሴት ፈጣንና ቀልጣፋ መደብዘዝ ይሰጣል፤ የ30 ሚሴ ወይም ከዚያ በላይ እሴት ደግሞ ቀርፋፋና ውብ መደብዘዝ ይሰጣል። ከfadeAmount ጋር ተዳምረው፣ እነዚህ ሁለት እሴቶች መደብዘዙን በትክክል ወደሚፈልጉት ባህሪ እንዲያስተካክሉ ያስችሉዎታል።

ስለ አንድ ውስጣዊ ተለዋዋጭ ማወቅም ጠቃሚ ነው፦

int brightness = 255;    // ኤልኢዲው ምን ያህል ብሩህ እንደሆነ
int pushButtonStatus = 0; // ከፒን 2 የፑሽ እሴት

brightness በ255 ይጀምራል፣ ማለትም በተኑን በሚጫኑ ቁጥር ኤልኢዲው በሙሉ ብሩህነት ይጀምራል። መደብዘዙ ከዝቅተኛ ነጥብ እንዲጀምር ከፈለጉ — ለምሳሌ፣ ግማሽ ብሩህነት — ይህንን ወደ 128 ይቀይሩት።

ሎጂኩ ራሱ እንዲህ ይሰራል፦ ሉፑ በተኑን ያነባል። ከተጫነ (LOW፣ በውስጣዊ ፑል-አፕ ምክንያት)፣ ብሩህነቱ ከዜሮ በላይ እስከሆነ ድረስ while ሉፕ ይሰራል። በዚያ ሉፕ ውስጥ አርዱዊኖ የአሁኑን ብሩህነት ወደ ኤልኢዲው ይጽፋል፣ fadeAmount ይቀንሳል፣ fadeSpeed ሚሊሰከንዶች ይጠብቃል፣ እና ይደግማል። በተኑ ጊዜ ሳይጫን ሲቀር፣ ኤልኢዲው በቀላሉ ወደ 0 ተጽፎ ጠፍቶ ይቆያል።

አንድ አስፈላጊ ዝርዝር፦ ውስጣዊው ፑል-አፕ ማለት ፒኑ በተኑ ማይጫን ጊዜ HIGH እና ሲጫን ጊዜ LOW ያነባል ማለት ነው። ለዚህም ነው ኮዱ ጭነትን ለመለየት LOW የሚፈትሸው። ወደ ውጫዊ ፑል-ዳውን ሪዚስተር ከቀየሩ፣ ያንን ንጽጽር ወደ HIGH መቀየር ይኖርብዎታል።

ቀጥታ ፕሮጀክት እና ማሳያ

አንዴ ከተጫነ፣ ባህሪው ወዲያውኑ ይታያል እና አርኪ ይሰጣል። በተኑን ይጫኑ እና ኤልኢዲው ወደ ሙሉ ብሩህነት ይዘላል፣ ከዚያም በሚቆጣጠሩት ጊዜ ውስጥ በሚታይ ሁኔታ እስከ መጥፋት ይደበዝዛል። በተኑን ይልቀቁ እና ኤልኢዲው ይጠፋል፤ እንደገና ይጫኑ እና መደብዘዙ ከሙሉ ብሩህነት እንደገና ይጀምራል።

በቪዲዮው ውስጥ መደብዘዙ በተለያዩ ቅንብሮች ታይቷል ስለዚህ ልዩነቱን ማየትና መስማት ይችላሉ። በfadeAmount = 20 መደብዘዙ ፈጣንና ወፍራም ነው — በጥቂት የሚታዩ ደረጃዎች ወደ ዜሮ ይደርሳል። ወደ fadeAmount = 10 መውረድ በእጅጉ ያለሰላስ ያደርገዋል፣ እና ወደ fadeAmount = 3 መሄድ መደብዘዙ በሚታይ ሁኔታ ረጅም ጊዜ እንዲወስድና ማለት ይቻላል ቀጣይነት ያለው እንዲመስል ያደርገዋል። የfadeSpeed እሴትም እኩል አስደናቂ ተጽዕኖ አለው፦ ወደ 1 ሚሴ ማስቀመጥ መደብዘዙን ማለት ይቻላል ፈጣን ያደርገዋል፣ ትልልቅ እሴቶች ግን ያራዝሙታል።

ይህንን ሙከራ ይሞክሩ፦ fadeAmount = 5 እና fadeSpeed = 30 ያስቀምጡ። ወደ እንቅልፍ የሚሄድ ብርሃን የሚመስል ቀርፋፋና ረጋ ያለ መደብዘዝ ያገኛሉ። ከዚያም ለጠንካራና ፈጣን መቆራረጥ fadeAmount = 50 እና fadeSpeed = 1 ያስቀምጡ። ሁለቱም "ስህተት" አይደሉም — ሁሉም ስለሚፈልጉት ስሜት ነው።

የዚሁ በተን የመቀያየር ባህሪ በተናጠል ትምህርት 98-3፦ በአርዱዊኖ የፑሽ በተን በመጠቀም ቶግል ኤልኢዲ እንዴት ማብራት/ማጥፋት እንደሚቻል ተሸፍኗል፣ ቀላሉ የጫን-አብራ ቅጂው ደግሞ ትምህርት 98-2፦ በአርዱዊኖ የፑሽ በተን በመጠቀም ኤልኢዲ እንዴት ማብራትና ማጥፋት እንደሚቻል ውስጥ አለ።

መደብዘዙ በጊዜያዊ ንክኪ ስለሚቀሰቀስ፣ ይህ ተመሳሳይ ዑደት ከኤልኢዲ ይልቅ ሪሌይ ወይም MOSFET ለመንዳት ተፈጥሯዊ ተስማሚ ነው — የ12 ቮልት መብራት፣ የሞተር ለስላሳ ጅምር፣ ወይም የማሞቂያ ኤለመንት ማሞቅን ማደብዘዝ ይችላሉ። በተኑ ብቻ ቀስቃሽ ነው፤ ምን እንደሚያደበዝዙ በእርስዎ ላይ ነው።

ከዚህ ቪዲዮ ተዛማጅ ፕሮጀክቶች

ምዕራፎች

  • [00:00] የ10 የLED ፕሮጀክቶች አጠቃላይ እይታ
  • [01:00] የArduino ደረጃ በደረጃ ኮርስ መግቢያ
  • [02:29] የLED መሠረታዊ ነገሮች፡ ምልክቶች፣ ግራቫይቲ እና ጅረት
  • [03:49] የLED ተከላካይን በኦም ህግ ማስላት
  • [05:53] ፕሮጀክት 1፡ LED ማብራት እና ማጥፋት
  • [12:43] ፕሮጀክት 2፡ LED ከመግፊያ ቁልፍ ጋር
  • [17:13] ፕሮጀክት 3፡ LEDን በመግፊያ ቁልፍ መቀያየር
  • [20:12] ፕሮጀክት 4፡ LEDን ማድበስበስ
  • [23:20] ፕሮጀክት 5፡ LEDን በመግፊያ ቁልፍ ማድበስበስ
  • [27:32] ፕሮጀክት 6፡ የእንደርደራ LED
  • [30:47] ፕሮጀክት 7፡ የሚራመድ ብርሃን
  • [36:41] ፕሮጀክት 8፡ የሚራመድ ብርሃን ከመግፊያ ቁልፍ ጋር
  • [42:25] ፕሮጀክት 9፡ የLED ቮልቴጅ ደረጃ መለኪያ
  • [49:25] ፕሮጀክት 10፡ የArduino የትራፊክ መብራት

ምስሎች

Arduino wiring for LED with a push button switch
Arduino wiring for LED with a push button switch
Arduino schematic for LED with a push button switch
Arduino schematic for LED with a push button switch
LED-5mm-green
LED-5mm-green
330_ohm_resistor
330_ohm_resistor
ኤልኢዲ ከተቃዋሚ ጋር በብሬድቦርድ ላይ ከArduino ጋር ከግፊት ቁልፍ ጋር ተገናኝቶ
ኤልኢዲ ከተቃዋሚ ጋር በብሬድቦርድ ላይ ከArduino ጋር ከግፊት ቁልፍ ጋር ተገናኝቶ
937-Lessson 98-LED-5: Arduino code to fade the LED when push button is pressed
ቋንቋ: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

እንደሚያስፈልግዎት ይችላል

ፋይሎች📁

Arduino ቤተ መዝገቦች (zip)

ተጠቃሚ መመሪያ