millis (): ntho e ngoe le e ngoe eo u hlokang ho e tseba ka ts'ebetso ea Arduino

Arduino UNO mesebetsi ea millis

Arduino e na le pokello e ntle ea mesebetsi eo u ka sebetsang le eona ha nako e ntse e tsamaea. E 'ngoe ea tsona ke millis (), taelo e u fang nako ka milliseconds ho tloha ha boto ea Arduino e butsoe. Sena se ka utloahala se sa utloahale ebile se sebeletsa feela ho tseba hore na poleiti e buletsoe neng, empa 'nete ke hore e na le likopo tse ling tse ngata tse sebetsang.

Por ejemplo, e ka sebelisoa ho fumana nako e fetileng pakeng tsa liketsahalo tse peli kapa ho feta, qoba ho qhekella (konopo) ea konopo, jj. E kanna ea sebeletsa ho bonts'a nako ea ho etsoa maemong a mahlonoko a khoutu, ho netefatsa hore lenaneo le sebetsa ka nako ea 'nete.

Mosebetsi oa Millis ()

mosebetsi oa millis Arduino

Joalokaha ke se ke boletse, mosebetsi oa mildu oa Arduino o sebelisetsoa ho metha nako, 'me o etsa joalo ho millisecond (ms), ka hona ke lebitso la eona. Ka mantsoe a mang, boleng ba linomoro boo mosebetsi ona o bo khutlisang ha o bo kenyelletsa ho sketch sa hau ke data ea nakoana e hlahisitsoeng ho yuniti eo.

U lokela ho tseba hore boleng bo phahameng ba phapang ena ke sa saennweng nako e telele, ke hore, nako e telele ntle le letšoao. Sena se bohlokoa, hobane ha ho sebelisoa e nyane mathata a kelello a ka hlaha. Ntle le moo, o lokela ho tseba hore e ka nka matsatsi a 50 (4.320.000.000 ms) hang ha e fihletse boleng boo e tla qala bocha ebe e qala hape ho tloha ho zero.

Ntho e 'ngoe eo u lokelang ho e tseba ke hore millis e sebetsa ha e sebelise meeli.

Mesebetsi e meng ea nakoana ea Arduino

Arduino e na le mesebetsi e meng e amanang le nako eo u ka e sebelisang khoutu ea hau. E 'ngoe ea tsona ke tieho e tsebahalang (), empa ho na le tse ling hape:

  • lieha (): Ke eona e sebelisoang le e tloaelehileng ho fetisisa mesebetsing eohle ea Arduino. E boetse e sebelisa milliseconds joalo ka millis (). Hape e tla ba ea mofuta o sa ngolisoang nako e telele, hape e se na boleng ba ho khutlisa. E sebelisoa haholo-holo ho kenyelletsa likhetsi ha ho etsoa lenaneo, ka likopo tse ngata.
  • liehaMicroseconds (): ha e sebelisoe haholo litšoantšong, ntlheng ena e sa ngolisoa nako e telele, ha e na boleng ba ho khutla, 'me ntlheng ena e sebelisa li-microseconds. Hajoale, boleng bo phahameng bo ka fihlelleha ka nepo ea 16383, le bonyane ba 3μs. Haeba u tlameha ho sebetsana le ho leta nako e telele ho feta moo, ho kgothaletswa hore o sebelise delay ().
  • li-micros (): hape e khutlisa boleng ba linomoro ho li-microseconds (μs) ho tloha ha boto ea Arduino e qala ho etsa lenaneo. Ka mantsoe a mang, e tšoana le millis (), empa e na le yuniti e ngoe. Ebile, e sebelisa mofuta o sa ngolisoang o sa ngolisoeng ebile ha e sebelise meeli. Empa e na le liphapang tse ling, joalo ka hore e seta bocha mme e qala ho tloha ho zero ha e fihla metsotso e 70. Mabapi le tharollo ea 4 μs, kapa ka mantsoe a mang, boleng boo e bo khutlang e tla lula e le makhetlo a mangata a mane (4, 8, 12, 16,…). Hopola hore 1000 μs e lekana 1 ms le 1.000.000 e lekana 1 s.

Mehlala ea Millis () ho Arduino IDE

Setšoantšo sa Arduino IDE

Ana kaofela ke mantsoe, 'me pono e ntle ka ho fetisisa ea millis () ke ho bontša mehlala e meng ea litšoantšo tse bonolo ho Arduino IDE e le hore u bone likopo le ho sebelisa linyeoe. Kahoo, mona ke tse ling mehlala e sebetsang...

E ka sebelisoa le liboto tsohle tsa Arduino

1-Mohlala oa hlalosa tšebeliso ho tloha 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
}

Lekanya nako pakeng tsa melaetsa e 'meli ea serial:

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

Etsa panya LED ka 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
    }
}

Theha a bonolo sequencer ho romella mongolo ka har'a sesebelisoa sa serial ka linako tse fapaneng ka linako tse ling u sebelisa 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 - ");
}

U se u ntse u tseba seo bakeng sa tlhahisoleseding e eketsehileng o ka khoasolla file ea Koetliso ea mahala ea Arduino ka PDF.


Litaba tsa sengoloa sena li latela melao-motheo ea rona ea melao ea boitšoaro ea bongoli. Ho tlaleha phoso tlanya mona.

E-ba oa pele ho fana ka maikutlo

Siea maikutlo a hau

aterese ya hao ya imeile ke ke ho phatlalatswa. masimo a hlokahala a tšoailoe ka *

*

*

  1. E ikarabella bakeng sa data: Miguel Ángel Gatón
  2. Morero oa data: Laola SPAM, tsamaiso ea maikutlo.
  3. Molao: Tumello ea hau
  4. Puisano ea data: Lintlha li ke ke tsa tsebisoa batho ba boraro ntle le ka tlamo ea molao.
  5. Polokelo ea data: Database e hapiloeng ke Occentus Networks (EU)
  6. Litokelo: Nako efe kapa efe o ka fokotsa, oa hlaphoheloa mme oa hlakola tlhaiso-leseling ea hau.