ዝርዝር ሁኔታ:

ሚሊስ () ጋር የአርዱዲኖ የጊዜ አሰጣጥ ዘዴዎች 4 ደረጃዎች
ሚሊስ () ጋር የአርዱዲኖ የጊዜ አሰጣጥ ዘዴዎች 4 ደረጃዎች

ቪዲዮ: ሚሊስ () ጋር የአርዱዲኖ የጊዜ አሰጣጥ ዘዴዎች 4 ደረጃዎች

ቪዲዮ: ሚሊስ () ጋር የአርዱዲኖ የጊዜ አሰጣጥ ዘዴዎች 4 ደረጃዎች
ቪዲዮ: በ30 ቀን እራስን መለወጥ Change Yourself in 30 Days 2024, ሀምሌ
Anonim
ሚሊዲ (አርዲኖ) የጊዜ አሰጣጥ ዘዴዎች ()
ሚሊዲ (አርዲኖ) የጊዜ አሰጣጥ ዘዴዎች ()

በዚህ ጽሑፍ ውስጥ ሚሊስን () እናስተዋውቃለን ፤ ተግባር እና የተለያዩ የጊዜ ምሳሌዎችን ለመፍጠር እንዲጠቀሙበት ያድርጉት።

ሚሊስ? ከከንፈር ማመሳከሪያዎች ጋር ምንም ግንኙነት የለውም… ተስፋዬ ሚሊ ለሺህዎች የቁጥር ቅድመ-ቅጥያ እንደሆነ ተገንዝበዋል። ያ የመለኪያ አሃድ በ 0.001 (ወይም አስር ወደ አሉታዊ 3 ኃይል) እያባዛ ነው።

የሚገርመው የእኛ የአርዱዲኖ ሥርዓቶች ከተቆጣጠሩት ረቂቅ ጅምር ጀምሮ የሚሊሰከንዶች ብዛት (በሺዎች ሴኮንድ) ይቆጠራሉ። -ያ ከዜሮ ወደ (2^32) -1። (2^32) -1 ፣ ወይም 4294967295 ሚሊሰከንዶች ወደ 49.71027-ያልተለመዱ ቀናት ይለወጣል።

አርዱinoኖ ዳግም ሲጀመር ቆጣሪው ዳግም ይጀመራል ፣ ከፍተኛውን እሴት ይደርሳል ወይም አዲስ ንድፍ ይሰቀላል። በተወሰነ ጊዜ ላይ የቆጣሪውን ዋጋ ለማግኘት ተግባሩን ብቻ ይደውሉ - ለምሳሌ -

ጅምር = ሚሊስ ();

የት መጀመር ያልተፈረመ ረዥም ተለዋዋጭ ነው። ሚሊስን () በተግባር ለማሳየት ለእርስዎ በጣም ቀላል ምሳሌ እዚህ አለ -

/ * ሚሊስ () ማሳያ */

ያልተፈረመ ረጅም ጅምር ፣ ተጠናቀቀ ፣ አል elaል ፤

ባዶነት ማዋቀር ()

{Serial.begin (9600); }

ባዶነት loop ()

{Serial.println («ጀምር…»); ጅምር = ሚሊስ (); መዘግየት (1000); ጨርሷል = ሚሊስ (); Serial.println ("ተጠናቀቀ"); አልpsል = የተጠናቀቀ-ጅምር; Serial.print (አልpsል); Serial.println ("ሚሊሰከንዶች አልፈዋል"); Serial.println (); መዘግየት (500); }

ሥዕላዊ መግለጫው የአሁኑን ሚሊስን ቆጠራ በጅምር ያከማቻል ፣ ከዚያ አንድ ሰከንድ ይጠብቃል ፣ ከዚያ የተጠናቀቀውን ሚሊስን ዋጋ እንደገና ያከማቻል። በመጨረሻም የዘገየውን ያለፈውን ጊዜ ያሰላል። በተከታታይ ማሳያ ማያ ገጽ መጣል ውስጥ ፣ በምስሉ ላይ እንደሚታየው የቆይታ ጊዜው ሁል ጊዜ በትክክል 1000 ሚሊሰከንዶች እንዳልሆነ ማየት ይችላሉ።

