Bom dia, estou pelejando para temporizar um sistema, mas venho tendo dificuldades com o millis(), do jeito que o code está no momento somente 1 parte funciona corretamente, o outro sofre interferência por conta do millis, dessa forma, ele já começa ligado sendo que deveria esperar um tempo para ligar.

Linha do Temporizador 1: 144

Linha do Temporizador 2: 229

Linha do Temporizador 3: 310

https://pastebin.com/R2byKDR6

Exibições: 242

Anexos

Responder esta

Respostas a este tópico

Boa tarde Gjr,

apesar da sua teimosia em não estudar o C para o Arduíno,

fiz uma correção no seu code para tentar atender sua necessidade.

Veja se resolve.

Não deixe de informar se resolver.

RV

Anexos

Boa tarde, eu estudo mas não compreendo muito.

Testei mas não resolveu, no primeiro ciclo funciona corretamente, espera os 5 segundos OK. Entra no segundo ciclo e também funciona corretamente espera os 30 segundos OK. Porém, quando volto para o primeiro ciclo, não espera os 5 segundos, já liga de uma vez.

Entendi,

é que sua explicação anterior não estava clara.

testa  este agora.

RV

Anexos

Ficou do mesmo jeito, mas percebi que se aumentasse o primeiro ciclo para 30 segundos, iria funcionar do jeito que eu quero.

Muito obrigado!

você pode usar essa função no código para fazer a contagem no lugar do delay

void hold(const unsigned int &ms) { // função de substituição do delay// Non blocking delay
    unsigned long m = millis();
           while (millis() - m < ms) {
                yield();
      }
}

Ai ao invés de "delay(2000);" por exemplo você  escreve  "hold(2000);"

A vantagem é que não precisa ficar criando uma função millis para cada item.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço