ملیس (): ہر وہ چیز جو آپ کو اردوینو تقریب کے بارے میں جاننے کی ضرورت ہے

Arduino UNO ملی افعال

آرڈینو کے پاس وقت کے ساتھ کام کرنے کے ل functions افعال کا ایک اچھا ذخیرہ ہے۔ ان میں سے ایک ہے ملیس ()، ایک ایسی ہدایت جو آپ کو ارڈینو بورڈ آن کرنے کے بعد سے سیکنڈ میں سیکنڈ میں وقت دیتی ہے۔ یہ مضحکہ خیز معلوم ہوسکتا ہے ، اور یہ صرف یہ جاننے میں مدد دیتا ہے کہ کب ہوب آن ہوا تھا ، لیکن سچائی یہ ہے کہ اس میں بہت ساری عملی درخواستیں ہیں۔

کی طرف سے ایجیمپل، اس کا استعمال دو یا زیادہ واقعات کے مابین گذر جانے والے وقت کا تعی ،ن کرنے ، بٹن کے ڈیبونس (اچھال) سے بچنے وغیرہ کے لئے کیا جاسکتا ہے۔ یہ ضابطہ اخلاق کے اہم مراحل میں عملدرآمد کا وقت ظاہر کرنے میں بھی مدد فراہم کرسکتا ہے ، اس بات کو یقینی بناتا ہے کہ پروگرام حقیقی وقت پر کام کرے۔

ملیس () فنکشن

ملس تقریب Ardino

جیسا کہ میں پہلے ہی بتا چکا ہوں ، ارڈینو ملیس فنکشن وقت کی پیمائش کرنے کے لئے استعمال ہوتا ہے ، اور اس میں ایسا ہوتا ہے ملی سیکنڈ (ایم ایس)، لہذا اس کا نام دوسرے لفظوں میں ، یہ عددی قیمت جو اس فنکشن کے ذریعہ واپس آتی ہے جب آپ اسے اپنے خاکہ میں شامل کرتے ہیں تو اس یونٹ میں اظہار کیا گیا ایک عارضی ڈیٹا ہے۔

آپ کو معلوم ہونا چاہئے کہ اس متغیر کی زیادہ سے زیادہ قیمت ہے طویل دستخط شدہ، یعنی بغیر کسی نشان کے۔ یہ ضروری ہے ، کیونکہ اگر ایک چھوٹا سا استعمال کیا جاتا ہے تو ، منطق کی پریشانی ہوسکتی ہے۔ اس کے علاوہ ، آپ کو معلوم ہونا چاہئے کہ یہ 50 دن تک (4.320.000.000،XNUMX،XNUMX،XNUMX ایم ایس) تک چل سکتا ہے ، ایک بار جب اس قدر کو پہنچ جاتا ہے تو یہ دوبارہ شروع ہوجائے گا اور دوبارہ صفر سے شروع ہوجائے گا۔

ایک اور چیز جس کے بارے میں آپ جاننا چاہ have وہ ہے کہ ملیس کا کام پیرامیٹرز کا استعمال نہیں کرتا ہے.

دیگر عارضی ارودوو کے افعال

اردوینو کے پاس آپ کے کوڈ میں استعمال کرنے کے ل time دوسرے وقت سے متعلق کام ہوتے ہیں۔ ان میں سے ایک ہے مشہور تاخیر ()، لیکن اور بھی ہے:

  • تاخیر (): یہ تمام اردوینو افعال میں سب سے زیادہ استعمال اور عام ہے۔ اس میں ملیسیکنڈ بھی بطور ملیس () استعمال ہوتا ہے۔ اور یہ واپسی کی قیمت نہ ہونے کے علاوہ ، بغیر دستخط شدہ لمبا قسم کا بھی ہوگا۔ اس کا استعمال کسی پروگرام کی تعمیل میں وقفوں کو متعارف کروانے کے لئے کیا جاتا ہے ، جس میں بہت ساری درخواستیں ہیں۔
  • تاخیرمیکرو سیکنڈ (): یہ خاکوں میں کم استعمال ہوتا ہے ، اس معاملے میں یہ ابھی تک دستخط شدہ نہیں ہے ، واپسی کی کوئی قیمت نہیں ہے ، اور اس معاملے میں یہ مائیکرو سیکنڈ استعمال کرتا ہے۔ فی الحال ، زیادہ سے زیادہ قیمت 16383 ، اور کم سے کم 3μs کے ساتھ حاصل کی جاسکتی ہے۔ اگر آپ کو اس سے زیادہ انتظار کرنا پڑتا ہے تو ، اس میں تاخیر () استعمال کرنے کی سفارش کی جاتی ہے۔
  • مائکرو (): جب سے ارڈینو بورڈ نے اس پروگرام کو شروع کرنا شروع کیا ہے ، مائکرو سیکنڈ (μs) میں ایک عددی قیمت بھی واپس کرتا ہے۔ یعنی ، یہ ملیس () کی طرح ہے ، لیکن کسی اور یونٹ کے ساتھ۔ در حقیقت ، یہ بغیر دستخط شدہ لمبی قسم کا بھی استعمال کرتا ہے اور وہ پیرامیٹرز کو بھی استعمال نہیں کرتا ہے۔ لیکن اس میں کچھ اضافی اختلافات ہیں ، جیسے یہ دوبارہ شروع ہوتا ہے اور جب صفر سے شروع ہوتا ہے جب وہ 70 منٹ تک پہنچ جاتا ہے۔ اس کی 4 resolutions کی قرارداد کے بارے میں ، یا دوسرے الفاظ میں ، جو قدر اس کی واپسی ہوگی وہ ہمیشہ چار (4 ، 8 ، 12 ، 16 ،…) کی کثیر ہوگی۔ یاد رکھیں کہ 1000 μs 1 برابر اور 1.000.000،1،XNUMX XNUMX s کے برابر ہے۔

ارڈینو IDE میں ملیس () کی مثالیں

آرڈینوو IDE کا اسکرین شاٹ

یہ تمام الفاظ ہیں ، اور ملیس () فنکشن کا بہترین نظریہ اردوینو 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 - ");
}

آپ اس کے لئے پہلے ہی جانتے ہو مزید معلومات آپ ڈاؤن لوڈ کرسکتے ہیں پی ڈی ایف میں مفت اردوینو پروگرامنگ کورس.


مضمون کا مواد ہمارے اصولوں پر کاربند ہے ادارتی اخلاقیات. غلطی کی اطلاع دینے کے لئے کلک کریں یہاں.

تبصرہ کرنے والا پہلا ہونا

اپنی رائے دیں

آپ کا ای میل ایڈریس شائع نہیں کیا جائے گا. ضرورت ہے شعبوں نشان لگا دیا گیا رہے ہیں کے ساتھ *

*

*

  1. اعداد و شمار کے لئے ذمہ دار: میگل اینگل گاتین
  2. ڈیٹا کا مقصد: اسپیم کنٹرول ، تبصرے کا انتظام۔
  3. قانون سازی: آپ کی رضامندی
  4. ڈیٹا کا مواصلت: اعداد و شمار کو تیسری پارٹی کو نہیں بتایا جائے گا سوائے قانونی ذمہ داری کے۔
  5. ڈیٹا اسٹوریج: اوکیسٹس نیٹ ورکس (EU) کے میزبان ڈیٹا بیس
  6. حقوق: کسی بھی وقت آپ اپنی معلومات کو محدود ، بازیافت اور حذف کرسکتے ہیں۔