ኮድ ይፈልጉ

ትምህርት 98-2፡ በአርዱዊኖ በመጠቀም የግፊት ቁልፍ በመጠቀም ኤልኢዲን እንዴት ማብራትና ማጥፋት እንደሚቻል

ትምህርት 98-2፡ በአርዱዊኖ በመጠቀም የግፊት ቁልፍ በመጠቀም ኤልኢዲን እንዴት ማብራትና ማጥፋት እንደሚቻል

ይህ ፕሮጀክት አርዱዊኖን በመጠቀም ኤልኢዲን በግፊት ቁልፍ እንዴት መቆጣጠር እንደሚችሉ ያሳያል። ኤልኢዲው በራሱ እንዲብራ ከመፍቀድ ይልቅ፣ መቼ እንደሚበራ እርስዎ ይወስናሉ፦ ቁልፉን ተጭነው ይያዙ እና ኤልኢዲው ይበራል፣ ሲለቁት ይጠፋል። ይህ ከተራ የብልጭታ ስኬች በኋላ ተፈጥሯዊ ቀጣይ እርምጃ ነው፣ ምክንያቱም በሚሠሩት የአርዱዊኖ ፕሮጀክት ሁሉ ውስጥ የሚታዩ ሁለት ሀሳቦችን ያስተዋውቃል — ዲጂታል ግብዓትን ማንበብ፣ እና ያንን ግብዓት በኮድ ውስጥ ውሳኔ ለማድረግ መጠቀም።

all projects of lesson 98, breadbaors and components
all projects of lesson 98, breadbaors and components

እዚህ ያለው እውነተኛ ጠቀሜታ ማይክሮኮንትሮለር አካላዊውን ዓለም እንዴት እንደሚገነዘብ መማር ነው። የግፊት ቁልፍ ከሁሉም ቀላሉ የሰው ልጅ ግብዓት መሳሪያ ነው፣ ግን ተመሳሳይ ንድፍ — ግብዓትን አንብብ፣ ሁኔታን ፈትን፣ ውጤትን አሽከርክር — በ3ዲ ፕሪንተር ላይ የገደብ ስዊችን እንዴት እንደሚያነቡ፣ በደህንነት ስርዓት ላይ በር መከፈትን እንዴት እንደሚለዩ፣ ወይም ሞተርን ከመቆጣጠሪያ ፓነል እንዴት እንደሚጀምሩ በትክክል ተመሳሳይ ነው። ይህን አንድ ወረዳ ከተረዱ፣ ኤልኢዲውን በማንኛውም ነገር መተካት ይችላሉ።

ተመሳሳይ ቴክኒክ በመጠቀም ሊሠሩ የሚችሉ አንዳንድ ተግባራዊ ነገሮች እነሆ፦

  • በሚጫኑበት ጊዜ መብራት የሚያበራ ጊዜያዊ የበር ደወል ወይም የጥሪ ቁልፍ።
  • ቁልፉ ተይዞ እስከሚቆይ ድረስ ሪሌይን (እና የሚሠራውን ማንኛውንም ነገር) ኃይል የሚሰጥ "የሞተ ሰው ስዊች"።
  • ለማሽን በእጅ የሚሠራ የፍተሻ ቁልፍ፣ የጠቋሚ ኤልኢዲ ግብዓቱ መመዝገቡን የሚያረጋግጥበት።
  • ለሞተር ድራይቨር ወይም ፓምፕ የመጀመሪያ ቁልፍ፣ ኤልኢዲው እንደ ሁኔታ መብራት ሆኖ የሚያገለግልበት።
  • የመጀመሪያው ተጫዋች ሲጫን የሚያሸንፍ እና ኤልኢዲው አሸናፊውን የሚያሳውቅ ቀላል የጨዋታ ደወል።
  • በሴንሰር ፕሮጀክት ላይ ሁኔታው ንቁ እያለ የሚበራ የካሊብሬሽን ወይም "የመማሪያ" ቁልፍ።

