មីលីស ()៖ អ្វីៗទាំងអស់ដែលអ្នកត្រូវដឹងអំពីមុខងារ Arduino

Arduino UNO មុខងារមីលីលី

Arduino មានមុខងារល្អក្នុងការធ្វើការជាមួយពេលវេលា។ ម្នាក់ក្នុងចំនោមពួកគេគឺ មីលីស ()ការណែនាំដែលផ្តល់ឱ្យអ្នកនូវពេលវេលាគិតជាមិល្លីវិនាទីចាប់តាំងពីបន្ទះ Arduino ត្រូវបានបើក។ នេះមើលទៅដូចជាមិនសមហេតុផលទេហើយវាគ្រាន់តែជួយឱ្យដឹងថានៅពេលដែលដុំត្រូវបានបើកប៉ុន្តែការពិតគឺថាវាមានការអនុវត្តជាក់ស្តែងជាច្រើនទៀត។

ដោយ ejemplo, វាអាចត្រូវបានប្រើដើម្បីកំណត់ពេលវេលាដែលបានកន្លងផុតទៅរវាងព្រឹត្តិការណ៍ពីរឬច្រើនចៀសវាងការបដិសេធ (ប៊ូតុង) នៃប៊ូតុង។ ល។ វាក៏អាចត្រូវបានប្រើដើម្បីបង្ហាញពេលវេលាប្រតិបត្តិនៅក្នុងដំណាក់កាលសំខាន់នៃកូដដោយធានាថាកម្មវិធីដំណើរការបានទាន់ពេលវេលា។

មុខងារមីលីស ()

មុខងារមីលីមីត Arduino

ដូចដែលខ្ញុំបាននិយាយរួចមកហើយមុខងារ Arduino millis ត្រូវបានប្រើដើម្បីវាស់ពេលវេលាហើយវាក៏មាននៅក្នុងនោះដែរ មីលីវិនាទីដូច្នេះឈ្មោះរបស់វា។ និយាយម្យ៉ាងទៀតតម្លៃលេខដែលមុខងារនេះត្រឡប់នៅពេលអ្នកបញ្ចូលវានៅក្នុងគំនូរព្រាងរបស់អ្នកគឺជាទិន្នន័យបណ្តោះអាសន្នដែលបង្ហាញនៅក្នុងឯកតានោះ។

អ្នកគួរតែដឹងថាតម្លៃអតិបរមានៃអថេរនេះគឺ បានចុះហត្ថលេខាយូរនោះគឺវែងឆ្ងាយដោយគ្មានសញ្ញា។ នេះជាការសំខាន់ពីព្រោះប្រសិនបើប្រើតូចជាងនេះបញ្ហាឡូជីខលអាចកើតឡើង។ លើសពីនេះទៀតអ្នកគួរតែដឹងថាវាអាចមានរយៈពេលរហូតដល់ ៥០ ថ្ងៃ (៤.៣២០,០០០,០០០ អិល) នៅពេលវាឈានដល់តម្លៃនោះវានឹងចាប់ផ្តើមឡើងវិញហើយចាប់ផ្តើមម្តងទៀតពីសូន្យ។

រឿងមួយទៀតដែលអ្នកត្រូវដឹងគឺមុខងារមីល្លី មិនប្រើប៉ារ៉ាម៉ែត្រ.

មុខងារ Arduino បណ្តោះអាសន្នផ្សេងទៀត

