ኮድ ይፈልጉ

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

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

የመግጫ ቁልፎች በሁሉም ቦታ ይገኛሉ — በርቀት መቆጣጠሪያዎች፣ በቤት ውስጥ መሳሪያዎች እና በመቆጣጠሪያ ፓነሎች ውስጥ — እና አንድ ቁልፍ ከአንድ በላይ ስራ መስራት ሲጀምር፣ የመቀያየሪያ ሎጂክ ያስፈልግዎታል። ይህ ፕሮጀክት አንድ የመግጫ ቁልፍ በመጀመሪያ ግጫ ኤልኢዲን እንዲያበራ እና በሚቀጥለው ግጫ እንዲያጠፋ እንዴት ማድረግ እንደሚችሉ ያሳይዎታል፣ ስለዚህ መብራቱ በተወውበት ቦታ በትክክል ይቆያል። ይህ "አንድ ጊዜ ግጩ ለመቆለፍ፣ እንደገና ግጩ ለመልቀቅ" ባህሪ ሁልጊዜ የሚገነቡት የማንኛውም ምናሌ ቁልፍ፣ የኃይል ማብሪያ እና የሁኔታ መራጭ መሰረት ነው።

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

መቀያየሪያውን ከተረዱ በኋላ፣ ተመሳሳይ የኮድ ንድፍ ወደ እውነተኛ ሃርድዌር ይሰፋል። ለሚከተሉት ሊጠቀሙበት ይችላሉ፦

  • የኤሲ መብራት ወይም የጠረጴዛ መብራት የሚቆጣጠር ሪሌይን ከአንድ ፓነል ቁልፍ ማብሪያ/ማጥፊያ ማድረግ።
  • ሞተር ወይም ፓምፕ በአንድ ቁልፍ ከሁለት ይልቅ ማስጀመር እና ማቆም።
  • በአንድ መሳሪያ ላይ የአሰራር ሁኔታዎችን መዞር (ለምሳሌ፣ ቀርፋፋ / ፈጣን / ጠፍቷል)።
  • አንድ ሰው እስኪያረጋግጠው ድረስ በርቶ የሚቆይ የመቆለፊያ ማንቂያ መገንባት።
  • ሁኔታውን የሚያስታውስ የድምጽ ፕሮጀክት የዝምታ ቁልፍ መፍጠር።
  • በባትሪ ለሚሰራ መሳሪያ ለስላሳ የኃይል ማብሪያ ሆኖ ማገልገል፣ ሜካኒካል ማብሪያን በመተካት።

አሰልጣኙ ይህን ነጥብ በቪዲዮው ውስጥ በቀጥታ ይገልጻል (በቪዲዮ በ19:52)፦ ፕሮጀክቱ በእውነቱ ስለ ኤልኢዲ አይደለም — ስለ መቀያየሪያ ቴክኒክ ነው፣ ይህም ወደ ሪሌይ፣ የሞተር ድራይቨር ወይም ሌላ ውጤት ማመላከት ይችላሉ።

LED-5mm-green

ሃርድዌር እና አካላት

የክፍል ዝርዝሩ ሆን ተብሎ አነስተኛ ነው፣ ስለዚህ ገና ሲጀምሩ ጥሩ ፕሮጀክት ነው። የሚያስፈልግዎት፦

  • የአርዱዊኖ ቦርድ — Uno፣ Nano ወይም Mega ሁሉም ይሰራሉ።
  • አንድ ኤልኢዲ፣ 3 ሚሜ ወይም 5 ሚሜ፣ ማንኛውም ቀለም።
  • ለኤልኢዲ አንድ ተቃዋሚ፣ ከ200 Ω እስከ 1000 Ω ባለው መካከል። ጽሑፉ ምክንያቱን ያብራራል (በቪዲዮ በ03:49)፦ አንድ ኤልኢዲ በግምት 2 ቮልት ይቀንሳል እና ወደ 10 ሚሊአምፔር ይስባል፣ ስለዚህ በ5 ቮልት አቅርቦት ቀሪው 3 ቮልት በተቃዋሚው መቀነስ አለበት። የኦም ህግ 3 ቮልት ÷ 0.01 አምፔር = 300 Ω ይሰጣል፣ እና ከ300 Ω እስከ 1000 Ω ያለው ማንኛውም ነገር ይሰራል — ከፍተኛ እሴቶች በቀላሉ ኤልኢዲውን ደብዘዝ ያደርጉታል።
  • አንድ የመግጫ ቁልፍ ማብሪያ። ቪዲዮው ትንሹን ባለአራት ፒን ተጨባጭ አይነት እና ረዘም ያለ ፒን ያለውን ስሪት ያሳያል (በቪዲዮ በ12:43)። የመግጫ ቁልፍ ከሌለዎት፣ ተራ ማብሪያም ይሰራል — ወረዳውን የሚሰሩ እና የሚሰብሩትን ሁለት ተርሚናሎች ብቻ ያግኙ።
  • አንድ ብሬድቦርድ እና ጥቂት የዱፖንት ማገናኛ ሽቦዎች።

ከቪዲዮው አንድ ተግባራዊ ምክር (በቪዲዮ በ07:50)፦ ባለአራት ፒን ተጨባጭ ቁልፍ በውስጥ የተገናኙ ሁለት ጥንድ ፒኖች አሉት። በተከታታይነት ሁኔታ ውስጥ ያለ ሙልቲሜትር ተጠቅመው የትኞቹ ሁለት ፒኖች አብረው እንደሚጮሁ ያግኙ — እነዚህ የማብሪያው አንድ ጎን ናቸው። አንድ ጎን ከግቤት ፒን እና ሌላኛው ጎን ከመሬት ጋር ያገናኙ።

የሽቦ ማገናኛ መመሪያ

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 እና በመሬት መካከል ይገናኛል — ሌላ ምንም አያስፈልግም፣ ምክንያቱም ኮዱ የአርዱዊኖን ውስጣዊ የመሳብ ተቃዋሚ ያስችላል።

ያ ውስጣዊ የመሳብ ተቃዋሚ መረዳት ይገባዋል፦ ያለሱ፣ ተንሳፋፊ የግቤት ፒን የዘፈቀደ ጫጫታ ያነባል። INPUT_PULLUP ማስቻል ቁልፉ ክፍት ሳለ ፒኑን በ5 ቮልት ይይዛል፣ እና ቁልፉን መግጫ ወደ 0 ቮልት ይጎትተዋል። ለዚህም ነው ኮዱ የ LOW ንባብን "ተጭኗል" ብሎ የሚይዘው — ሎጂኩ ከውጫዊ ተቃዋሚ ጋር ካለ ተራ ወደ መሬት ማብሪያ ጋር ሲነጻጸር የተገላቢጦሽ ነው።

የኮድ ማብራሪያ

ሙሉው ስኬች ከዚህ ጽሑፍ በታች ይገኛል። እዚህ በእውነቱ መለወጥ በሚፈልጉት ክፍሎች ላይ እናተኩራለን።

በፋይሉ አናት ላይ፣ ሁለቱ የፒን ምደባዎች እንደ ቋሚዎች ተተርጉመዋል። ሽቦዎችዎን ወደ ተለያዩ ፒኖች ካዛወሩ፣ ማረም የሚያስፈልግዎት ቦታ ይህ ብቻ ነው፦

const int pushButtonPin = 2;//define a pin number for push button
const int LEDPin = 3;//define a pin that is connected to LED

ቀጥሎ ሦስቱ የሁኔታ ተለዋዋጮች ይመጣሉ። በተለምዶ እነዚህን መለወጥ አያስፈልግዎትም፣ ግን ምን እንደሚሰሩ ማወቅ ይረዳል፦

int pushButtonStatus = 0; // push value from pin 2
int lightStatus = 0;//light status
int pushed = 0;//push status

pushButtonStatus በየዑደቱ ውስጥ የቁልፉን ፒን ጥሬ ንባብ ያከማቻል። lightStatus ቁልፉ ፒን በቀድሞው ማለፊያ ላይ ያነበበውን ያስታውሳል፣ ይህም ስኬችው አዲስ ግፊትን የሚፈጠርበትን ጊዜ እንዲያውቅ እንጂ በተከታታይ ምላሽ እንዳይሰጥ ያደርጋል። pushed ትክክለኛው የመቀያየሪያ ባንዲራ ነው — በ0 እና 1 መካከል ይቀያየራል እና ኤልኢዲው መብራት ወይም መጥፋት እንዳለበት ይወስናል።

መቀያየሩ ራሱ በአንድ ጥሩ የሂሳብ ዘዴ ይከናወናል (በቪዲዮው በ18:30)። ባንዲራውን ከአንድ መቀነስ ይገለብጠዋል፦ 1 - 0 ውጤቱ 1 ይሆናል፣ 1 - 1 ደግሞ 0 ይሆናል። ስለዚህ አዲስ ግፊት በሚታወቅበት ቁጥር አንድ መስመር ሁኔታውን ይገለብጣል፦

pushed = 1-pushed;//toggle the pushed value
delay(100);//give some time for finger to press

