ኮድ ይፈልጉ

ትምህርት 98-4፡ የኤልኢዲ ብርሃንን በአርዱዊኖ በመጠቀም ማድበስበስ፡ የብሩህነት ቁጥጥር

ትምህርት 98-4፡ የኤልኢዲ ብርሃንን በአርዱዊኖ በመጠቀም ማድበስበስ፡ የብሩህነት ቁጥጥር

ኤልኢዲዎች በሁሉም ቦታ ናቸው — አመልካቾች፣ ማሳያዎች፣ የጌጣጌጥ መብራት — ነገር ግን አብዛኞቹ ጀማሪዎች አንዱን በማብራትና በማጥፋት ብቻ ይቆማሉ። ይህ ፕሮጀክት ቀጣዩን እርምጃ ይወስዳል፡ የArduino አብሮ የተሰራውን PWM (Pulse Width Modulation) ችሎታ በመጠቀም ኤልኢዲን በተቀላጠፈ ሁኔታ ማብራትና ማጥፋት። ከሚያሰቃይ ብልጭታ ይልቅ፣ ተፈጥሯዊ የመጥለቅለቅ፣ የመተንፈስ ውጤቶችን እና ከንጹህ ዲጂታል ፒን አናሎግ የሚመስል ቁጥጥርን የሚመስል ቀስ በቀስ የመውጣትና የመውረድ ብሩህነት ያገኛሉ። ውጤቱን ወዲያውኑ ማየት ስለሚችሉ ከሁሉም አርኪ የመጀመሪያ ፕሮጀክቶች አንዱ ነው፣ እና ተመሳሳይ ቴክኒክ በእውነተኛ ምርቶች ውስጥ የሞተር ፍጥነት ቁጥጥርን፣ የድምጽ መጠንን እና የጀርባ መብራት መጥለቅለቅን ይደግፋል።

LED-5mm-green

መጥለቅለቅን ከተረዱ በኋላ፣ በሰፊው የተግባራዊ ግንባታዎች ላይ መተግበር ይችላሉ፡

  • በቀስታ የሚመታ ከማደናገር ብልጭታ ይልቅ በመሳሪያ ላይ "የመተንፈስ" የሁኔታ አመልካች መፍጠር
  • በአካባቢ ብርሃን ወይም በቀን ሰዓት ላይ ተመስርቶ የኤልኢዲ የሌሊት መብራትን በራስ-ሰር ማጥለቅለቅ
  • በLCD ወይም OLED ማሳያ ላይ የጀርባ መብራትን ብሩህነት መቆጣጠር
  • በብሩህነት ደረጃዎች መካከል በተቀላጠፈ ሽግግር የስሜት መብራት ወይም የጌጣጌጥ መብራቶችን መገንባት
  • በተፈጥሮ እንዲነቁ ቀስ በቀስ የሚያበራ ቀርፋፋ የፀሐይ መውጫ ማንቂያ ሰዓት ማስመሰል
  • ለትናንሽ ዲሲ ሞተሮች ወይም ማራገቢያዎች የፍጥነት ቁጥጥር መጨመር (ተመሳሳይ የPWM መርህ ይተገበራል)

ይህ አጋዥ ስልጠና የRobojax Arduino ደረጃ በደረጃ ኮርስ አካል ነው፣ እና በተለይ ከ10 ውስጥ ፕሮጀክት 4ን ይሸፍናል፡ Arduino በመጠቀም የኤልኢዲ መብራትን ማጥለቅለቅ። ሙሉው ፕሮግራም ከጽሑፉ በታች ለማውረድ ይገኛል።

ሃርድዌር እና አካላት

330_ohm_resistor
330 ohm 0.25 watt resistor

የዚህ ፕሮጀክት የክፍል ዝርዝር አነስተኛ ነው — ከዚህ በፊት ማንኛውንም የArduino ሥራ ካደረጉ፣ ምናልባት የሚፈልጉትን ሁሉ አስቀድመው ይኖሩዎታል፡

  • 1× የArduino ቦርድ (Uno, Nano, Mega, ወይም ማንኛውም ተኳሃኝ ቦርድ)
  • 1× ኤልኢዲ (5mm ወይም 3mm፣ ማንኛውም ቀለም)
  • 1× ተከላካይ (200Ω እስከ 1000Ω — ከ300Ω እስከ 1kΩ ክልል በደንብ ይሠራል)
  • ብሬድቦርድ እና የDuPont ዝላይ ሽቦዎች
  • ለፕሮግራም እና ለኃይል የUSB ገመድ

ስለ ኤልኢዲ አንድ አስፈላጊ ማስታወሻ፡ ረዘሙ እግር አኖድ (አዎንታዊ) ነው፣ አጠሩ እግር ደግሞ — ወይም በፕላስቲክ ሽፋኑ ላይ ጠፍጣፋ ጠርዝ ያለው ጎን — ካቶድ (አሉታዊ) ነው። ይህን መገልበጥ ማለት ኤልኢዲው በቀላሉ አያበራም፣ ስለዚህ ኃይል ከመስጠትዎ በፊት ሁለት ጊዜ ያረጋግጡ።

ለተከላካይ እሴት፣ ጽሑፉ ሒሳቡን በ (በቪዲዮ በ03:49) ያብራራል፡ የተለመደ ኤልኢዲ ወደ 2V ይቀንሳል እና በግምት 10mA ጅረት ይፈልጋል። በ5V አቅርቦት፣ ቀሪው 3V በተከላካዩ ላይ መቀነስ አለበት፣ R = V/I = 3V / 0.01A = 300Ω ይሰጣል። በተግባር፣ ከ300Ω እስከ 1000Ω ያለው ማንኛውም ነገር ይሠራል — ከፍተኛ እሴቶች ደካማ የሆነ ኤልኢዲ ብቻ ያመነጫሉ። ለመጥለቅለቅ፣ ይህ በእውነቱ ጥሩ ነው፣ ምክንያቱም ብሩህነትን በማንኛውም ሁኔታ እየቀያየሩ ነው።

የሽቦ ማገናኛ መመሪያ

Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw

ሽቦ ማገናኘቱ የሚቻል ያህል ቀላል ነው። የኤልኢዲው አኖድ በተከላካይ በኩል በArduino ላይ PWM የሚደግፍ ፒን ይገናኛል — በዚህ ፕሮጀክት ውስጥ ፒን 3። ካቶድ ከመሬት ጋር ይገናኛል።

ለምን በተለይ ፒን 3? ምክንያቱም ሁሉም የArduino ፒኖች PWM አይደግፉም። በአብዛኛዎቹ የArduino ቦርዶች ላይ፣ PWM የሚደግፉ ፒኖች በቲልዴ ምልክት (~) ምልክት ይደረግባቸዋል — በተለምዶ በUno ላይ ፒኖች 3, 5, 6, 9, 10, እና 11። PWM የማይደግፍ ፒን ከተጠቀሙ፣ analogWrite() ተለዋዋጭ ውጤት አያመነጭም፤ ኤልኢዲው በቃ በርቶ ወይም ጠፍቶ ይሆናል።

ወረዳውን እንደሚከተለው ያገናኙ፡

  1. ኤልኢዲውን ወደ ብሬድቦርድ ያስገቡ፣ የትኛው እግር አኖድ (ረዘም) እና የትኛው ካቶድ (አጠር/ጠፍጣፋ ጎን) እንደሆነ በማስተዋል።
  2. የኤልኢዲውን አኖድ በተከላካይ በኩል ከArduino ፒን 3 ጋር ያገናኙ።
  3. የኤልኢዲውን ካቶድ ከArduino GND ፒን ጋር ያገናኙ።
  4. Arduinoን በUSB አማካኝነት ከኮምፒውተርዎ ጋር ያገናኙ።

የኮድ ማብራሪያ

የዚህ ፕሮጀክት ስኬች በጥንታዊው የArduino "Fade" ምሳሌ ላይ የተመሠረተ ነው፣ ከጥቂት ማስተካከያዎች ጋር። እያንዳንዱን መስመር ከማብራራት ይልቅ፣ ለራስዎ ሙከራዎች ማስተካከል በሚፈልጉት ክፍሎች ላይ እናተኩር።

በተጠቃሚ የሚዋቀሩ ተለዋዋጮች

በኮዱ አናት ላይ፣ ሦስት ተለዋዋጮች ሙሉውን ባህሪ ይቆጣጠራሉ፡

int led = 3;           // the PWM pin the LED is attached to
int brightness = 0;    // how bright the LED is
int fadeAmount = 3;    // how many points to fade the LED by
  • led — ይህ ኤልኢዲው ከየትኛው ፒን ጋር እንደሚገናኝ ይገልጻል። ነባሪው ፒን 3 ነው፣ ነገር ግን ወደ ማንኛውም PWM የሚደግፍ ፒን (በቦርድዎ ላይ በ ~ ምልክት የተደረገበት) መቀየር ይችላሉ። ኤልኢዲውን ወደ ሌላ ፒን ካዛወሩ፣ እሴቱን እንዲመሳሰል ያዘምኑ።
  • brightness — ይህ የአሁኑ የብሩህነት ደረጃ ነው፣ ከ0 (ጠፍቷል) እስከ 255 (ሙሉ ብሩህነት) ይደርሳል። ኮዱ በ0 ይጀምረዋል፣ ነገር ግን በዚያ ክልል ውስጥ ከየትኛውም ቦታ መጀመር ይችላሉ።
  • fadeAmount — ይህ ለመጫወት በጣም አስደሳች ነው። በየዑደቱ ስንት የብሩህነት "ደረጃዎች" እንደሚወሰዱ ይቆጣጠራል። እንደ 3 ያለ ትንሽ እሴት ቀርፋፋ እና ቀስ በቀስ የሚሆን መዘመብ ያመጣል። እንደ 20 ያለ ትልቅ እሴት ኤልኢዲው በጣም በፍጥነት እንዲደበዝዝ እና እንዲጠፋ ያደርጋል። ጽሑፉ ይህንን በ (በቪዲዮ በ22:37) ያሳያል — ከ5 ወደ 20 መቀየር የውጤቱን ፍጥነት በከፍተኛ ሁኔታ ያፋጥናል።

መዘመብ እንዴት እንደሚሠራ

የመዘመብ ዋና ክፍል በ loop() ውስጥ ባሉ ሁለት መስመሮች ይከሰታል፦

analogWrite(led, brightness);
brightness = brightness + fadeAmount;

በየዑደቱ ማለፊያ የአሁኑ የብሩህነት እሴት analogWrite() በመጠቀም ወደ ኤልኢዲው ይጻፋል፣ ከዚያም ብሩህነቱ በ fadeAmount ይጨመራል። analogWrite() ተግባር አናሎግ ቮልቴጅን ለማስመሰል PWM ይጠቀማል — ፒኑን በፍጥነት ያበራል እና ያጠፋል፣ እና የበራበት ጊዜ ከጠፋበት ጊዜ ጋር ያለው ጥምርታ የሚታየውን ብሩህነት ይወስናል።

ብሩህነቱ 0 ወይም 255 ሲደርስ፣ ኮዱ የ fadeAmount ምልክትን በመገልበጥ አቅጣጫውን ይቀይራል፦

if (brightness <= 0 || brightness >= 255) {
  fadeAmount = -fadeAmount;
}

ይህ ነው ኤልኢዲው እንዲደበዝዝ፣ ከዚያም እንዲጠፋ፣ ከዚያም እንደገና እንዲደበዝዝ የሚያደርገው — ቀጣይነት ያለው የመተንፈስ ዑደት። በ loop መጨረሻ ላይ ያለው delay(30) የአኒሜሽኑን አጠቃላይ ፍጥነት ይቆጣጠራል። አጠር ያለ መዘግየት መዘመቡን ያፋጥናል፤ ረጅም መዘግየት ይቀንሰዋል።

በእሴቶቹ ላይ መሞከር

ሁለት ተለዋዋጮች በእይታ ውጤቱ ላይ ከፍተኛውን ቁጥጥር ይሰጡዎታል፦

  • fadeAmount ይጨምሩ ለፈጣን እና የበለጠ አስደናቂ መዘመብ። 10 ወይም 20 ይሞክሩ።
  • fadeAmount ይቀንሱ ለቀርፋፋ እና ለስላሳ የመተንፈስ ውጤት። 1 ወይም 2 ይሞክሩ።
  • delay() እሴትን ያስተካክሉ ፍጥነቱን ለመቀየር። ትናንሽ መዘግየቶች አጠቃላይ ዑደቱን ያፋጥናሉ፤ ትላልቅ መዘግየቶች ያራዝሙታል።

ትንሽ fadeAmount ከአጠር መዘግየት ጋር ማጣመር እጅግ በጣም ለስላሳ እና ተፈጥሯዊ የሆነ መዘመብ ያመጣል — ለአካባቢ መብራት በጣም ጥሩ። ትልቅ fadeAmount ከአጠር መዘግየት ጋር ፈጣን የልብ ምት ውጤት ይፈጥራል።

የቀጥታ ፕሮጀክት ማሳያ