Arduino មានមុខងារទាក់ទងនឹងពេលវេលាផ្សេងទៀតសម្រាប់អ្នកប្រើក្នុងលេខកូដរបស់អ្នក។ ម្នាក់ក្នុងចំនោមពួកគេគឺ ការពន្យាពេលដ៏ល្បីល្បាញ ()ប៉ុន្តែមានច្រើនទៀត៖

  • ពន្យាពេល ()៖ វាជាមុខងារដែលត្រូវបានប្រើច្រើនបំផុតនិងទូទៅបំផុតនៃមុខងារ Arduino ។ វាក៏ប្រើមីលីវិនាទីជាមីលីលី () ។ ហើយវាក៏នឹងមានប្រភេទដែលមិនបានចុះហត្ថលេខាយូរផងដែរក្រៅពីមិនមានតំលៃត្រឡប់មកវិញ។ វាត្រូវបានប្រើជាចម្បងដើម្បីណែនាំការផ្អាកនៅក្នុងការប្រតិបត្តិនៃកម្មវិធីដែលមានកម្មវិធីជាច្រើន។
  • delayMicroseconds (): ត្រូវបានប្រើតិចជាងនៅក្នុងគំនូរព្រាងក្នុងករណីនេះវានៅតែមិនទាន់បានចុះហត្ថលេខាយូរអង្វែងដោយមិនមានតម្លៃត្រឡប់មកវិញហើយក្នុងករណីនេះវាប្រើមីក្រូវ៉េវ។ បច្ចុប្បន្ននេះតម្លៃអតិបរមាអាចត្រូវបានសម្រេចដោយមានភាពជាក់លាក់ ១៦៣៨៣ និងអប្បបរមា ៣ ,s ។ ប្រសិនបើអ្នកត្រូវដោះស្រាយការរង់ចាំយូរជាងនេះវាត្រូវបានណែនាំឱ្យប្រើការពន្យារពេល () ។
  • មីក្រូទស្សន៍ ()៖ ក៏ត្រឡប់តម្លៃជាលេខក្នុងមីក្រូសេសស៍ផងដែរចាប់តាំងពីបន្ទះ Arduino បានចាប់ផ្តើមដំណើរការកម្មវិធី។ នោះគឺវាដូចជាមីលីស () ប៉ុន្តែជាមួយអង្គភាពផ្សេងទៀត។ តាមពិតវាក៏ប្រើប្រភេទវែងដែលមិនបានចុះហត្ថលេខាហើយវាក៏មិនប្រើប៉ារ៉ាម៉ែត្រដែរ។ ប៉ុន្តែវាមានភាពខុសគ្នាបន្ថែមមួយចំនួនដូចជាវាកំណត់ឡើងវិញហើយចាប់ផ្តើមពីលេខសូន្យនៅពេលវាឈានដល់ ៧០ នាទី។ ទាក់ទងនឹងដំណោះស្រាយរបស់វាដែលមានទំហំ ៤ អ៊ីញឬនិយាយម្យ៉ាងទៀតគុណតម្លៃដែលវាត្រឡប់មកវិញនឹងជាគុណនៃបួន (៤, ៨, ១២, ១៦, …) ។ ចងចាំថា 70 μsស្មើនឹង 4 ms និង 4 ស្មើ 8 s ។

Millis () ឧទាហរណ៍នៅ Arduino IDE

រូបថតអេក្រង់របស់អារីដូណូអាយឌីអ៊ី

ទាំងនេះគឺជាពាក្យទាំងអស់ហើយទិដ្ឋភាពដ៏ល្អបំផុតនៃមុខងារមីល្លីន () គឺបង្ហាញពីឧទាហរណ៍ខ្លះនៃគំនូរព្រាងអាឌូណូណូអាយអ៊ីដូច្នេះអ្នកអាចមើលឃើញកម្មវិធីមួយចំនួននិងប្រើករណី។ ដូច្នេះនៅទីនេះមានខ្លះ ឧទាហរណ៍ជាក់ស្តែង...

១- ឧទាហរណ៍សម្រាប់ ពន្យល់ពីការប្រើប្រាស់ ពីមីលីស ()៖

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);
     }
   }
}

បង្កើត ភ្លឹបភ្លែតៗ LED ជាមួយមីលីស ()៖

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 - ");
}

អ្នកដឹងរួចហើយថាសម្រាប់ ព័ត៌មានបន្ថែម អ្នកអាចទាញយកឯកសារ វគ្គសរសេរកម្មវិធី Arduino ឥតគិតថ្លៃនៅក្នុង PDF.


ខ្លឹមសារនៃអត្ថបទប្រកាន់ខ្ជាប់នូវគោលការណ៍របស់យើង ក្រមសីលធម៌វិចារណកថា។ ដើម្បីរាយការណ៍ការចុចកំហុស នៅទីនេះ.

ធ្វើជាយោបល់ដំបូង

ទុកឱ្យយោបល់របស់អ្នក

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានបោះពុម្ភ។ អ្នកគួរតែអនុវត្តតាម *

*

*

  1. ទទួលខុសត្រូវចំពោះទិន្នន័យ: មីហ្គែល - ហ្គែលហ្គេតថន
  2. គោលបំណងនៃទិន្នន័យ៖ គ្រប់គ្រង SPAM ការគ្រប់គ្រងមតិយោបល់។
  3. ភាពស្របច្បាប់៖ ការយល់ព្រមរបស់អ្នក
  4. ការប្រាស្រ័យទាក់ទងទិន្នន័យ៖ ទិន្នន័យនឹងមិនត្រូវបានទាក់ទងទៅភាគីទីបីឡើយលើកលែងតែកាតព្វកិច្ចផ្នែកច្បាប់។
  5. ការផ្ទុកទិន្នន័យ៖ មូលដ្ឋានទិន្នន័យដែលរៀបចំដោយបណ្តាញ Occentus (EU)
  6. សិទ្ធិ៖ នៅពេលណាដែលអ្នកអាចដាក់កម្រិតទាញយកមកវិញនិងលុបព័ត៌មានរបស់អ្នក។