Galera, to precisando de alguma forma implementar um temporizador no meu codigo.. Infelizmente não estou conseguindo usar o delay por que ele acaba parando todo o codigo..

{

valorsensor8 = analogRead(sensor8);

int valorsensor8 = analogRead(sensor8);

if (valorsensor8 > 1000) //valor maior

digitalWrite(saida8, HIGH); //saida acionada

PRECISO DE UM TIMER AQUI, 10 MINUTOS..

digitalWrite(saida8, LOW); //saida desligada

}

alguem ??

Exibições: 2734

Responder esta

Respostas a este tópico

Fellipe, não entendi muito bem esse tutorial.. Executei ele aqui para testar, e pelo que percebi o ''timer'' dele é tanto para ativar, quando para reativar correto ? Por exemplo 1 segundo liga, 1 segundo desliga.. 

O que eu queria era tipo quando o sensor le um valor que eu definir a saida fica em HIGH por 10 minutos por exemplo

Thomaz você tem sorte.

Tem um exmplo com timer de 10 minutos no site do Arduino:

Leia todo tutorial, mostrando as várias opções de timer:

http://playground.arduino.cc/Code/Timer#.Uw-_yPldVsg

Que beleza!! Vou dar uma olhada la Jose, obrigado! 

Boa noite Thomaz !

Estou procurando também um esquema temporizador em arduino ...

O esquema se trata do seguinte:

Botão Star / Liga motor 01 por 30 minutos e desliga / em seguida liga o motor 02 por 30 minutos e desliga / em seguida liga o motor 03 por 30 minutos e desliga / em seguida liga o motor 04 por 30 minutos e desliga / em seguida liga o motor 05 por 30 minutos e desliga / em seguida liga o motor 06 por 30 minutos e desliga /

No entanto gostaria também de um botão Stop de segurança.

E a cada vez que pressionado o botão start ligar desligar o que estiver ligado e ligar o próximo assim sucessivamente .

Obrigado !!!

Oi Thomas! 

Segue um code, verifique se e interessante!

Nunca usei para um tempo tão longo.

//Definindo as variáveis antes do setup

long VarMillis = 0;
long interval = 30000;// a quantidade de tempo necessaria

// Dentro do Loop

unsigned long ContMillis = millis();
if(ContMillis - VarMillis > interval){
VarMillis = ContMillis;

valorsensor8 = analogRead(sensor8);

int valorsensor8 = analogRead(sensor8);

if (valorsensor8 > 1000) //valor maior

digitalWrite(saida8, HIGH); //saida acionada

PRECISO DE UM TIMER AQUI, 10 MINUTOS..

digitalWrite(saida8, LOW); //saida desligada

}

 

 

Valeu pela ajuda Elton, nesse caso..

unsigned long ContMillis = millis();
if(ContMillis - VarMillis > interval){ 
VarMillis = ContMillis;

é a que eu devo colocar para acionar o ''timer'' ? Ou seja, quando sensor ler um valor acima de 1000 desencadeia o timer.. 

Exatamente o bom deste delay, que não vai para o ciclo de varredura,

Ou seja não  para como o delay e fica contando, vc pode trabalhar com outras coisa no seu code.

espero ter ajudado! 

Puts, valeu cara! Vou testar aqui e aviso se deu certo

{

if (DHT.temperature > 20) //valor igual

digitalWrite(saida1, HIGH); //saida acionada

unsigned long ContMillis = millis();
if(ContMillis - VarMillis > interval){
VarMillis = ContMillis;}

digitalWrite(saida1, LOW); //saida desligada

}

fica assim, correto ? 

não funcionou aqui.. 

Eu estava trabalhando com o sensor LM35, mas como a variação tava mt grande passei para o DHT11.. 

Mas com o DHT11 não estou conseguindo acionar as saidas com o if(DHT.temperature > 30).. sera que tenho que converter o valor?

Valeu Camilo, estou tentando utilizar o que o Elton me passou.. Se não funcionar passo para o que você recomendou! 

Att

Amigos, alguem teria um codigo semelhante que fosse ciclico.

EX: Programo ele paraque em 3:00 min ele ligue o rele e que fique 0:15 segundos ligado e que depois desses 0:15 sec ele desliga e começe a contagem novamente, repetindo o processo. Tb teria um display de 7 segmentos com 4 digitos ou um lcd com trez ou quatro Botoes?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço