Omet navegació

2.3.- Control del temps

1. Aturar l'execució del programa

Si volem aturar l'execució d'un programa ho farem amb la sentència delay (ms) ; on aturarem el programa (ms) mili-segons. 

Mira l'exemple:

 

 //  Programa Hola Món  

void setup() {

Serial.begin(9600);//Configuració del port sèrie (pantalla)

}

void loop() {

Serial.println("Hola Món");//imprimeix el retol

delay(1000);// espera 1 segon

Serial.println("He esperat 1 segon");//imprimeix el retol

delay(2000);// espera 2 segon

Serial.println("He esperat 2 segons");//imprimeix el retol

delay(3000);// espera 3 segon

Serial.println("He esperat 3 segons");//imprimeix el retol

delay(4000);// espera 4 segon

Serial.println("He esperat 4 segon i ací acaba un cicle"); //imprimeix el retol

}

2. Comptar el temps

L'altra opció per comptar el temps es utilitzar millis() per capturar el temps en mili-segons i restar fins del temps inicial que hem alçat dins d'una variable. Aquesta forma no serà l'habitual però pot donar-se el cas de necessitar comptar el temps sense interrompre l'execució d'un programa amb delay().

 

 

  //  Programa Hola Mon   Ús de millis()

long tempsInicial ; //variable per emmagatzemar el temps inicial

long duracio; // variable per emmagatzemar la duració del temps

void setup() {

Serial.begin(9600); //Configuració del port sèrie (pantalla)

}

void loop() {

tempsInicial=millis(); // capturem el temps inicial

duracio= millis()-tempsInicial ; // val la duració del temps actual

while(duracio < 2000){ // repeteix el cicle mentre la duració siga menor a 2 segons

Serial.print("temps="); //imprimeix retol

Serial.println(duracio); //imprimeix el valor

duracio= millis()-tempsInicial ; // val la duració del temps actual

}

Serial.println("Hola Mon. Ha acabat el cicle while de 2 segons"); //imprimeix el retol

delay(4000);// atura 4 segons

Serial.println("El programa ha estat aturat amb un delay 4 segons i tornara a iniciar-se");//imprimeix el retol delay(4000);// atura 4 segons

}