Função millis
O que esse código faz?¶
Este código de exemplo demonstra como controlar dois LEDs com Arduino usando um botão e um potenciômetro, substituindo o uso de delay()
por millis()
. Um LED alterna seu estado a cada 100 milissegundos ao pressionar um botão, enquanto o outro LED alterna seu estado no mesmo intervalo quando o valor do potenciômetro é maior ou igual a 500.
Circuito protoboard¶
Código¶
const int led = 13; //define o apelido led para o valor 13
const int botao = 5; //define o apelido botao para o valor 5
const int ledPwm = 11; //define o apelido ledPwm para o valor 11
const int potAD = A0; //define o apelido potenciometro para o valor A0
unsigned long tempo1 = 0, tempo2 = 0;
void setup() {
// Entradas e saídas digitais
pinMode(led, OUTPUT); //declara o pino13 (led) como saída
pinMode(botao, INPUT_PULLUP); //declara o pino5 (botao) como entrada
// Entradas e saídas analógicas
pinMode(ledPwm, OUTPUT); //declara o pino11 (ledPwm) como saída
pinMode(potAD, INPUT); //declara o pinoA0 (potenciometro) como entrada
}
void loop() {
//usando millis no lugar do delay
if (millis() - tempo1 >= 100){
tempo1 = millis();
if (digitalRead(botao) == LOW){
digitalWrite(led, !digitalRead(led));
}
}
// usando millis
int pot = analogRead(potAD);
if (millis() - tempo2 >= 100 && pot >= 500){
tempo2 = millis();
digitalWrite(ledPwm, !digitalRead(ledPwm));
}
}