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 ??
Tags:
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:
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?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por