કોડ શોધો

પાઠ 14/31-1: આર્ડુઈનો મિલિસ (નો ડિલે) અને મેપ ફંક્શન્સ | સનફાઉન્ડર રોબોજેક્સ

પાઠ 14/31-1: આર્ડુઈનો મિલિસ (નો ડિલે) અને મેપ ફંક્શન્સ | સનફાઉન્ડર રોબોજેક્સ

આ માર્ગદર્શિકા 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() મૂલ્યને વેરિયેબલમાં સંગ્રહિત કરીને અને પછી મુખ્ય લૂપમાં તેની તુલના કરીને કરવામાં આવે છે.

map() ફંક્શનનો ઉપયોગ કરીને ટકાવારી મૂલ્ય સાથે LED ચલાવવું પાઠ 14/31-4: Arduino કોડિંગ 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)