ሃርድዌር እና አካላት

የክፍል ዝርዝሩ ሆን ተብሎ ትንሽ ነው፣ ለዚህም ነው ጥሩ የመጀመሪያ የግብዓት ፕሮጀክት የሚሆነው፦

  • የአርዱዊኖ ቦርድ — ኡኖ፣ ናኖ፣ ሜጋ፣ ወይም ማንኛውም ተኳኋኝ ቦርድ።
  • አንድ ኤልኢዲ፣ 5 ሚሜ ወይም 3 ሚሜ፣ በማንኛውም ቀለም።
  • ለኤልኢዲው አንድ ተቃዋሚ፣ ከ200 Ω እስከ 1000 Ω መካከል።
  • አንድ ጊዜያዊ የግፊት ቁልፍ ስዊች።
  • አንድ ብሬድቦርድ እና ጥቂት የዱፖንት ጁምፐር ሽቦዎች።
LED-5mm-amber
LED-5mm-amber

ተቃዋሚ ለምን እንደሚያስፈልግ እያሰቡ ከሆነ፣ ጽሑፉ ሒሳቡን ይዘረዝራል (በቪዲዮ 03:49 ላይ)። አንድ የተለመደ ኤልኢዲ በራሱ ላይ በግምት 2 ቮልት ይቀንሳል እና ወደ 10 ሚሊአምፔር ጅረት ይፈልጋል። በ5 ቮልት አቅርቦት፣ የቀረው 3 ቮልት በተቃዋሚው መቀነስ አለበት፣ ስለዚህ የኦም ሕግ R = 3 ቮልት / 0.01 አምፔር = 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 እና በመሬት መካከል ይገናኛል።

ማወቅ የሚገባው አንድ ዝርዝር፦ የግፊት ቁልፉ አራት እግሮች አሉት፣ ግን በውስጡ ጥንድ ጥንድ ሆነዋል። ሁለቱ እግሮች በቋሚነት እርስ በርስ የተገናኙ ናቸው፣ ሌሎቹ ሁለቱ ደግሞ በቋሚነት እርስ በርስ የተገናኙ ናቸው — ቁልፉን መጫን ሁለቱን ጥንዶች ያገናኛል። ሙልቲሜተር ካለዎት፣ ቁልፉ ሳይጫን ሳለ የትኞቹ እግሮች አስቀድመው እንደተገናኙ ለማወቅ የቀጣይነት (ቢፕ) ሁነታውን ይጠቀሙ፤ እነዚያ ሁለቱ መጠቀም የሌለብዎት ጥንድ ናቸው። ከሁለቱ ገለልተኛ ጥንዶች አንድ እግር ሁሉ ይምረጡ (በቪዲዮ 07:50 ላይ)።

330_ohm_resistor
330_ohm_resistor

ኮዱ እንዴት እንደሚሠራ

ስኬቹ አጭር ነው፣ እና ሁሉም ማለት ይቻላል ማስተካከል የሚችሉት ውቅር ነው። በላይኛው ላይ ያሉት ሦስቱ መስመሮች በትክክል የሚነኩዋቸው ናቸው፦

const int pushButtonPin = 2;//define a pin number for push button
const int LEDPin = 3;//define a pin that is connected to LED
const int delayLED = 0;//how long the LED should stay ON

pushButtonPin ቁልፉ የተገናኘበት ዲጂታል ፒን ነው። ቁልፉን ወደ ሌላ ፒን ካዛወሩ ይህን ይቀይሩ — አካላዊውን ሽቦ እንዲሁ ማዛወር አይርሱ።

LEDPin ኤልኢዲውን የሚያሽከረክረው ፒን ነው። ማንኛውም ዲጂታል ፒን ይሠራል፣ ግን ፒኖች 0 እና 1 በሴሪያል ግንኙነት ጥቅም ላይ እንደሚውሉ አስታውሱ፣ ስለዚህ ከእነሱ መራቅ ይሻላል።