ደረጃ 1

ምስል
ምስል

በቀላሉ ለማስቀመጥ ፣ የ ሚሊስ ተግባር በአርዲኖዎ ልብ ውስጥ በአቲሜጋ ማይክሮ መቆጣጠሪያ ውስጥ የውስጥ ቆጣሪን ይጠቀማል። ይህ ቆጣሪ እያንዳንዱን የሰዓት ዑደት ይጨምራል - የሚከሰት (በመደበኛ አርዱinoኖ እና ተኳሃኝ) በሰዓት ፍጥነት በ 16 ሜኸ። ይህ ፍጥነት በአርዱዲኖ ሰሌዳ ላይ ባለው ክሪስታል (በ T16.000 የታተመበት የብር ነገር) ቁጥጥር ይደረግበታል።

ደረጃ 2

ምስል
ምስል

የክሪስታል ትክክለኛነት እንደ ውጫዊ የሙቀት መጠን እና እንደ ክሪስታል ራሱ መቻቻል ሊለያይ ይችላል። ይህ በተራው የእርስዎን ሚሊስ ውጤት ትክክለኛነት ይነካል። የአካባቢያዊ ተሞክሮ በሰዓት ትክክለኝነት ውስጥ መዘዋወሩ በሃያ አራት ሰዓት ጊዜ ውስጥ ሦስት ወይም አራት ሰከንዶች ያህል ሊሆን እንደሚችል ዘግቧል።

እንደ ክሪስታል ፋንታ የሴራሚክ ሬዞናተርን የሚጠቀም ሰሌዳ ወይም የራስዎን ስሪት የሚጠቀሙ ከሆነ ፣ እነሱ ትክክል እንዳልሆኑ እና ከፍ ያለ የመንሸራተት ደረጃዎችን እንደሚያስተዋውቁ ያስተውሉ። በጣም ከፍተኛ የሆነ የጊዜ ትክክለኛነት ደረጃ ከፈለጉ ፣ እንደ Maxim DS3231 ያሉ የተወሰኑ የሰዓት ቆጣሪ አይሲዎችን ያስቡ።

አሁን ለተለያዩ የጊዜ ተግባራት ተግባራት ሚሊሱን መጠቀም እንችላለን። በቀደመው ምሳሌ ንድፍ ላይ እንደተመለከተው ፣ ያለፈውን ጊዜ ማስላት እንችላለን። ይህንን ሀሳብ ወደፊት ለማራመድ ፣ ቀለል ያለ የሩጫ ሰዓት እንሥራ። ይህን ማድረግ እንደ አስፈላጊነቱ ቀላል ወይም ውስብስብ ሊሆን ይችላል ፣ ግን ለዚህ ጉዳይ ወደ ቀላል እንሄዳለን።

በሃርድዌር አተያይ ላይ ፣ በቅደም ተከተል ከዲጂታል ፒኖች 2 እና 3 ጋር ከተገናኙት 10k ohm መጎተት መከላከያዎች ጋር-ሁለት አዝራሮች-ጀምር እና አቁም። ተጠቃሚው ሲጫኑ ንድፉ ለ ሚሊስ ዋጋውን ያስተውላል - ከዚያ ማቆሚያው ከተጫነ በኋላ ንድፉ እንደገና የሚሊስን እሴት ያስተውላል ፣ ያለፈውን ጊዜ ያሰላል እና ያሳያል። ከዚያ ተጠቃሚው ሂደቱን ለመድገም ጅምርን መጫን ወይም ለተዘመነ ውሂብ ማቆም ይችላል። ንድፉ እዚህ አለ

/* ሚሊስን () በመጠቀም እጅግ በጣም መሠረታዊ የሩጫ ሰዓት; */

