Arduino Funzione millis()

  1. Usa la funzione millis() per controllare il tempo trascorso in Arduino
  2. Usa la funzione millis() per far lampeggiare un LED in Arduino
  3. Usa la funzione millis() per modificare la luminosità di un LED in Arduino

Questo tutorial discuterà l’uso della funzione millis() in diverse applicazioni in Arduino. Questo tutorial discuterà anche alcuni esempi per comprendere meglio la funzione millis().

Usa la funzione millis() per controllare il tempo trascorso in Arduino

La funzione millis() restituisce una variabile senza segno di tipo unsigned long, che contiene il numero di millisecondi passati da quando la scheda Arduino ha iniziato a eseguire il codice. Poiché la variabile restituita è di tipo unsigned long, il numero andrà in overflow dopo 49 giorni e si azzererà.

unsigned long currentTime;

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

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

Nel codice precedente, currentTime è una variabile di tipo unsigned long per memorizzare l’ora. Controlla questo link per avere maggiori informazioni sulla funzione millis().

Usa la funzione millis() per far lampeggiare un LED in Arduino

In questo esempio, faremo lampeggiare un LED utilizzando la funzione millis(). Considera che devi far lampeggiare un LED per un periodo specifico, come un secondo. In questo caso, è possibile utilizzare la funzione millis() per far lampeggiare il LED per un tempo specifico. Se si utilizza la funzione delay() per far lampeggiare il LED, verrà anche messo in pausa il codice fino allo scadere del tempo di ritardo. Quindi, invece di usare la funzione delay(), puoi usare la funzione millis() e non metterà in pausa il tuo codice.

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

In questo esempio, il LED si accenderà e si spegnerà esattamente per un secondo. È possibile modificare il periodo di lampeggiamento modificando il valore del periodo variabile nel codice sopra.

Usa la funzione millis() per modificare la luminosità di un LED in Arduino

In questo esempio, useremo la funzione millis() per modificare la luminosità di un LED. Imposteremo un periodo dopo il quale la luminosità del LED verrà aumentata. A tale scopo, dobbiamo collegare un LED con il pin PWM di Arduino. Possiamo scrivere la luminosità sul LED usando la funzione analogWrite(). Possiamo cambiare la luminosità del LED nell’intervallo da 0 a 255 usando la funzione 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;
    }
}

In questo esempio, la luminosità del LED aumenterà ogni 10 millisecondi. È possibile modificare il tempo di incremento modificando il periodo variabile nel codice sopra.

Articolo correlato - Arduino Time