millis (): mea uma e te manaʻomia e iloa e uiga i le Arduino gaioiga

Arduino UNO millis galuega

Arduino o loʻo iai se faʻataʻitaʻiga lelei o gaioiga e galue ai i le aluga o taimi. O se tasi o na millis (), o se faʻatonuga e avatua ia te oe le taimi i milliseconds talu ona liliu le Arduino laupapa. E foliga mai e valea lea mea, ma e naʻo le iloa le taimi na ki ai le hob, ae o le mea moni e tele atu ona aoga mea e faʻaaoga ai.

i faʻaaogaina, e mafai ona faʻaaogaina e fuafua ai le taimi ua teʻa i le va o le lua poʻo le sili atu o mea na tutupu, aloese mai le felafolafoaʻi (oso i luga) o se faʻamau, ma isi. E mafai foi ona faʻaalia e faʻaalia ai le taimi faʻatinoina i taimi taua o le numera, ia mautinoa o le polokalame e galue i le taimi moni.

Millis () faʻagaioiga

millis function Arduino

E pei ona ou taʻua muamua, o le Arduino millis function e faaaoga e fua ai le taimi, ma e faia i totonu milliseconds (ms), mafua ai lona igoa. I nisi upu, o le numera numera o lenei gaioiga toe foi mai pe a e faʻaofiina i lau ata o se le tumau faʻamaumauga faʻaalia i lena iunite.

Oe tatau ona iloa o le maualuga aofaʻi o lenei fesuiaiga o unsigned umi, o lona uiga, e leai se faʻailoga. E taua tele lea, aua a faʻaogaina se laʻititi laʻititi, e ono tutupu ni faʻafitauli tau mafaufau. I se faʻaopopoga, e tatau ona e iloa e mafai ona oʻo atu i le 50 aso o le taimi (4.320.000.000 ms), pe a oʻo ina ua oʻo i lena aoga o le a toe amata ma toe amata mai le leai.

Ole isi mea e tatau ona e iloa ole millis function e le faʻaaogaina tapulaʻa.

Isi galuega le tumau Arduino

O le Arduino e iai isi galuega e faʻatatau i le taimi mo oe e te faʻaaogaina i lau numera. O se tasi o na le tuai taʻutaʻua (), ae e iai foʻi isi mea:

  • tuai (): O le sili ona faʻaaogaina ma masani ai uma Arduino gaioiga. E faʻaaoga ai foi milliseconds o millis (). Ma o le a avea foi ma ituaiga le sainia umi, i le faʻaopopoina i le leai o se toe faʻafoi taua. E masani ona faʻaaogaina e faʻalauiloa malolo ai i le faʻatinoina o se polokalame, ma le tele o talosaga.
  • tuaiMicroseconds (): e le faʻaaogaina tele i sketches, i lenei tulaga o loʻo tumau pea le sainia, e aunoa ma le toe faʻafoʻiina, ma ile tulaga lea e faʻaaoga ai microseconds. I le taimi nei, o le maualuga maualuga mafai ona ausia ma le atoatoa o le 16383, ma le maualalo o 3μs. Afai e tatau ona e faʻatautaia le faʻatali umi atu nai lo lena, ua fautuaina e faʻaaoga tuai ().
  • micros (): faʻapea foi ona toe faafoi mai numera numera i microseconds (μs) talu mai le Arduino laupapa amata amataina le polokalama. Lona uiga, e pei o millis (), ae iai leisi vaega. O le mea moni, e faʻaaogaina foʻi le ituaiga umi e leʻi saini ae na te le faʻaaogaina foʻi tapulaʻa. Ae e iai isi faʻaopoopo eseʻesega, pei o le toe setiina ma amata mai le zero pe a oʻo i le 70 minute. E tusa ai ma le iugafono a le 4 μs, pe i ni isi upu, o le taua e toe faʻafoʻi mai o le a avea ma tele e fa (4, 8, 12, 16,…). Manatua o le 1000 μs tutusa ma le 1 ms ma le 1.000.000 tutusa ma le 1 s.

Millis () faʻataʻitaʻiga i le Arduino IDE

Puʻe ata o le Arduino IDE

Nei o upu uma, ma o le vaʻaiga sili ona lelei ole millis () galuega o loʻo faʻaalia ai ni faʻataʻitaʻiga o faigofie Arduino IDE tusitusi e mafai ai ona e vaʻai i nisi o tusi talosaga ma faʻaaoga mataupu. Ma o nisi nei faataitaiga aoga...

Mafai ona faʻaaogaina ma laupapa Arduino uma

1-Faʻataʻitaʻiga mo faʻamatala le aoga mai 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
}

Fua le taimi ile va o feau e lua:

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

Fai emo le moli uila ma 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
    }
}

Fausia se faasologa faigofie e lafo ai tusitusiga e ala i le serial monitor i taimi eseese eseese e faʻaaoga ai 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 - ");
}

Ua uma ona e iloa lena mea mo tele faʻamatalaga e mafai ona e aumaia i lalo le maua fua Arduino polokalame polokalame i le PDF.


O mataupu o le tusitusiga e tausisi ia tatou mataupu silisili o amio lelei faʻatonu. E lipotia se mea sese kiliki iinei.

Ia avea muamua ma faamatalaga

Tuʻu lau faamatalaga

o le a le lomia lou tuatusi imeli. O nofoaga e manaʻomia e makaina *

*

*

  1. E tali atu mo faʻamatalaga: Miguel Ángel Gatón
  2. Faamoemoega o faʻamatalaga: Pulea le SPAM, faʻamatalaga pulega.
  3. Tulaga faʻatulafonoina: Lau maliega
  4. Fesoʻotaʻiga o faʻamatalaga: O faʻamatalaga o le a le fesoʻotaʻi atu i isi vaega vagana i tulafono faʻatulafonoina.
  5. Teuina o faʻamatalaga: Faʻamaumauga tuʻufaʻatasia e Occentus Networks (EU)
  6. Aia Tatau: I soo se taimi e mafai ai ona e faʻatapulaʻaina, toe maua ma aveʻese au faʻamatalaga.