ያልተፈረመ ረጅም ጅምር ፣ ተጠናቀቀ ፣ አል elaል ፤

ባዶነት ማዋቀር ()

{Serial.begin (9600); pinMode (2 ፣ ግቤት); // የመነሻ ቁልፍ ፒን ሞዶ (3 ፣ ግቤት); // የማቆሚያ አዝራር Serial.println ("ለጅማሬ/ዳግም ማስጀመር 1 ተጫን ፣ 2 ላለፈው ጊዜ"); }

ባዶ ማሳያ ውጤት ()

{ተንሳፋፊ h ፣ m ፣ s ፣ ms; ለረጅም ጊዜ ያልተፈረመ; አልpsል = የተጠናቀቀ-ጅምር; h = int (አልpsል/3600000); በላይ = አል %ል%3600000; m = int (ከ/60000 በላይ); በላይ = ከ%60000 በላይ; s = int (በላይ/1000); ms = ከ%1000 በላይ; Serial.print ("ጥሬው ያለፈ ጊዜ:"); Serial.println (አልpsል); Serial.print ("ጊዜው ያለፈበት ጊዜ"); Serial.print (h, 0); Serial.print ("h"); Serial.print (m, 0); Serial.print ("m"); Serial.print (ዎች ፣ 0); Serial.print ("s"); Serial.print (ms, 0); Serial.println ("ms"); Serial.println (); }

ባዶነት loop ()

{ከሆነ (digitalRead (2) == ከፍተኛ) {start = millis (); መዘግየት (200); // ለማራገፍ Serial.println (“ተጀምሯል…”); } ከሆነ (digitalRead (3) == ከፍተኛ) {ጨርሷል = ሚሊስ (); መዘግየት (200); // ለዳግም ማሳያ ማሳያ ውጤት (); }}

የመዘግየቱ ጥሪዎች (ማብሪያ / ማጥፊያዎቹን) ለማራገፍ ያገለግላሉ - እነዚህ እንደ አማራጭ ናቸው እና አጠቃቀማቸው በእርስዎ ሃርድዌር ላይ የተመሠረተ ነው። ምስሉ የስዕሉ ተከታታይ ሞኒተሪ ውፅዓት ምሳሌ ነው - የሩጫ ሰዓቱ ተጀምሯል ፣ እና ከዚያ በጊዜ ወቅቶች ውስጥ ሁለት ጊዜ ተጭነው አዝራርን ይጫኑ።

ደረጃ 3 የፍጥነት መለኪያ…

Image
Image

በቋሚ ርቀት መጀመሪያ እና መጨረሻ ላይ ዳሳሽ ካለዎት ፍጥነት ሊሰላ ይችላል - ፍጥነት = ርቀት ÷ ጊዜ።

እንዲሁም ለጎማ የእንቅስቃሴ ቅርፅ ፣ ለምሳሌ ብስክሌት ፣ የፍጥነት መለኪያ መስራት ይችላሉ። በአሁኑ ጊዜ እኛ ለመረበሽ ብስክሌት የለንም ፣ ግን ይህንን ለማድረግ ሂደቱን መግለፅ እንችላለን - በጣም ቀላል ነው። (ማስተባበያ - በራስዎ አደጋ ወዘተ ያድርጉት)

በመጀመሪያ ደረጃ አስፈላጊውን የሂሳብ ትምህርት እንከልስ። የመንኮራኩሩን ዙሪያ ማወቅ ያስፈልግዎታል። ሃርድዌር - ዳሳሽ ያስፈልግዎታል። ለምሳሌ - የሸምበቆ መቀየሪያ እና ማግኔት። የሸምበቆ ማብሪያ / ማጥፊያ በመደበኛነት የሚከፈት አዝራር እንደሆነ ያስቡ እና እንደተለመደው በ 10 ኪ ኦኤም በሚጎትተው ወደታች ተከላካይ ያገናኙ።

ሌሎች የአዳራሽ ውጤት ዳሳሽ ሊጠቀሙ ይችላሉ-እያንዳንዳቸው ለራሳቸው)። ከሂሳብ ክፍል ያስታውሱ ፣ ዙሪያውን ለማስላት - ቀመሩን ይጠቀሙ - ክብ = 2πr r የት የክበብ ራዲየስ ነው።

አሁን የመንኮራኩር ዙሪያ አለዎት ፣ ይህ እሴት እንደ ‹ቋሚ ርቀታችን› ተደርጎ ሊወሰድ ይችላል ፣ እና ስለሆነም ፍጥነቱ በአንድ ሙሉ ማዞሪያ መካከል ያለፈውን ጊዜ በመለካት ሊሰላ ይችላል።

የእርስዎ አነፍናፊ-አንዴ ከተጫነ-እያንዳንዱን ሽክርክሪት የሚገፋው እንደተለመደው ክፍት አዝራር በተመሳሳይ ዘዴ እርምጃ መውሰድ አለበት። የእኛ ንድፍ ከእያንዳንዱ ዳሳሽ (ዳሳሽ) መካከል ያለውን ጊዜ ይለካል።

ይህንን ለማድረግ የእኛ ምሳሌ ዳሳሽ ውፅዓት ከዲጂታል ፒን 2 ጋር የተገናኘ ይሆናል - ፍጥነቱን ለማስላት ማቋረጥ ስለሚቀሰቀስ። ንድፉ በሌላ ፍጥነት I2C- በይነገጽ LCD ሞዱል ላይ ፍጥነቱን ያሳያል። ይህ ከአርዱዲኖ ቦርድ እስከ ኤልሲዲ ድረስ 4 ገመዶችን ብቻ ስለሚፈልግ I2C በይነገጽ የተጠቆመ ነው - አነስ ያሉ ሽቦዎች የተሻለ ናቸው።

ለማሰስዎ ንድፍ እዚህ አለ

/*መሰረታዊ የፍጥነት መለኪያ ሚሊስን በመጠቀም (); */

ለ “I2C” አውቶቡስ ኤልሲዲ “Wire.h” / ን ያካትቱ

#ለ "I2C" አውቶቡስ ኤልሲዲ ሞዱል "LiquidCrystal_I2C.h" // ያካትቱ - https://bit.ly/m7K5wt LiquidCrystal_I2C lcd (0x27, 16, 2); // ለ 16 chars እና ለ 2 የመስመር ማሳያ የ LCD አድራሻውን ወደ 0x27 ያዘጋጁ

ተንሳፋፊ ጅምር ፣ ተጠናቀቀ;

ተንሳፋፊ አለፈ ፣ ጊዜ; ተንሳፋፊ circMetric = 1.2; // የመንኮራኩር ዙሪያ ከአነፍናፊ አቀማመጥ (በሜትር) ተንሳፋፊ circIperial; // 1 ኪሎሜትር = 0.621371192 ማይሎች ተንሳፋፊ ፍጥነትን ፣ ፍጥነትን በመጠቀም // በሜትሪክ እና በንጉሠ ነገሥቱ ውስጥ የተሰላ የፍጥነት ቫልሶችን ይይዛል

ባዶነት ማዋቀር ()

{attachInterrupt (0 ፣ speedCalc ፣ RISING) ፤ አነፍናፊ (ዲጂታል) 2 ከፍተኛ (እያንዳንዱ የጎማ ሽክርክሪት) ጅምር = ሚሊስ (); // ማዋቀር LCD lcd.init (); // የ lcd lcd.backlight () ን ያስጀምሩ; // LCD backlight lcd.clear () ያብሩ; lcd.println ("የራስ ቁር ይልበሱ!"); መዘግየት (3000); lcd.clear (); Serial.begin (115200); circImperial = circMetric*.62137; // ለ MPH ስሌቶች ሜትሪክ ወደ ኢምፔሪያል ይለውጡ}

ባዶነት ፍጥነት Calc ()

{አልpsል = ሚሊስ ()-ጀምር; ጅምር = ሚሊስ (); speedk = (3600*circMetric)/አልpsል; // ኪሜ/ሰ ፍጥነት/= (3600*circImperial)/አልpsል። // ማይልስ በሰዓት}

ባዶነት loop ()

{lcd.setCursor (0, 0); lcd.print (int (speedk)); lcd.print ("ኪሜ/ሰ"); lcd.print (int (speedm)); lcd.print ("MPH"); lcd.setCursor (0, 1); lcd.print (int (ያለፈ)); lcd.print ("ms/rev"); መዘግየት (1000); ብልጭ ድርግም ለመቀነስ // ለግል ምርጫ ያስተካክሉ}

ያን ያህል እየተከናወነ አይደለም - መንኮራኩሩ አንድ አብዮትን በጨረሰ ቁጥር ከአነፍናፊው የሚመጣው ምልክት ከዝቅተኛ ወደ ከፍተኛ ይሄዳል - የተቋረጠውን ማቋረጫ ቀስቅሴ ተግባሩን ይደውላል ()።

ይህ ሚሊስን () ንባብ ይወስዳል እና ከዚያ አሁን ባለው ንባብ እና በቀድሞው ንባብ መካከል ያለውን ልዩነት ያሰላል - ይህ እሴት ርቀቱን የሚሸፍንበት ጊዜ ይሆናል (ይህም ከአነፍናፊው አንፃራዊ የመንኮራኩር ዙሪያ ነው - ውስጥ የተከማቸ

ተንሳፋፊ circMetric = 1.2;

እና በሜትር ይለካል)። በመጨረሻም ፍጥነቱን በኪ.ሜ/ሰ እና በ MPH ያሰላል። በማቋረጦች መካከል ንድፉ በኤልሲዲው ላይ የዘመነውን የፍጥነት መረጃ እንዲሁም የማወቅ ጉጉት ለማግኘት ለእያንዳንዱ አብዮት የጥሬ ጊዜ ዋጋን ያሳያል። በእውነተኛ ህይወት ማንም ሰው በብስክሌት ላይ ኤልሲዲ የሚጭን አይመስለኝም ፣ ምናልባት የ LED ማሳያ የበለጠ ተዛማጅ ይሆናል።

ይህ በእንዲህ እንዳለ ፣ ይህ ምሳሌ በሚከተለው አጭር ቪዲዮ ቅንጥብ ውስጥ እንዴት እንደሚሠራ ማየት ይችላሉ። በብስክሌት መንኮራኩር እና በሸምበቆ ማብሪያ/ማግኔት ጥምር ፋንታ የስኩዌር ሞገድ ውፅዓት ከተግባር ጀነሬተር ወደ ማቋረጫ ፒን አገናኝቼዋለሁ ፣ ስለዚህ እንዴት እንደሚሰራ ሀሳብ ማግኘት ይችላሉ።

ደረጃ 4

ያ ማለት የሚሊስን () አጠቃቀምን ለጊዜው ያጠቃልላል። እንዲሁም ማይክሮሶቹ () አሉ ፤ የማይክሮ ሴኮንድ የሚቆጠር ተግባር።

ስለዚህ እዚያ አለዎት - በአርዱዲኖ ዓለም በኩል ብዙ ችግሮች እንዲፈቱ የሚያስችል ሌላ ተግባራዊ ተግባር። እንደተለመደው ፣ አሁን የሚቆጣጠሩትን ነገር ለማግኘት ወይም ለሌሎች ሸንጎዎች መነሳት የእርስዎ እና የእርስዎ ሀሳብ ነው።

ይህ ልጥፍ በ pmdway.com ወደ እርስዎ አምጥቷል - ሁሉም ነገር ለአዘጋጆች እና ለኤሌክትሮኒክስ አፍቃሪዎች ፣ በዓለም አቀፍ ነፃ መላኪያ።

የሚመከር: