Go Down

Topic: Secuencial leds que se apague cada minuto por 20 segundos (Read 361 times) previous topic - next topic

surbyte

Thefla que es millis(), es un cronometro que da valores en milisegundos que arranca cuando el arduino se energiza.
Asi que imagina que alimentas tu Arduino y este cronometro empieza de 0 milisegundos en adelante.

Ahora supon que pasaron 3.5 segundos o sea 3500 mseg.. si tomaras el valor de millis() en ese momento la variable que siemper debe ser del tipo unsigned long  diría 3500.

Ahora vamos a pensar que algo que debes controlar debe hacerlo 1 seguno o 1000 milisegundos despúes. Entonces cuando llegues a 4500 tu vas a resolver eso cómo?

previamente una variable que llamaré inicio se cargó con milis() y dijimos que tomó el valor de 3500.

algo asi en código

Code: [Select]
unsigned long inicio; // no hace falta poner a 0 porque luego le asignaremos millis();

en tu setup() luego de hacer lo que debes pones.

Code: [Select]
void setup() {
  Serial.begin(9600);
  Serial.println("Inicio programa con millis(), muestro cada 1000 mseg");
  inicio = millis();   // supongamos que el valor que toma inicio es el que te dije 3500
}


ahora en el loop queremos que cada 1 seg o 1000 mseg coloquemos un cartel que diga algo

Code: [Select]
void loop() {
    if (millis() - inicio >= 1000) {
         Serial.print("han pasado : ");
         Serial.println(inicio)
         inicio = millis();    // vuelvo a cargar inicio con millis()
    }
}


Deberías tener una salida tal que cada 1000 mseg obtengas impresiones espaciadas por este valor.

Go Up