સમય સાથે કામ કરવા માટે અર્દુનો પાસે કાર્યોનો સારો સંગ્રહ છે. તેમાંથી એક છે મિલિસ (), એક સૂચના કે જે તમને અરિડોનો બોર્ડ ચાલુ કર્યા પછી મિલિસેકન્ડમાં સમય આપે છે. આ વાહિયાત લાગે છે, અને તે જાણવાનું કામ કરે છે કે હોબ ક્યારે ચાલુ થયો, પરંતુ સત્ય એ છે કે તેમાં ઘણી વધુ વ્યવહારિક એપ્લિકેશનો છે.
પોર ઇઝેમ્પ્લો, તેનો ઉપયોગ બે કે તેથી વધુ ઇવેન્ટ્સ વચ્ચે વીતેલો સમય નક્કી કરવા માટે કરી શકાય છે, બટનના ઉછાળા (બાઉન્સ) ને ટાળવા વગેરે. કોડના નિર્ણાયક તબક્કામાં એક્ઝેક્યુશનનો સમય બતાવવા માટે પણ તેનો ઉપયોગ કરી શકાય છે, સુનિશ્ચિત કરીને કે પ્રોગ્રામ વાસ્તવિક સમયમાં કાર્ય કરશે.
મિલિસ () ફંક્શન
મેં પહેલેથી જ ઉલ્લેખ કર્યો છે તેમ, અરડિનો મિલિસ ફંક્શનનો ઉપયોગ સમયને માપવા માટે કરવામાં આવે છે, અને તે આવું કરે છે મિલિસેકંડ (એમએસ), તેથી તેનું નામ. બીજા શબ્દોમાં કહીએ તો, આ કાર્ય જ્યારે તમે તમારા સ્કેચમાં શામેલ કરો છો ત્યારે સંખ્યાત્મક મૂલ્ય તે યુનિટમાં વ્યક્ત કરાયેલ અસ્થાયી ડેટા છે.
તમારે જાણવું જોઈએ કે આ ચલની મહત્તમ કિંમત છે લાંબા સહી થયેલ, કે જે નિશાની વિના લાંબી છે. આ અગત્યનું છે, કારણ કે જો નાનો ઉપયોગ કરવામાં આવે તો તર્કશાસ્ત્ર સમસ્યાઓ .ભી થઈ શકે છે. આ ઉપરાંત, તમારે જાણવું જોઈએ કે તે 50 દિવસ (4.320.000.000 એમએસ) સુધી ટકી શકે છે, એકવાર તે મૂલ્ય પર પહોંચ્યા પછી તે ફરીથી પ્રારંભ થશે અને ફરી શૂન્યથી પ્રારંભ થશે.
બીજી વસ્તુ જે તમારે જાણવાની છે તે છે મિલિસ ફંક્શન પરિમાણો ઉપયોગ કરતું નથી.
અન્ય કામચલાઉ અરડિનો કાર્યો
અરડિનો પાસે તમારા કોડમાં ઉપયોગ કરવા માટે અન્ય સમય સંબંધિત કાર્યો છે. તેમાંથી એક છે પ્રખ્યાત વિલંબ (), પરંતુ હજી પણ વધુ છે:
- વિલંબ (): તે સૌથી વધુ વપરાયેલ અને તમામ આર્દુનો કાર્યોમાં સામાન્ય છે. તે મિલિસેકંડનો ઉપયોગ મિલિસ () તરીકે કરે છે. અને તે વળતર મૂલ્ય ન હોવા ઉપરાંત, સહી વિનાનાં લાંબા પણ હશે. તેનો ઉપયોગ મુખ્યત્વે ઘણા કાર્યક્રમો સાથે પ્રોગ્રામના અમલમાં વિરામ રજૂ કરવા માટે થાય છે.
- વિલંબમાઇક્રોસેકન્ડ્સ (): સ્કેચમાં ઓછો ઉપયોગ થાય છે, આ કિસ્સામાં તે હજી પણ સહી વિનાની લાંબી છે, વળતરની કિંમત સાથે નથી, અને આ કિસ્સામાં તે માઇક્રોસેકન્ડ્સનો ઉપયોગ કરે છે. હાલમાં, મહત્તમ મૂલ્ય 16383 ની ચોકસાઈથી અને 3μ લઘુત્તમ સાથે પ્રાપ્ત કરી શકાય છે. જો તમારે તેના કરતા વધુ લાંબી પ્રતીક્ષા કરવી પડશે, તો વિલંબ () નો ઉપયોગ કરવાની ભલામણ કરવામાં આવે છે.
- માઇક્રોસ (): આર્ડિનો બોર્ડ દ્વારા પ્રોગ્રામ ચલાવવાનું શરૂ કર્યું ત્યારથી માઇક્રોસેકન્ડ્સ ()s) માં પણ એક આંકડાકીય કિંમત આપે છે. તે છે, તે મિલિસ () ની જેમ છે, પરંતુ બીજા એકમ સાથે છે. હકીકતમાં, તે સહી ન કરેલા લાંબા પ્રકારનો પણ ઉપયોગ કરે છે અને તે પરિમાણોનો ઉપયોગ પણ કરતો નથી. પરંતુ તેમાં કેટલાક વધારાના તફાવતો છે, જેમ કે તે ફરીથી સેટ થાય છે અને જ્યારે તે 70 મિનિટ સુધી પહોંચે છે ત્યારે શૂન્યથી શરૂ થાય છે. તેના 4 of ઓના ઠરાવને ધ્યાનમાં રાખીને, અથવા બીજા શબ્દોમાં કહીએ તો, તે જે મૂલ્ય આપે છે તે હંમેશાં ચાર (4, 8, 12, 16,…) ની બહુવિધ હશે. યાદ રાખો કે 1000 μs બરાબર 1 એમએસ અને 1.000.000 બરાબર 1 સે.
અરીડોનો IDE માં મિલિસ () ઉદાહરણો
આ બધા શબ્દો છે, અને મિલિસ () ફંક્શનનો શ્રેષ્ઠ દેખાવ એ સરળ આર્ડુનો આઇડીઇ સ્કેચનાં કેટલાક ઉદાહરણો બતાવી રહ્યું છે જેથી તમે કેટલાક એપ્લિકેશનો જોઈ શકો અને કેસનો ઉપયોગ કરી શકો. તેથી અહીં કેટલાક છે વ્યવહારુ ઉદાહરણો...
1-ઉદાહરણ માટે ઉપયોગ સમજાવો મિલિસ () દ્વારા:
unsigned long inicio, fin, transcurrido; // Declarar las variables a usar void setup(){ Serial.begin(9600); //Iniciar la comunicación serial } void loop(){ inicio=millis(); //Consultar ms desde que inició la ejecución del sketch delay(1000); //Espera 1 segundo fin=millis(); //Consultar ms fin del sketch transcurrido=fin-inicio; //Calcula el tiempo desde la última lectura Serial.println(transcurrido); //Muestra el resultado en el monitor serial delay(500); //Esperar medio segundo }
બે સીરીયલ સંદેશાઓ વચ્ચેનો સમય માપો:
unsigned long tiempo1 = 0; //Declaramos las variables e iniciamos a 0 unsigned long tiempo2 = 0; unsigned long diferenciaTiempo = 0; void setup() { Serial.begin(9600); Serial.println("Envía la letra A/a por la terminal serial"); } void loop() { if(Serial.available() > 0){ char datoRecibido = Serial.read(); if(datoRecibido == 'A' || datoRecibido == 'a'){ tiempo1 = millis(); Serial.println("Envía la letra B/b por la terminal Serial"); } else if(datoRecibido == 'b' && datoRecibido == 'B'){ tiempo2 = millis(); diferenciaTiempo = tiempo1-tiempo2; Serial.print("El tiempo transcurrido entre el primer y último dato enviado es: "); Serial.print(diferenciaTiempo); } } }
બનાવો એલઇડી ઝબકવું મિલિસ સાથે ():
int estadoLed; //Almacena el estado del LED (Encendido o apagado) int periodo = 100; //Tiempo que está el LED encendido o apagado unsigned long tiempoAnterior = 0; //Almacena tiempo de referencia para comparar void setup() { pinMode(13,OUTPUT); //Configura el pin 13 como salida para el LED } void loop() { if(millis()-tiempoAnterior>=periodo){ //Evalúa si ha transcurrido el periodo programado estadoLed=!estadoLed; //Cambia el estado del LED cada 100ms digitalWrite(13,estadoLed); //Actualiza el estado del LED al actual tiempoAnterior=millis(); //Almacena el tiempo actual como referencia } }
બનાવો સરળ અનુક્રમ મિલિસ () નો ઉપયોગ કરીને વિવિધ સમય અંતરાલો પર સીરીયલ મોનિટર દ્વારા ટેક્સ્ટ મોકલવા:
#define INTERVALO_MENSAJE1 3000 #define INTERVALO_MENSAJE2 5000 #define INTERVALO_MENSAJE3 7000 #define INTERVALO_MENSAJE4 15000 unsigned long tiempo_1 = 0; unsigned long tiempo_2 = 0; unsigned long tiempo_3 = 0; unsigned long tiempo_4 = 0; void print_tiempo(unsigned long tiempo_millis); void setup() { Serial.begin(9600); } void loop() { if(millis() > tiempo_1 + INTERVALO_MENSAJE1){ tiempo_1 = millis(); print_tiempo(tiempo_1); Serial.println("Soy"); } if(millis() > tiempo_2 + INTERVALO_MENSAJE2){ tiempo_2 = millis(); print_tiempo(tiempo_2); Serial.println("Un mensaje"); } if(millis() > tiempo_3 + INTERVALO_MENSAJE3){ tiempo_3 = millis(); print_tiempo(tiempo_3); Serial.println("De"); } if(millis() > tiempo_4 + INTERVALO_MENSAJE4){ tiempo_4 = millis(); print_tiempo(tiempo_4); Serial.println("Esperanza"); } } void print_tiempo(unsigned long tiempo_millis){ Serial.print("Tiempo: "); Serial.print(tiempo_millis/1000); Serial.print("s - "); }
તમે તે માટે પહેલાથી જ જાણો છો વધુ માહિતી તમે ડાઉનલોડ કરી શકો છો પીડીએફમાં મફત આર્દુનો પ્રોગ્રામિંગ કોર્સ.