ትምህርት 14/31-1፡ Arduino Millis (ያለ መዘግየት) እና map ተግባራት | SunFounder Robojax
ይህ መመሪያ የ Arduino millis() ተግባርን ያስተዋውቃል፣ ይህም የጊዜ ላይ የተመሰረቱ ፕሮጀክቶች ያለ ማገድ ኮድ አፈጻጸም የሚፈልጉ መሰረታዊ መሳሪያ ነው። እንደ delay() ሙሉውን ፕሮግራም የሚያቆም ሳይሆን፣ millis() ቦርዱ ከጀመረበት ጊዜ ጀምሮ ያለፈውን ጊዜ ይከታተላል፣ ይህም የእርስዎ Arduino በብቃት ብዙ ተግባራትን እንዲያከናውን ያስችላል። ይህን ቴክኒክ ለመገንባት መጠቀም ይችላሉ፡
- ሌላ ኮድ በሚሰራበት ጊዜ የሚሰሩ የማያግዱ LED ብልጭታዎች።
- በሴንሰሮች ወይም አዝራሮች የሚቀሰቀሱ የጊዜ ተግባራት፣ ለምሳሌ አዝራር ከተጫነ ከ5 ሰከንድ በኋላ የሚጠፋ መብራት።
- በመደበኛ ክፍተቶች የሴንሰር እሴቶችን የሚመዘግቡ ቀላል የውሂብ መመዝገቢያ ስርዓቶች።
- ያለ መቀዝቀዝ ለግብዓቶች ምላሽ የሚሰጡ የተጠቃሚ በይነገጽ ስርዓቶች።
የ millis() ተግባርን መረዳት
የ millis() ተግባር የ Arduino ቦርድ የአሁኑን ፕሮግራም መስራት ከጀመረበት ጊዜ ጀምሮ ያለፉትን ሚሊሰከንዶች ብዛት የሚመልስ አብሮ የተሰራ የ Arduino ትዕዛዝ ነው። በኃይል ሲበራ ከዜሮ ይጀምራል እና በየሚሊሰከንዱ ይጨምራል። የአሁኑን "የስራ ጊዜ" እሴት ለማግኘት ይህን ተግባር በኮድዎ ውስጥ በማንኛውም ቦታ መጥራት ይችላሉ። ለምሳሌ፣ ከ1 ሰከንድ በኋላ 1000 ይመልሳል፤ ከ5 ሰከንድ በኋላ 5000 ይመልሳል። ዋናው ጥቅሙ ኮድዎን አያቆምም፣ ስለዚህ ሌሎች ተግባራት መስራታቸውን ሲቀጥሉ ጊዜውን መፈተሽ ይችላሉ።
ለምን delay() ማስወገድ ይፈለጋል?
የ delay() ተግባር ፕሮግራምን ለማቆም ቀላል መንገድ ነው፣ ግን የሚያግድ ተግባር ነው። delay(5000) ሲጠሩ፣ Arduino ለ5 ሰከንድ ሌሎች ኮዶችን ሁሉ መስራት ያቆማል፣ የተገናኙ ክፍሎችን ሁሉ ያቀዘቅዛል። ይህ ለግብዓቶች ምላሽ መስጠት ወይም ውጤቶችን ያለማቋረጥ ማዘመን ለሚፈልጉ ፕሮጀክቶች ችግር ነው። millis() መጠቀም የተወሰነ ጊዜ ማለፉን የተቀረውን ፕሮግራም ሳያቆሙ እንዲፈትሹ ያስችልዎታል፣ ይህም ለብዙ ተግባራት ተስማሚ ያደርገዋል።
የሚያስፈልጉ ሃርድዌሮች
- የ Arduino ቦርድ (Uno፣ Mega፣ ወዘተ)
- ለፕሮግራም እና ለኃይል የ USB ገመድ
የሽቦ አገናኝ መመሪያ
ይህ ምሳሌ ምንም ውጫዊ ሽቦ አያስፈልገውም። Arduino ኮዱን ለመጫን እና የሴሪያል መቆጣጠሪያ ውጤትን ለማየት በUSB ከኮምፒውተርዎ ጋር መገናኘት ብቻ ያስፈልገዋል።
የኮድ ማብራሪያ
ይህ የመጀመሪያ ምሳሌ millis() እንዴት እንደሚሰራ ቀላል ማሳያ ነው። ኮዱ የሴሪያል መቆጣጠሪያውን ያስጀምራል እና የ millis() እሴትን ማለቂያ በሌለው ዑደት ያትማል።
void setup() {
Serial.begin(9600);//የሴሪያል መቆጣጠሪያን ያስጀምሩ
Serial.println("Introduction to millis");
delay(2000);
}
void loop() {
Serial.println(millis());
}
የ setup() ተግባር በ9600 ባውድ የሴሪያል ግንኙነትን ይጀምራል እና የእንኳን ደህና መጡ መልእክት ያትማል። እዚህ ያለው delay(2000) millis() ፕሮግራሙ ከሚሰራበት ጊዜ ጀምሮ መቁጠር እንደሚጀምር ለማሳየት ብቻ ነው። የ loop() ተግባር የ millis() የአሁኑን እሴት ያለማቋረጥ ያትማል። የሴሪያል መቆጣጠሪያውን ሲከፍቱ፣ ጊዜው በሚሊሰከንዶች በፍጥነት ሲጨምር ያያሉ። ይህ millis() ፈጽሞ የማያቆም ቆጣሪ መሆኑን ያሳያል፣ ለፕሮግራምዎ ቀጣይነት ያለው የጊዜ ማመሳከሪያ ይሰጣል።
ይህ መሰረታዊ የግንባታ ብሎክ ነው። በቪዲዮው ውስጥ፣ አስተማሪው የተወሰነ የኮድ ብሎክ ከማስፈጸም በፊት 5000 ሚሊሰከንዶች (5 ሰከንድ) ማለፋቸውን መፈተሽ በመሳሰሉ ከተወሰነ ጊዜ በኋላ ተግባራትን ለማስነሳት ይህን እሴት እንዴት መጠቀም እንደሚቻል ያሳያል። ይህ የሚደረገው የአሁኑን millis() እሴት በተለዋዋጭ ውስጥ በማከማቸት እና በዋናው ዑደት ውስጥ በማነፃፀር ነው።
LED ን በመቶኛ እሴት በ map() ተግባር መንዳት በ ትምህርት 14/31-4፡ Arduino coding map() ምሳሌ 1 ውስጥ ተካቷል።
የቀጥታ ፕሮጀክት ማሳያ
በቪዲዮው ውስጥ፣ አስተማሪው ይህን ኮድ ይጭናል እና የሴሪያል መቆጣጠሪያውን ይከፍታል። ውጤቱ ከመጀመሪያው የ2 ሰከንድ መዘግየት በኋላ መጀመሩን ያያሉ፣ ወደ 1999 የሚጠጋ እሴት ያሳያል። ከዚያም ቁጥሮቹ በፍጥነት ይጨምራሉ፣ የሚሊሰከንዶችን ቀጣይነት ያለው ቆጠራ ያሳያሉ። ይህ የቀጥታ እይታ ተግባሩ እየሰራ መሆኑን ያረጋግጣል እና ጊዜ እንዴት እንደሚከታተል ግልጽ የእይታ ግንዛቤ ይሰጣል።
ከዚህ ቪዲዮ ጋር የተያያዙ ፕሮጀክቶች
- ትምህርት 14/31-2፡ Arduino coding millis() ምሳሌ 2 ከክስተት ጋር
- ትምህርት 14/31-3፡ Arduino coding millis() ምሳሌ 3 ከግፊት አዝራር ጋር
- ትምህርት 14/31-4፡ Arduino coding map() ምሳሌ 1
- ትምህርት 14/31-5፡ Arduino coding map() ምሳሌ 2
ምዕራፎች
- [00:00] የ millis() መግቢያ
- [01:19] millis() ምንድን ነው እና ለምን መጠቀም ይፈለጋል
- [03:06] የ millis() ተግባራዊ ማሳያ
- [05:46] የጊዜ ተግባርን ለማስነሳት millis() መጠቀም
- [08:29] ከግፊት አዝራር ጋር ምሳሌ
- [12:14] የላቀ የግፊት አዝራር የጊዜ ምሳሌ
- [17:20] የ map() ተግባር መግቢያ
- [19:47] ከLED ጋር ለ map() የኮድ ምሳሌ
- [22:41] ብጁ የ map ተግባር መፍጠር
/*
Lesson 14/31: Arduino coding millis() example 1
Get this code and watch video Download and resource page https://robojax.com/RJT597
YouTube video https://www.youtube.com/watch?v=lqgzQohNiIM
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
/*
* Example-1 of using millis() with Arduino
* Written by Ahmad Shamshiri on July 27, 2019
* in Ajax, Ontario, Canada
* Watch video instructio for millis() :https://youtu.be/u2HsiTS8niQ
*/
void setup() {
Serial.begin(9600);//initialize serial monitor
Serial.println("Introduction to millis");
delay(2000);
}
void loop() {
Serial.println(millis());
}// loop end
Common Course Links
Common Course Files
እንደሚያስፈልግዎት ይችላል
-
አማዞንSunFounder Arduino Learning Kit on AliExpresss.click.aliexpress.com
-
አማዞን
-
አማዞን
-
አማዞን
ምንጮች እና ምንጮች
-
ሰነዶችDocumentation for SunFounder 3 in 1 IoT/Smart Car/Learning Kitdocs.sunfounder.com
-
ውስጥPurchase SunFounder's 3-in-1 Smart car learning kitsunfounder.com
ፋይሎች📁
Arduino ቤተ መዝገቦች (zip)
-
SunFounder's 3-in-1 Smart Car learning kit source code
3in1-kit-main-v2.zip12.80 MB