delayLED በጣም አስደሳች ቅንብር ነው። ቁልፉን ከለቀቁ በኋላ LED ለምን ያህል ጊዜ እንደሚበራ ይቆጣጠራል፣ በሚሊሰከንዶች ይለካል። ወደ 0 ማስተካከል ጣትዎን ሲያነሱ ወዲያውኑ LED ይጠፋል ማለት ነው። ወደ 1000 ማስተካከል ከተለቀቀ በኋላ ለአንድ ሙሉ ሰከንድ LED እንዲበራ ያደርጋል፣ 5000 ደግሞ ለአምስት ሰከንዶች ያቆየዋል (በቪዲዮ 16:31 ላይ)። ይህ ነጠላ ቁጥር ፕሮጀክቱ እንዴት እንደሚሰማ ሙሉ በሙሉ ይለውጣል፣ እና በኮድ ውስጥ ያለ ተለዋዋጭ በቀጥታ ወደሚታይ ባህሪ እንዴት እንደሚተረጎም ለማየት ጥሩ መንገድ ነው።

በቅንብሩ ውስጥ ሌሎች ሁለት ነገሮች ልብ ሊባሉ ይገባል። በመጀመሪያ፣ የቁልፉ ፒን በተራ INPUT ፋንታ በINPUT_PULLUP ተዋቅሯል፦

pinMode(pushButtonPin, INPUT_PULLUP);//define a pin for push button switch

ይህ የArduino ውስጣዊ ፑል-አፕ ተቃዋሚን ያስችላል፣ ይህም ቁልፉ ጠቅ በማይደረግበት ጊዜ ፒኑን በተረጋጋ HIGH ደረጃ ላይ ይይዛል። ያለሱ፣ ተንሳፋፊ የግቤት ፒን የተሳሳተ የኤሌክትሪክ ጫጫታ ይይዛል እና የዘፈቀደ ንባቦችን ይሰጣል፣ እና ለማስተካከል ውጫዊ ተቃዋሚ ያስፈልግዎታል። ውስጣዊ ፑል-አፕ ሲነቃ፣ ሽቦ አሰራሩ ቀላል ሆኖ ይቆያል፦ የቁልፉ አንድ ጎን ከፒኑ፣ ሌላኛው ጎን ከመሬት ጋር። ቁልፉን ሲጫኑ፣ ፒኑ ወደ መሬት ይጎተታል እና LOW ያነባል (በቪዲዮ 14:08 ላይ)።

በሁለተኛ ደረጃ፣ የሴሪያል ማሳያው በ9600 ባውድ ተጀምሯል ስለዚህ የሁኔታ ለውጦችን በሚከሰቱበት ጊዜ ማየት ይችላሉ፦

Serial.begin(9600);//initialize the serial monitor
Serial.println("Robojax LED with push button");//print this text on Serial Monitor

በዋናው ሉፕ ውስጥ፣ አመክንዮው ቀላል if/else ነው። ኮዱ የቁልፉን ፒን ያነባል እና ከLOW ጋር ያወዳድራል። ቁልፉ ከተጫነ፣ የLED ፒን HIGH ይሆናል፣ "LED ON" የሚለው መልእክት ይታተማል፣ እና ስኬችው ለdelayLED ሚሊሰከንዶች ይጠብቃል። ቁልፉ ካልተጫነ፣ የLED ፒን LOW ይሆናል እና LED ይጠፋል። loop() ደጋግሞ ስለሚሰራ፣ ይህ ምርመራ በሰከንድ በሺዎች ይከሰታል፣ ስለዚህ ምላሹ ፈጣን ይመስላል።

ቀጥታ ማሳያ

