ኮድ ይፈልጉ

ትምህርት 14/31-1፡ Arduino Millis (ያለ መዘግየት) እና map ተግባራት | SunFounder Robojax

ትምህርት 14/31-1፡ Arduino Millis (ያለ መዘግየት) እና map ተግባራት | SunFounder Robojax

ይህ መመሪያ የ Arduino millis() ተግባርን ያስተዋውቃል፣ ይህም የጊዜ ላይ የተመሰረቱ ፕሮጀክቶች ያለ ማገድ ኮድ አፈጻጸም የሚፈልጉ መሰረታዊ መሳሪያ ነው። እንደ delay() ሙሉውን ፕሮግራም የሚያቆም ሳይሆን፣ millis() ቦርዱ ከጀመረበት ጊዜ ጀምሮ ያለፈውን ጊዜ ይከታተላል፣ ይህም የእርስዎ Arduino በብቃት ብዙ ተግባራትን እንዲያከናውን ያስችላል። ይህን ቴክኒክ ለመገንባት መጠቀም ይችላሉ፡

  • ሌላ ኮድ በሚሰራበት ጊዜ የሚሰሩ የማያግዱ LED ብልጭታዎች።
  • በሴንሰሮች ወይም አዝራሮች የሚቀሰቀሱ የጊዜ ተግባራት፣ ለምሳሌ አዝራር ከተጫነ ከ5 ሰከንድ በኋላ የሚጠፋ መብራት።
  • በመደበኛ ክፍተቶች የሴንሰር እሴቶችን የሚመዘግቡ ቀላል የውሂብ መመዝገቢያ ስርዓቶች።
  • ያለ መቀዝቀዝ ለግብዓቶች ምላሽ የሚሰጡ የተጠቃሚ በይነገጽ ስርዓቶች።
የ Sunfounder መኪና ተሰብስቧል

የ 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 የሚጠጋ እሴት ያሳያል። ከዚያም ቁጥሮቹ በፍጥነት ይጨምራሉ፣ የሚሊሰከንዶችን ቀጣይነት ያለው ቆጠራ ያሳያሉ። ይህ የቀጥታ እይታ ተግባሩ እየሰራ መሆኑን ያረጋግጣል እና ጊዜ እንዴት እንደሚከታተል ግልጽ የእይታ ግንዛቤ ይሰጣል።

ከዚህ ቪዲዮ ጋር የተያያዙ ፕሮጀክቶች

ምዕራፎች

  • [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 ተግባር መፍጠር

ምስሎች

Sunfounder car assembled
Sunfounder car assembled
Sunfounder car assembled
Sunfounder car assembled
916-Lesson 14/31-1: Arduino coding millis() example 1
ቋንቋ: C++
/*
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

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

ምንጮች እና ምንጮች

ፋይሎች📁

Arduino ቤተ መዝገቦች (zip)