ኮዱ ከተጫነ በኋላ፣ ኤልኢዲው ከጠፋ ወደ ሙሉ ብሩህነት ቀስ በቀስ ሲደበዝዝ፣ ከዚያም እንደገና ሲጠፋ ያያሉ፣ ያለገደብ ይደጋገማል። ጽሑፉ ነባሪውን ባህሪ በ (በቪዲዮ በ22:25) ያሳያል — ለስላሳ እና መካከለኛ ፍጥነት ያለው መዘመብ።

fadeAmount ወደ 20 ሲቀየር፣ ኤልኢዲው በጣም በፍጥነት ይደበዝዛል እና ይጠፋል — ልክ እንደ ብልጭታ። ወደ 3 ሲቀናበር፣ መዘመቡ በሚታይ ሁኔታ ረጅም ጊዜ ይወስዳል፣ ዘና ያለ እና ቀስ በቀስ የሚሆን ሽግግር ይፈጥራል። ይህ በቪዲዮው በ (በቪዲዮ በ23:02) በግልጽ ታይቷል።

የዚህ ፕሮጀክት ውበት የኮድ ለውጦችዎን ውጤት ወዲያውኑ ማየት መቻልዎ ነው — ምንም የሽቦ ለውጥ አያስፈልግም፣ ተለዋዋጮቹን ብቻ ያርትዑ እና እንደገና ይጫኑ። ይህ ጥብቅ የግብረመልስ ዑደት PWM እና ጊዜ እንዴት እንደሚገናኙ ግንዛቤ ለመገንባት ጥሩ መንገድ ያደርገዋል።

ይህንን ወደፊት በመውሰድ መዘመቡን ያለማቋረጥ እንዲሠራ ከመፍቀድ ይልቅ በግፊት ቁልፍ ማስነሳት ከፈለጉ፣ ይህ በተለየ አጋዥ ሥልጠና ተሸፍኗል — ከታች ያለውን ተዛማጅ ፕሮጀክቶች ክፍል ይመልከቱ።

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

ምዕራፎች

  • [00:00] የ10 የአርዱዊኖ ኤልኢዲ ፕሮጀክቶች አጠቃላይ እይታ
  • [01:22] የኮርሱ መግቢያ እና አስፈላጊ ክፍሎች
  • [02:29] ኤልኢዲዎችን መረዳት፡ ምልክቶች፣ ግርዶሽ እና ዓይነቶች
  • [03:49] የኤልኢዲ ተከላካይ እሴትን በኦም ህግ ማስላት
  • [05:53] ፕሮጀክት 1፡ ኤልኢዲ ማብራት እና ማጥፋት
  • [12:43] ፕሮጀክት 2፡ በግፊት ቁልፍ የኤልኢዲ ቁጥጥር
  • [17:13] ፕሮጀክት 3፡ በግፊት ቁልፍ ተቀያያሪ ኤልኢዲ
  • [20:12] ፕሮጀክት 4፡ ኤልኢዲ ማደብዘዝ — የኮድ ግምገማ
  • [22:25] የመዘመብ ማሳያ እና የመዘመብ ፍጥነትን ማስተካከል
  • [23:20] ፕሮጀክት 5፡ በግፊት ቁልፍ ማስነሻ ኤልኢዲ ማደብዘዝ
  • [27:32] ፕሮጀክት 6፡ የከርካሽ ኤልኢዲ ውጤት
  • [30:47] ፕሮጀክት 7፡ በ5 ኤልኢዲዎች የሚራመድ ብርሃን
  • [36:41] ፕሮጀክት 8፡ በግፊት ቁልፍ የሚቆጣጠር የሚራመድ ብርሃን
  • [42:25] ፕሮጀክት 9፡ በፖቴንሽዮሜትር የኤልኢዲ ቮልቴጅ ደረጃ መለኪያ
  • [49:25] ፕሮጀክት 10፡ የአርዱዊኖ ትራፊክ መብራት

ምስሎች

Arduino wiring for LED  with resistor
Arduino wiring for LED with resistor
Arduino schematic for LED
Arduino schematic for LED
Arduino wiring for two LEDs see saw
Arduino wiring for two LEDs see saw
Arduino schematic for two LEDs see saw
Arduino schematic for two LEDs see saw
LED-5mm-green
LED-5mm-green
330_ohm_resistor
330_ohm_resistor
936-Lessson 98-LED-4: Arduino code to fade the LED light
ቋንቋ: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

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

ፋይሎች📁

Arduino ቤተ መዝገቦች (zip)

ተጠቃሚ መመሪያ