millis (): ihe niile ịchọrọ ịma gbasara ọrụ Arduino

Arduino UNO ọrụ millis

Arduino nwere ezigbo ọrụ nke ọrụ iji rụọ ọrụ na oge. Otu n’ime ha bụ millis (), ntụziaka nke na-enye gị oge na milliseconds kemgbe agbanyela bọọdụ Arduino. Nke a nwere ike iyi ihe nzuzu, na ọ bụ naanị ịmara mgbe agbanwuru hob ahụ, mana eziokwu bụ na ọ nwere ọtụtụ ngwa ndị ọzọ bara uru.

por na-arụ ọrụ, enwere ike iji ya chọpụta oge gafere n'etiti ihe omume abụọ ma ọ bụ karịa, zere debounce (ibiaghachi) nke bọtịnụ, wdg. Enwekwara ike iji ya gosipụta oge ogbugbu ya na ọkwa dị oke egwu nke koodu ahụ, na-ahụ na mmemme ahụ na-arụ ọrụ n'oge.

Millis () ọrụ

ọrụ millis Arduino

Dịka m kwuchara, a na-eji Arduino millis arụ ọrụ iji tụọ oge, ọ na-emekwa ya milise seconds (ms), ya mere aha ya. Yabụ, ọnụọgụ ọnụọgụ nke ọrụ a laghachiri mgbe ị tinyere ya na eserese gị bụ data na-adịru nwa oge nke akọwapụtara na nkeji ahụ.

I kwesịrị ịma na uru kachasị nke mgbanwe a bụ etinyeghị aka ogologo, nke ahụ bụ, ogologo oge na-enweghị akara. Nke a dị mkpa, n'ihi na ọ bụrụ na ejiri nke pere mpe eme ihe, nsogbu nwere ike ịda. Tụkwasị na nke a, ị kwesịrị ịma na ọ nwere ike ịdịru ụbọchị iri ise (50 ms), ozigbo o ruru uru ahụ, ọ ga-amalitegharị wee malite ọzọ site na efu.

Ihe ọzọ ị ga - amata bụ na ọrụ igwe anaghị eji akụkụ.

Ọrụ Arduino ndị ọzọ ọzọ

Arduino nwere ọrụ ndị ọzọ metụtara gị ka ị jiri na koodu gị. Otu n’ime ha bụ ama ama (), ma enwere ndi ozo:

  • igbu oge (): Ọ bụ ihe a na-ejikarị eme ihe na ọrụ niile Arduino. Ọ na-ejikwa milliseconds dị ka millis (). Ma ọ ga - abụkwa ụdị nke edoghị aha ogologo, na mgbakwunye na enweghị uru nloghachi. A na-ejikarị ya ewebata nkwụsịtụ na mmemme nke mmemme, yana ọtụtụ ngwa.
  • na-egbu ogeMicroseconds (): a na-ejikarị ya na eserese, na nke a ọ ka na-agbanyeghị aka ogologo, na-enweghị uru nloghachi, na nke a ọ na-eji microseconds. Ka ọ dị ugbu a, enwere ike nweta uru kachasị na nkenke nke 16383, yana opekempe nke 3μs. Ọ bụrụ na ị ga - ejikwa echere karịa oge ahụ, a na - atụ aro ka ị jiri oge ().
  • micros (): weghachiri ọnụọgụ ọnụọgụ na microseconds (μs) ebe ọ bụ na ụlọ ọrụ Arduino bidoro ime mmemme ahụ. Nke ahụ bụ, ọ dị ka millis (), mana ya na unit ọzọ. N'ezie, ọ na-ejikwa ụdị ogologo edeghị aha ma ọ naghị eji ọnụọgụ. Ma, o nwere ụfọdụ ndị ọzọ dị iche iche, dị ka na ọ resets na-amalite site efu mgbe ọ ruru 70 nkeji. Banyere mkpebi ya nke 4 μs, ma ọ bụ na ndị ọzọ okwu, uru ọ ga-eweghachi ga-abụ a otutu nke anọ (4, 8, 12, 16,…). Cheta na 1000 equs bụ 1 ms na 1.000.000 bụ 1 s.

Ihe atụ Millis () na Arduino IDE

Nseta ihuenyo nke Arduino IDE

Ndị a bụ okwu niile, na echiche kachasị mma banyere ọrụ millis () na-egosi ụfọdụ ihe atụ nke eserese Arduino IDE dị mfe ka ị wee hụ ụfọdụ ngwa ma jiri ikpe. Ya mere, lee ụfọdụ ihe omuma atu...

Enwere ike iji ya All mbadamba Arduino

1-Ihe Nlereanya maka kọwaa ihe eji ya site na millis ():

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
}

Tụọ oge n'etiti ozi serial abụọ:

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

Mee itabi anya ikanam na millis ():

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

Mepụta a mfe sequencer iji zipu ederede site na ntinye nyocha na oge dị iche iche site na iji millis ():

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

Maraworị nke ahụ maka ozi ndị ọzọ ị nwere ike ibudata n'efu Arduino mmemme mmemme na PDF.


Ọdịnaya nke isiokwu agbaso ụkpụrụ anyị nke ụkpụrụ nduzi. Kpesa mmejọ pịa ebe a.

Bụrụ onye mbụ ịza ajụjụ

Hapu okwu gi

Adreesị email gị agaghị bipụtara. Chọrọ ubi na-akara na *

*

*

  1. Rụ ọrụ maka data: Miguel Ángel Gatón
  2. Nzube nke data: Nchịkwa SPAM, njikwa okwu.
  3. Ikike: Nkwenye gị
  4. Nkwurịta okwu nke data: Agaghị agwa ndị ọzọ data ahụ ma ọ bụghị site na iwu.
  5. Nchekwa data: Ebe nchekwa data nke Occentus Networks (EU) kwadoro
  6. Ikike: Oge obula inwere ike igbachi, weghachite ma hichapụ ihe omuma gi.