Arduino Función millis()

  1. Utilice la función millis() para comprobar el tiempo transcurrido en Arduino
  2. Utilice la función millis() para hacer parpadear un LED en Arduino
  3. Utilice la función millis() para cambiar el brillo de un LED en Arduino

Este tutorial discutirá el uso de la función millis() en diferentes aplicaciones en Arduino. Este tutorial también discutirá algunos ejemplos para entender mejor la función millis().

Utilice la función millis() para comprobar el tiempo transcurrido en Arduino

La función millis() devuelve una variable sin signo de tipo unsigned long, que contiene el número de milisegundos transcurridos desde que la placa Arduino comenzó a ejecutar el código. Como la variable devuelta es de tipo unsigned long, el número se desbordará después de 49 días y se restablecerá a cero.

unsigned long currentTime;

void setup() {
    Serial.begin(19200);
}

void loop() {
    Serial.print("Time Stamp: ");
    currentTime = millis();
    Serial.println(currentTime);
    delay(1000);
}

En el código anterior, currentTime es una variable de tipo unsigned long para almacenar la hora. Consulte este enlace para obtener más información sobre la función millis().

Utilice la función millis() para hacer parpadear un LED en Arduino

En este ejemplo, haremos parpadear un LED usando la función millis(). Considere que tiene que hacer parpadear un LED durante un período específico, como un segundo. En este caso, puede utilizar la función millis() para hacer parpadear el LED durante un tiempo específico. Si usa la función delay() para hacer parpadear el LED, también pausará su código hasta que termine el tiempo de retardo. Entonces, en lugar de usar la función delay(), puede usar la función millis(), y no pausará su código.

unsigned long startTime;  
unsigned long currentTime;
const unsigned long period = 1000;
const byte ledPin = 13;

void setup()
{
    pinMode(ledPin, OUTPUT);
    startTime = millis();  //initial start time
}

void loop()
{
    currentTime = millis();
    if (currentTime - startTime >= period)//test whether the period has elapsed
    {
        digitalWrite(ledPin, !digitalRead(ledPin));//if so, change the state of the LED.
        startTime = currentTime;
    }
}

En este ejemplo, el LED se encenderá y apagará durante exactamente un segundo. Puede cambiar el período de parpadeo cambiando el valor del período variable en el código anterior.

Utilice la función millis() para cambiar el brillo de un LED en Arduino

En este ejemplo, usaremos la función millis() para cambiar el brillo de un LED. Estableceremos un período después del cual aumentará el brillo del LED. Para ello, necesitamos conectar un LED con el pin PWM del Arduino. Podemos escribir el brillo en el LED usando la función analogWrite(). Podemos cambiar el brillo del LED en el rango de 0 a 255 usando la función analogWrite.

unsigned long startTime;
unsigned long currentTime;
const unsigned long period = 10;
const byte ledPin = 10;    //using an LED on a PWM pin.
byte ledBrightness = 0;       //initial brightness
byte LedIncrement = 1;        //amount to change the brightness

void setup()
{
    pinMode(ledPin, OUTPUT);
    startTime = millis();  //initial start time
}

void loop()
{
    currentTime = millis();
    if (currentTime - startTime >= period)
    {
        analogWrite(ledPin, LedBrightness);    //set the brightness
        LedBrightness += LedIncrement;
        startTime = currentTime;
    }
}

En este ejemplo, el brillo del LED aumentará cada 10 milisegundos. Puede cambiar el tiempo de incremento cambiando el período variable en el código anterior.

Artículo relacionado - Arduino Time