millis (): ohun gbogbo ti o nilo lati mọ nipa iṣẹ Arduino

Arduino UNO awọn iṣẹ millis

Arduino ni iwe-rere ti awọn iṣẹ lati ṣiṣẹ pẹlu akoko pupọ. Ọkan ninu wọn ni milis (), Itọsọna ti o fun ọ ni akoko ni awọn milliseconds niwon igbimọ Arduino ti wa ni titan. Eyi le dabi aṣiwere, ati pe o ṣiṣẹ nikan lati mọ igba ti a ti tan hob, ṣugbọn otitọ ni pe o ni ọpọlọpọ awọn ohun elo to wulo sii.

por alakoso, o le ṣee lo lati pinnu akoko ti o ti kọja laarin awọn iṣẹlẹ meji tabi diẹ sii, yago fun debounce (agbesoke) ti bọtini kan, ati bẹbẹ lọ. O tun le lo lati fihan akoko ipaniyan ni awọn ipo pataki ti koodu, ni idaniloju pe eto naa n ṣiṣẹ ni akoko gidi.

Iṣẹ Millis ()

iṣẹ millis Arduino

Gẹgẹ bi Mo ti sọ tẹlẹ, iṣẹ milis Arduino ni a lo lati wiwọn akoko, ati pe o ṣe bẹ ninu millise aaya (ms), nitorina orukọ rẹ. Ni awọn ọrọ miiran, iye nọmba ti iṣẹ yii pada nigbati o ba ṣafikun rẹ ninu aworan afọwọkọ rẹ jẹ data igba diẹ ti o han ninu ẹyọ yẹn.

O yẹ ki o mọ pe iye ti o pọ julọ ti oniyipada yii jẹ ti a ko fiwe si ni gigun, iyẹn ni, gun laisi ami. Eyi ṣe pataki, nitori ti o ba lo ọkan ti o kere ju, awọn iṣoro ọgbọn le waye. Ni afikun, o yẹ ki o mọ pe o le ṣiṣe to ọjọ 50 ti akoko (4.320.000.000 ms), ni kete ti o ti de iye yẹn yoo tun bẹrẹ ati bẹrẹ lẹẹkansi lati odo.

Ohun miiran ti o ni lati mọ ni pe iṣẹ ọlọ ko lo awọn iṣiro.

Awọn iṣẹ Arduino miiran ti igba diẹ

Arduino ni awọn iṣẹ miiran ti o jọmọ akoko fun ọ lati lo ninu koodu rẹ. Ọkan ninu wọn ni idaduro olokiki (), ṣugbọn diẹ sii wa:

  • idaduro (): O jẹ lilo julọ ati wọpọ ti gbogbo awọn iṣẹ Arduino. O tun nlo awọn milliseconds bi millis (). Ati pe yoo tun jẹ ti iru ti a ko wole si gigun, bii ko ni iye ipadabọ. O lo ni akọkọ lati ṣafihan awọn idaduro ni ipaniyan eto kan, pẹlu ọpọlọpọ awọn ohun elo.
  • idaduro Awọn iṣẹju-aaya (): jẹ lilo ti o kere ju ninu awọn aworan afọwọya, ninu ọran yii o tun jẹ ami ti a ko fiwe si, laisi iye ipadabọ, ati ninu ọran yii o nlo microseconds. Lọwọlọwọ, iye ti o pọ julọ le ṣaṣeyọri pẹlu konge ti 16383, ati pe o kere julọ ti 3μs. Ti o ba ni lati mu awọn iduro duro ju igba yẹn lọ, o ni iṣeduro lati lo idaduro ().
  • micros (): tun da iye nomba kan pada ni awọn iṣẹju-aaya (μs) niwon igbimọ Arduino bẹrẹ ṣiṣe eto naa. Iyẹn ni pe, o dabi milis (), ṣugbọn pẹlu ẹya miiran. Ni otitọ, o tun nlo iru gigun ti a ko wole ati pe ko lo awọn aye boya. Ṣugbọn o ni diẹ ninu awọn iyatọ afikun, gẹgẹbi pe o tunto ati bẹrẹ lati odo nigbati o ba de iṣẹju 70. Nipa ipinnu rẹ ti 4 μs, tabi ni awọn ọrọ miiran, iye ti o pada yoo ma jẹ ọpọ ti mẹrin (4, 8, 12, 16,…). Ranti pe 1000 equs ṣe deede 1 ms ati 1.000.000 deede 1 s.

Awọn apẹẹrẹ Millis () ni Arduino IDE

Iwoye ti Arduino IDE

Iwọnyi jẹ gbogbo awọn ọrọ, ati iwoye ti o dara julọ ti iṣẹ millis () n ṣe afihan diẹ ninu awọn apẹẹrẹ ti awọn aworan afọwọṣe IDE Arduino ti o rọrun ki o le rii diẹ ninu awọn ohun elo ati lo awọn ọran. Nitorina nibi ni diẹ ninu awọn apẹẹrẹ iṣe...

Le ṣee lo pẹlu gbogbo awọn igbimọ Arduino

1-Apẹẹrẹ fun se alaye lilo lati 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
}

Ṣe iwọn akoko laarin awọn ifiranṣẹ tẹlentẹle meji:

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

Rii seju ohun LED pẹlu 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
    }
}

Ṣẹda a o rọrun sequencer lati firanṣẹ ọrọ nipasẹ atẹle ni tẹlentẹle ni awọn aaye arin oriṣiriṣi lilo milis ():

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

O ti mọ tẹlẹ fun alaye diẹ sii o le gba lati ayelujara awọn ọfẹ eto iseto eto Arduino ni PDF.


Awọn akoonu ti nkan naa faramọ awọn ilana wa ti awọn ilana olootu. Lati jabo aṣiṣe kan tẹ nibi.

Jẹ akọkọ lati sọ ọrọ

Fi ọrọ rẹ silẹ

Adirẹsi imeeli rẹ yoo ko le ṣe atejade. O beere aaye ti wa ni samisi pẹlu *

*

*

  1. Lodidi fun data naa: Miguel Ángel Gatón
  2. Idi ti data naa: SPAM Iṣakoso, iṣakoso ọrọ asọye.
  3. Ofin: Iyọọda rẹ
  4. Ibaraẹnisọrọ data: Awọn data kii yoo ni ifọrọhan si awọn ẹgbẹ kẹta ayafi nipasẹ ọranyan ofin.
  5. Ibi ipamọ data: Alaye data ti o gbalejo nipasẹ Awọn nẹtiwọọki Occentus (EU)
  6. Awọn ẹtọ: Ni eyikeyi akoko o le ni opin, gba pada ki o paarẹ alaye rẹ.