delayLED ወደ 1000 ተቀናብሮ፣ ቁልፉን መጫን LED ያበራል እና ከለቀቁ በኋላ ለአንድ ሰከንድ ይቆያል። እሴቱን ወደ 5000 ዝቅ ያድርጉ እና LED ለአምስት ሰከንዶች ይቆያል — ከቁልፉ ርቀው መሄድ እና አሁንም ሲበራ ማየት የሚችሉበት ያህል ረጅም። ወደ 0 ያስተካክሉት እና LED ጣትዎን በትክክል ይከተላል፦ ጫን፣ ብርሃን፤ ልቀቅ፣ ጠፋ (በቪዲዮ 17:02 ላይ)።

ኮዱ ከተጫነ በኋላ፣ Arduino ከUSB መንቀል እና ከባትሪ ወይም ከ5 V አስማሚ ኃይል መስጠት ይችላሉ። ቦርዱ ለመስራት ኮምፒውተር አያስፈልገውም — ፕሮግራሙ በማህደረ ትውስታው ውስጥ ተከማችቶ በሚበራበት ጊዜ ሁሉ በራስ-ሰር ይጀምራል (በቪዲዮ 12:27 ላይ)።

ከአንድ ጠቅታ በኋላ LED እንዲቆይ እና በሚቀጥለው ጠቅታ እንዲጠፋ ከፈለጉ፣ ያ መቀያየር የሚባል የተለየ ባህሪ ነው፣ እና በትምህርት 98-3፦ Arduino በመጠቀም የመግፊያ ቁልፍ ያለው ተቀያያሪ LED እንዴት ማብራት/ማጥፋት እንደሚቻል ተሸፍኗል። የመግፊያ ቁልፉ ሽቦ አሰራር ተመሳሳይ ነው፣ ስለዚህ ይህን ትክክለኛ ዑደት እንደገና መጠቀም ይችላሉ።

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

ምዕራፎች

  • [00:00] በዚህ ቪዲዮ ውስጥ ያሉት 10 ፕሮጀክቶች አጠቃላይ እይታ
  • [01:00] የArduino ደረጃ በደረጃ ኮርስ መግቢያ
  • [02:29] LED ምን እንደሆነ፦ ምልክት፣ አኖድ፣ ካቶድ እና አካላዊ ቅርጽ
  • [03:49] የLED ተቃዋሚን በኦም ህግ ማስላት
  • [07:32] LED እና የመግፊያ ቁልፍን በብሬድቦርድ ላይ ማገናኘት
  • [08:50] ኮዱን ማብራራት፦ ፒኖች፣ ቅንብር እና ዋናው ሉፕ
  • [12:43] የመግፊያ ቁልፍ ማብሪያ እንዴት እንደሚሰራ
  • [13:22] የመግፊያ ቁልፉን ከፒን 2 እና ከመሬት ጋር ማገናኘት
  • [13:43] የኮድ ጉዞ፦ INPUT_PULLUP እና ቁልፉን ማንበብ
  • [16:14] ማሳያ፦ delayLED ከ1 ሰከንድ ወደ 5 ሰከንድ ወደ 0 መቀየር
  • [19:52] የመግፊያ ቁልፍ ተቀያያሪ ተግባራዊ አጠቃቀሞች

ምስሎች

2 pin tactile push button switch
2 pin tactile push button switch
Arduino wiring for LED  with resistor
Arduino wiring for LED with resistor
Arduino schematic for LED
Arduino schematic for LED
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
ሁሉም የትምህርት 98 ፕሮጀክቶች፣ ብሬድቦርዶች እና አካላት
ሁሉም የትምህርት 98 ፕሮጀክቶች፣ ብሬድቦርዶች እና አካላት
ሁሉም የትምህርት 98 ፕሮጀክቶች፣ ብሬድቦርዶች እና አካላት
ሁሉም የትምህርት 98 ፕሮጀክቶች፣ ብሬድቦርዶች እና አካላት
LED-5mm-amber
LED-5mm-amber
934-Lessson 98-LED-2: Arduino code push button to turn LED ON and OFF
ቋንቋ: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

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

ፋይሎች📁

Arduino ቤተ መዝገቦች (zip)

ተጠቃሚ መመሪያ