ትምህርት 98-6፡ የሚወዛወዝ LED ጨዋታ በአርዱዊኖ
የሲሶ ሌድ ፕሮጀክት በአርዱዊኖ ፕሮግራሚንግ ውስጥ ካሉት በጣም አስፈላጊ ፅንሰ-ሀሳቦች አንዱን የሚያስተምር የመጀመሪያ ደረጃ ልምምድ ነው፡ ሁለት ውጤቶችን በጊዜ ምት እንዲቀያየሩ ማድረግ። ሁለት ሌዶች፣ ሁለት ተቃዋሚዎች እና ጥቂት የጁምፐር ሽቦዎችን ብቻ በመጠቀም፣ አረንጓዴ ሌድ እና ቀይ ሌድ ተራ በተራ የሚበሩበት፣ የመጫወቻ ስፍራ ሲሶ ወደላይና ወደታች የሚደረገውን እንቅስቃሴ የሚመስል ዑደት ትገነባለህ። ቀላል ግንባታ ነው፣ ግን በሁሉም የአርዱዊኖ ስኬች ውስጥ የሚታዩትን ዋና ዋና የግንባታ ክፍሎች — የፒን ፍቺዎች፣ የጊዜ ቋሚዎች እና ተከታታይ digitalWrite() ጥሪዎችን — ያስተዋውቃል።
የሲሶ ንድፍ በእውነቱ "አንድ ነገር አብራ፣ አጥፋ፣ ሌላውን አብራ፣ አጥፋ፣ ድገም" ማለት ስለሆነ፣ ተመሳሳይ አወቃቀሩ ወደ በደርዘን የሚቆጠሩ ተግባራዊ አጠቃቀሞች ይስፋፋል። ምናብህን የሚያነሳሱ ጥቂት ሀሳቦች እነሆ፡
- ተለዋጭ አመልካች መብራቶች — በመቆጣጠሪያ ፓነል ላይ ወደፊትና ወደኋላ የሚቀያየር "ደህንነቱ የተጠበቀ / ማስጠንቀቂያ" ጥንድ።
- የባቡር ማቋረጫ ማስመሰያ — ባቡር ሲቃረብ በተለዋጭ የሚብሩ ሁለት መብራቶች።
- የሁለት መስመር አቅጣጫ ምልክት — ለመንገድ ወይም ለመኪና ማቆሚያ ቦታ "በዚህ በኩል ሂድ / በዚያ በኩል ሂድ" የቀስት ማሳያ።
- የበዓል ማስዋቢያ — ለበዓል የሚብራ ውጤት ቀይና አረንጓዴ ሌዶች ቦታ የሚቀያየሩበት።
- የመማሪያ መሠረት — እዚህ ያለው የጊዜ እና የቅደም ተከተል ክህሎት በኋላ ለትራፊክ መብራቶች፣ ለእግረኛ መብራቶች እና ለብዙ ሌድ አኒሜሽኖች የምትጠቀምበት ተመሳሳይ ነው።
የሲሶ ውጤት እንዴት እንደሚሠራ
ሌድ ብርሃን የሚለቅ ዳዮድ ነው፣ ምልክቱ ወደ መስመር የሚያመለክት ሶስት ማዕዘን ነው። ጠፍጣፋው መስመር ካቶድ (አሉታዊ) ነው፣ የሶስት ማዕዘኑ ጀርባ ደግሞ አኖድ (አዎንታዊ) ነው። በአካላዊ ሌድ ላይ፣ ረዘሙ እግር አኖድ ሲሆን አጠር ያለው፣ ጠፍጣፋ ጎን ያለው እግር ደግሞ ካቶድ ነው። አሁን ከአኖድ ወደ ካቶድ ይፈሳል፣ ስለዚህ አኖድ ወደ አርዱዊኖ ፒንህ ይገናኛል ካቶድ ደግሞ በተቃዋሚ በኩል ከመሬት ጋር ይገናኛል (በቪዲዮ 02:29 ላይ)።
ተቃዋሚው አስፈላጊ ነው። አንድ የተለመደ ትንሽ ሌድ በግምት 2 V በላዩ ላይ እና ወደ 10 mA አሁን ይፈልጋል። አርዱዊኖህ 5 V ካቀረበ፣ ቀሪው 3 V በተቃዋሚው መወሰድ አለበት። የኦም ህግን በመጠቀም፣ R = V / I = 3 V / 0.01 A = 300 Ω። ከ300 Ω እስከ 1000 Ω ያለው ማንኛውም ነገር ይሠራል — ከፍተኛ እሴቶች ሌዱን ደካማ ብቻ ያደርጉታል (በቪዲዮ 03:49 ላይ)።
ለሲሶው፣ ሁለቱ ሌዶች በተመሳሳይ መንገድ ተገናኝተዋል፡ እያንዳንዱ አኖድ ወደ የራሱ የአርዱዊኖ ፒን ይሄዳል፣ እያንዳንዱ ካቶድ ደግሞ በራሱ ተቃዋሚ በኩል ወደ የጋራ መሬት ሀዲድ ይሄዳል። በሁለቱ መካከል ያለው ብቸኛው ልዩነት ከየትኛው ፒን ጋር እንደተገናኙ ነው።
ሃርድዌር እና አካላት
- 1 × የአርዱዊኖ ቦርድ (ኡኖ፣ ናኖ፣ ሜጋ ወይም ተመሳሳይ)
- 2 × ሌዶች — አንድ ቀይ፣ አንድ አረንጓዴ (ማንኛውም ሁለት ቀለሞች ይሠራሉ)
- 2 × ተቃዋሚዎች፣ 300 Ω እስከ 1000 Ω (220 Ω ወይም 330 Ω የተለመዱ ምርጫዎች ናቸው)
- 1 × ብሬድቦርድ
- የጁምፐር ሽቦዎች (የዱፖንት ሽቦዎች)
- ለፕሮግራሚንግ እና ለኃይል የUSB ገመድ
ያ ነው — ምንም የመግፊያ ቁልፎች፣ ምንም ፖቴንሽዮሜትሮች፣ ምንም ሴንሰሮች የሉም። ይህ ሆን ተብሎ በጣም ቀጭን የክፍል ዝርዝር ነው ስለዚህ ሙሉ በሙሉ በኮድ አመክንዮ ላይ ማተኮር ትችላለህ።
የሽቦ ማገናኛ መመሪያ
ሽቦ ማገናኛው ሲሜትሪካል እና ለመከተል ቀላል ነው። ሁለቱንም ሌዶች ወደ ብሬድቦርድ አስገባ። የአረንጓዴ ሌዱን አኖድ (ረዘሙ እግር) ከአርዱዊኖ ፒን 2 ጋር እና የቀይ ሌዱን አኖድ ከአርዱዊኖ ፒን 3 ጋር አገናኝ። እያንዳንዱ ካቶድ (አጠር ያለው እግር) ከራሱ ተቃዋሚ አንድ ጫፍ ጋር ይገናኛል፣ የሁለቱም ተቃዋሚዎች ሌላኛው ጫፍ ደግሞ ወደ አርዱዊኖ GND ፒን የሚሄድ የጋራ ሀዲድ ላይ ይቀላቀላል (በቪዲዮ 27:45 ላይ)።
ሁለቱም ሌዶች አንድ የጋራ መሬት ሀዲድ ስለሚጋሩ፣ ከብሬድቦርድ ወደ አርዱዊኖ የሚመለስ አንድ የመሬት ሽቦ ብቻ ያስፈልጋል። ሁለቱ የምልክት ሽቦዎች — አንዱ ወደ ፒን 2፣ አንዱ ወደ ፒን 3 — በሁለቱ ሌዶች መካከል የሚቀያየሩት ብቸኛዎቹ ግንኙነቶች ናቸው።
የኮድ ማብራሪያ
ስኬቹ ሆን ተብሎ አጭር ነው ስለዚህ እያንዳንዱ መስመር ትርጉም አለው። በእውነቱ ማስተካከል የምትፈልጋቸው ክፍሎች እነሆ፡
የፒን ፍቺዎች
const int greenLEDPin = 2;//ለአረንጓዴ ሌድ ፒን ይግለጹ
const int redLEDPin = 3;//ለቀይ ሌድ ፒን ይግለጹ
እነዚህ ሁለት ቋሚዎች ሌዶቹ ከየትኞቹ ፒኖች ጋር እንደተገናኙ ለአርዱዊኖ ይነግሩታል። ሌዶችህን ከተለያዩ ፒኖች ጋር ካገናኘህ — ለምሳሌ ፒን 8 እና ፒን 9 — መለወጥ ያለብህ ቦታ ይህ ብቻ ነው። const ቁልፍ ቃል ማለት እሴቱ ለፕሮግራሙ የህይወት ዘመን ቋሚ ነው እና በኋላ በአጋጣሚ ሊጻፍበት አይችልም ማለት ነው።
የጊዜ ቋሚ
const int ON_TIME = 500;ይህ ነጠላ እሴት እያንዳንዱ ኤልኢዲ ለምን ያህል ጊዜ እንደሚበራ በሚሊሰከንዶች ይቆጣጠራል። ነባሪው 500 ማለት እያንዳንዱ ኤልኢዲ ለግማሽ ሰከንድ ብርሃን ይሰጣል፣ ስለዚህ ሙሉ አረንጓዴ-ከዚያ-ቀይ ዑደት አንድ ሰከንድ ይወስዳል። ለፈጣን ብልጭታ ወደ 200 ዝቅ ያድርጉት፣ ወይም ለዘገምተኛ፣ ሆን ተብሎ የሚደረግ በአንድ ኤልኢዲ አንድ ሰከንድ ምት ወደ 1000 ከፍ ያድርጉት (በቪዲዮ በ30:17)። ሁለቱም ኤልኢዲዎች ይህን ቋሚ ስለሚጋሩ፣ ሁልጊዜ በተመሳሳይ ጊዜ ይቆያሉ — ኪራው ሚዛኑን ይጠብቃል።
ማዋቀር
በsetup() ውስጥ፣ ሁለቱ ፒኖች በpinMode() እንደ ውጤቶች ይገለጻሉ፣ እና ሲሪያል ማሳያው በ9600 ባውድ ይጀመራል ስለዚህ የኤልኢዲ ሁኔታ መልዕክቶች ሲንሸራተቱ ማየት ይችላሉ። ይህ ቦርዱ ሲበራ አንድ ጊዜ ይሰራል።
ዑደቱ
የloop() ተግባር ኪራው የሚከሰትበት ቦታ ነው። አራት ተግባሮችን በቅደም ተከተል ያከናውናል፡ አረንጓዴውን ኤልኢዲ ማብራት፣ ON_TIME ሚሊሰከንዶች መጠበቅ፣ ማጥፋት፣ ከዚያም ለቀዩ ኤልኢዲ ተመሳሳይ ማድረግ። ዑደቱ መጨረሻ ላይ ሲደርስ፣ በራስ-ሰር ከላይ ጀምሮ እንደገና ይጀምራል — ይህ አጠቃላይ የ"ኪራ" ባህሪ ነው። ምንም የሁኔታ ተለዋዋጭ እና ምንም የሚፈተሽ ሁኔታ የለም፣ ምክንያቱም ንድፉ ሙሉ በሙሉ ተከታታይ ነው።
ቀጥታ ፕሮጀክት እና ማሳያ
ኮዱ ከተጫነ በኋላ፣ አረንጓዴው ኤልኢዲ ለግማሽ ሰከንድ ሲበራ፣ ከዚያም ቀዩ ኤልኢዲ፣ ከዚያም እንደገና አረንጓዴ ሲበራ ያለማቋረጥ ያያሉ። ሲሪያል ማሳያውን መክፈት (Tools → Serial Monitor፣ ወይም Ctrl+Shift+M) ንድፉ ሲሰራ "Green LED ON" እና "Red LED ON" ተብለው ሲታተሙ ያሳያል፣ ይህም ጊዜው ከቀናበሩት ጋር መመሳሰሉን ለማረጋገጥ ምቹ መንገድ ነው።
ON_TIMEን ወደ 200 ቀይረው እንደገና መጫን ይሞክሩ — ኤልኢዲዎቹ በሚታይ ሁኔታ በፍጥነት ይቀያየራሉ። ወደ 1000 ያስቀምጡት እና ኪራው ዘገምተኛ፣ ሆን ተብሎ የሚደረግ ተለዋጭ ይሆናል። እንዲሁም አርዱዊኖውን ከUSB ለይተው ከባትሪ ወይም ከ5 V አስማሚ ኃይል መስጠት ይችላሉ፤ ስእሉ ቀድሞውኑ በቦርዱ ማህደረ ትውስታ ውስጥ ስለተከማቸ በተመሳሳይ መንገድ ይሰራል።
ከዚህ ቪዲዮ ተዛማጅ ፕሮጀክቶች
- ትምህርት 98-1፡ በአርዱዊኖ ኤልኢዲ እንዴት ማብራትና ማጥፋት እንደሚቻል
- ትምህርት 98-2፡ በአርዱዊኖ የግፊት ቁልፍ በመጠቀም ኤልኢዲ እንዴት ማብራትና ማጥፋት እንደሚቻል
- ትምህርት 98-3፡ በአርዱዊኖ የግፊት ቁልፍ በመጠቀም ተለዋጭ ኤልኢዲ እንዴት ማብራት/ማጥፋት እንደሚቻል
- ትምህርት 98-4፡ በአርዱዊኖ የኤልኢዲ ብርሃን ማድበስበስ፡ የብሩህነት ቁጥጥር
- ትምህርት 98-5፡ በአርዱዊኖ ቁልፍ ሲጫን ብርሃን ማድበስበስ
- ትምህርት 98-7፡ በአርዱዊኖ እና 5 ኤልኢዲዎች የሚራመድ ብርሃን
- ትምህርት 98-8፡ በአርዱዊኖ የግፊት ቁልፍ እና ኤልኢዲዎች የሚራመድ ብርሃን
- ትምህርት 98-9፡ በአርዱዊኖ የኤልኢዲ ቮልቴጅ ደረጃ መለኪያ ወይም በፖቴንሽዮሜትር የሚራመድ ብርሃን
- ትምህርት 98-10፡ የአርዱዊኖ የትራፊክ መብራት
ምዕራፎች
- [00:00] የ10 የአርዱዊኖ ኤልኢዲ ፕሮጀክቶች አጠቃላይ እይታ
- [01:22] የአርዱዊኖ ደረጃ በደረጃ ኮርስ መግቢያ
- [02:29] ኤልኢዲዎችን መረዳት፡ ምልክት፣ አኖድ እና ካቶድ
- [03:49] የኤልኢዲ ተከታታይ ተቃዋሚን በኦም ህግ ማስላት
- [27:32] የኪራ ኤልኢዲ ፕሮጀክት ማስተዋወቅ
- [27:45] ለኪራ ፕሮጀክት የወረዳ ንድፍ
- [28:28] የኪራ ኮድ ማብራራት
- [30:06] ኪራውን በተለያዩ ጊዜዎች ማሳየት
- [30:47] የሚራመድ ብርሃን ፕሮጀክት አጠቃላይ እይታ
- [36:41] በግፊት ቁልፍ የሚቆጣጠር የሚራመድ ብርሃን
- [42:25] በፖቴንሽዮሜትር የኤልኢዲ ቮልቴጅ አሞሌ መለኪያ
- [49:25] የአርዱዊኖ የትራፊክ መብራት ፕሮጀክት
This code has not been parsed yet. Please return to the admin panel to parse it.
እንደሚያስፈልግዎት ይችላል
-
አማዞንSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
አማዞን
-
አማዞን
ምንጮች እና ምንጮች
-
ሰነዶችDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
ውስጥ
ፋይሎች📁
Arduino ቤተ መዝገቦች (zip)
-
የSunFounder 3-በ-1 ስማርት መኪና የመማሪያ ኪት ምንጭ ኮድ
3in1-kit-main-v2.zip12.80 MB
ተጠቃሚ መመሪያ
-
SunFounder 3-in-1 Arduino Smart Car የመሰብሰቢያ መመሪያይህ ሰነድ የ SunFounder 3-in-1 Arduino Smart Car ደረጃ በደረጃ መሰብሰብን ያሳያል
SunFounder_car_assembly_manual.pdf1.20 MB