የ100 ሚሴ መዘግየት ጣትዎ ከቁልፉ ላይ እንዲነሳ ጊዜ ለመስጠት ነው። ያለሱ፣ አንድ አካላዊ ግፊት ብዙ ጊዜ ሊቆጠር ይችላል። ቁልፉ አስተማማኝ ካልሆነ ወይም ጣትዎ ከተንቀጠቀጠ፣ ይህን እሴት ይጨምሩ (በቪዲዮው በ40:39)።

መቀያየሩን የሚቀሰቅሰው ሁኔታ የመላው ስኬች ቁልፍ ነው። የሚቀሰቅሰው ቁልፉ በማይጫንበት ጊዜ (HIGH፣ በፑል-አፕ ምክንያት) እና ቀድሞው ንባብ LOW ሲሆን ብቻ ነው — ማለትም ቁልፉ ከተጫነ በኋላ አሁን ሲለቀቅ ማለት ነው፦

if(pushButtonStatus == HIGH && lightStatus == LOW){
  pushed = 1-pushed;//toggle the pushed value
  delay(100);//give some time for finger to press
}

በመጨረሻም፣ ኤልኢዲው ከመቀያየሪያ ባንዲራው ይነዳል፣ እና የአሁኑ የቁልፍ ንባብ ለቀጣዩ ንጽጽር ይቀመጣል፦

lightStatus = pushButtonStatus;
if(pushed == HIGH){
  Serial.println("Light ON");
  digitalWrite(LEDPin, HIGH); //turn the LED ON
}else{
  Serial.println("Light OFF");
  digitalWrite(LEDPin, LOW);//turn the LED OFF
}

እንዲሁም ቁልፉን በሚጭኑበት ጊዜ የ"Light ON" እና "Light OFF" መልዕክቶችን ለመመልከት ሲሪያል ሞኒተርን በ9600 ባውድ መክፈት ይችላሉ።

ቀጥታ ማሳያ

በቪዲዮው ውስጥ (በቪዲዮው በ19:41) ባህሪውን በተግባር ማየት ይችላሉ፦ የመጀመሪያው ግፊት ኤልኢዲውን ያበራል እና ጣቱ ከተነሳ በኋላም በርቶ ይቆያል። ቀጣዩ ግፊት ደግሞ ያጠፋዋል፣ እና ጠፍቶ ይቆያል። ቁልፉን መያዝ አያስፈልግም፣ ይህ ደግሞ በዚህ ፕሮጀክት እና በትምህርት 98-2፦ በአርዱዊኖ ቁልፍ በመጠቀም ኤልኢዲን እንዴት ማብራት እና ማጥፋት እንደሚቻል በተሸፈነው ቀላል "ለማብራት ይያዙ" ቅጂ መካከል ያለው ትክክለኛው ልዩነት ነው።

ቪዲዮው እንዲሁ ኤልኢዲውን በሬሌ ሞጁል በመተካት በዋና ኃይል የሚሰሩ መሳሪያዎችን መቀያየር እንደሚቻል፣ ወይም በሞተር ድራይቨር በመተካት ሞተርን ማስጀመር እና ማቆም እንደሚቻል ይጠቁማል። የመቀያየሪያ ሎጂኩ አይለወጥም — የሚለወጠው የውጤት መሳሪያው ብቻ ነው።

በተመሳሳይ ቪዲዮ ውስጥ የሚታዩ ሌሎች ልዩነቶች — ኤልኢዲውን ማድበስበስ፣ የከርከሮ ንድፍ፣ የሚራመድ ብርሃን፣ የቮልቴጅ አሞሌ መለኪያ፣ እና የትራፊክ መብራት — እያንዳንዱ በራሱ ትምህርት ውስጥ ተሸፍኗል፣ ከዚህ በታች ተያይዟል።

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

ምዕራፎች

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

ምስሎች

push-button-and-finger
push-button-and-finger
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
ኤልኢዲ ከተቃዋሚ ጋር በብሬድቦርድ ላይ ከArduino ጋር ከግፊት ቁልፍ ጋር ተገናኝቶ
ኤልኢዲ ከተቃዋሚ ጋር በብሬድቦርድ ላይ ከArduino ጋር ከግፊት ቁልፍ ጋር ተገናኝቶ
935-Lessson 98-LED-3: Arduino code push button toggles LED ON/OFF
ቋንቋ: C++
This code has not been parsed yet. Please return to the admin panel to parse it.

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

ፋይሎች📁

Arduino ቤተ መዝገቦች (zip)

ተጠቃሚ መመሪያ