Função Arduino millis()

Ammar Ali 12 outubro 2023
  1. Use a função millis() para verificar o tempo que passou no Arduino
  2. Use a função millis() para piscar um LED no Arduino
  3. Use a função millis() para alterar o brilho de um LED no Arduino
Função Arduino millis()

Este tutorial discutirá o uso da função millis() em diferentes aplicativos no Arduino. Este tutorial também discutirá alguns exemplos para entender melhor a função millis().

Use a função millis() para verificar o tempo que passou no Arduino

A função millis() retorna uma variável sem sinal do tipo unsigned long, que contém o número de milissegundos passados ​​desde que a placa Arduino começou a executar o código. Como a variável retornada é do tipo unsigned long, o número irá estourar após 49 dias e zerado.

unsigned long currentTime;

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

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

No código acima, currentTime é uma variável do tipo unsigned long para armazenar a hora. Verifique este link para obter mais informações sobre a função millis().

Use a função millis() para piscar um LED no Arduino

Neste exemplo, piscaremos um LED usando a função millis(). Considere que você deve piscar um LED por um período específico, como um segundo. Neste caso, você pode usar a função millis() para piscar o LED por um tempo específico. Se você usar a função delay() para piscar o LED, ela também pausará seu código até que o tempo de atraso termine. Portanto, em vez de usar a função delay(), você pode usar a função millis(), e ela não pausará seu 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;
  }
}

Neste exemplo, o LED ficará aceso e apagado por exatamente um segundo. Você pode alterar o período de intermitência alterando o valor do período variável no código acima.

Use a função millis() para alterar o brilho de um LED no Arduino

Neste exemplo, usaremos a função millis() para alterar o brilho de um LED. Definiremos um período após o qual o brilho do LED será aumentado. Para isso, precisamos conectar um LED com o pino PWM do Arduino. Podemos gravar o brilho no LED usando a função analogWrite(). Podemos alterar o brilho do LED na faixa de 0 a 255 usando a função 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;
  }
}

Neste exemplo, o brilho do LED aumentará a cada 10 milissegundos. Você pode alterar o tempo de incremento alterando o período variável no código acima.

Autor: Ammar Ali
Ammar Ali avatar Ammar Ali avatar

Hello! I am Ammar Ali, a programmer here to learn from experience, people, and docs, and create interesting and useful programming content. I mostly create content about Python, Matlab, and Microcontrollers like Arduino and PIC.

LinkedIn Facebook