Arduino មានមុខងារល្អក្នុងការធ្វើការជាមួយពេលវេលា។ ម្នាក់ក្នុងចំនោមពួកគេគឺ មីលីស ()ការណែនាំដែលផ្តល់ឱ្យអ្នកនូវពេលវេលាគិតជាមិល្លីវិនាទីចាប់តាំងពីបន្ទះ Arduino ត្រូវបានបើក។ នេះមើលទៅដូចជាមិនសមហេតុផលទេហើយវាគ្រាន់តែជួយឱ្យដឹងថានៅពេលដែលដុំត្រូវបានបើកប៉ុន្តែការពិតគឺថាវាមានការអនុវត្តជាក់ស្តែងជាច្រើនទៀត។
ដោយ ejemplo, វាអាចត្រូវបានប្រើដើម្បីកំណត់ពេលវេលាដែលបានកន្លងផុតទៅរវាងព្រឹត្តិការណ៍ពីរឬច្រើនចៀសវាងការបដិសេធ (ប៊ូតុង) នៃប៊ូតុង។ ល។ វាក៏អាចត្រូវបានប្រើដើម្បីបង្ហាញពេលវេលាប្រតិបត្តិនៅក្នុងដំណាក់កាលសំខាន់នៃកូដដោយធានាថាកម្មវិធីដំណើរការបានទាន់ពេលវេលា។
មុខងារមីលីស ()
ដូចដែលខ្ញុំបាននិយាយរួចមកហើយមុខងារ 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.