TECHNICAL SUPPORT
Monday to Friday by e-mail:
suporte@robocore.net
CONTACT INFORMATION
Monday to Friday from 8:00 to 17:00
+55 11 3522-7626 / vendas@robocore.net
Back
to top
-->

Classifique este tópicoPéssimoRuimMedianoBomÓtimo
Autor
Mensagem
3
tiagobatista

Level 0
6000 xp

Registrado em:
12/03/2014





Mensagens:
1
3
tiagobatista

Responder com citações
Mensagem Dom Abr 27, 2014 11:23 am
duvida Código projeto temporizar sem rtc
Bom dia

estou tentando montar um temporizador com o Arduíno, porem estou testando sem o RTC, consegui testar o seguinte sketch:


int seg=0, min=0,hor=0;

void setup()
{
Serial.begin(9600);

}
void loop()
{
static unsigned long ult_tempo = 0;
int tempo = millis();
if(tempo - ult_tempo >= 1000) {
ult_tempo = tempo;
seg++;
}
if(seg>=60) 
{
seg = 0;
min++;
}
if(min>=60) {
min = 0;
hor++;
}
if(hor>=24) 
{
hor=0;
min=0;
}
Serial.print(hor);
Serial.print(":");
Serial.print(min);
Serial.print(":");
Serial.println(seg);
delay(1000);
} // fim do código

fonte: http://www.seucurso.com.b...-um-relogio-no-arduino&catid=901:arduino&Itemid=65


Fiz os testes e o código funciona bem, é possível calibrar a hora substituindo os valores do inteiro pelo horário atual para inciar a contagem, o único inconveniente é que o uso do millis parece que a contagem encerra em 50 dias, mas dependendo da necessidade não chega a ser um inconveniente. O código não substitui inteiramente o RTC mas pode quebrar um galho em alguns projetos.


No sketch que estou elaborando pretendo acionar um led para teste, com base neste código fiz as seguintes alterações:


// temporizador para acionamento led

int seg=0, min=0,hor=0;
int ledPin = 12;
int ledState = LOW;     // ledState usado para amazena o estado atual do led aceso o apagado
long intervalo = 1000;  // intervalo de um segundo

void setup()
{
pinMode(ledPin, OUTPUT); 
Serial.begin(9600);

}
void loop()
{
static unsigned long ult_tempo = 0;
int tempo = millis();
if(tempo - ult_tempo >= 1000) {
ult_tempo = tempo;
seg++;
}
if(seg>=60) 
{
seg = 0;
min++;
}
if(min>=60) {
min = 0;
hor++;
}
if(hor>=24) 
{
hor=0;
min=0;
}
Serial.print(hor);
Serial.print(":");
Serial.print(min);
Serial.print(":");
Serial.println(seg);
delay(1000);
}

void led (){    // liga o led de acordo com o tempo programado

   long previousMillis = millis();
   int cnt=0;
    
    if (min = 2, ledState == LOW)    // quanto tempo for igual a 2 minutos se o led estava apagado, acende o led
        ledState = HIGH;    
    else                                        // armazena o ultimo estado se   o led estava aceso 
        ledState = LOW;  

    digitalWrite(ledPin, ledState);
  
  }// fim do código


Contudo estou com problema no ultimo bloco" Void led", pois quero evitar o comando Delay, e utilizar o millis, para que o led fique aceso por 3 segundos e depois aguarde completar as 24 horas ou um segundo horário para que o mesmo acenda. 

Eu verifiquei o sketch não há erro no código, mas o led não está acendendo quando cumpre o prazo, não faço ideia onde posso ter errado, mas devo ter esquecido de amarrar alguma variavel.

Será que alguém poderia me ajudar
3
denis.silva.dms

Level 0
0 xp

Registrado em:
21/05/2021





Mensagens:
1
3
denis.silva.dms

Responder com citações
Mensagem Sex Mai 21, 2021 2:32 pm
duvida Código projeto temporizar sem rtc
Tente trocar:
" if (min = 2, ledState == LOW)    // quanto tempo for igual a 2 (...)"
por:
" if (min == 2, ledState = LOW)    // quanto tempo for igual a 2 (...)"
3
katherinesoda

Level 0
0 xp

Registrado em:
26/07/2021





Mensagens:
1
3
katherinesoda

Responder com citações
Mensagem Seg Jul 26, 2021 4:27 am
duvida Código projeto temporizar sem rtc
denis.silva.dms Escreveu:
Tente trocar: " if (min = 2, ledState == LOW) // quanto tempo for igual a 2 (...)" por: slope game " if (min == 2, ledState = LOW) // quanto tempo for igual a 2 (...)"
Também estava com o mesmo problema , consegui resolver ,valeu


Última edição feita por katherinesoda em Qua Jun 08, 2022 10:56 pm; editado 1 vez no total
3
h3lyo

Level 1
1352778 xp

Registrado em:
25/12/2017





Mensagens:
17
3
h3lyo

Responder com citações
Mensagem Ter Jul 27, 2021 11:50 am
duvida Código projeto temporizar sem rtc
Fiz alguns relógios com millis também... mas a melhor maneira, e mais fácil, é usando a TimerLib (timer-master),
Além de funcionar muito bem, você pode programar os alarmes, ver o dia da semana etc.

Aqui esta o que fiz, funciona com ou sem RTC externo, atualiza via html ou via NTP.

https://www.robocore.net/...opic&t=7106
Mostrar mensagens desde a última:




Ir para:  
Todos os horários são GMT - 3 HorasVocê não tem permissão para escrever novas mensagens
v não tem permissão para responder às mensagens
Você não tem permissão para editar suas mensagens
Você não tem permissão para deletar suas mensagens
Você não tem permissão para classificar tópicos
Você não tem permissão para classificar mensagens
Você não tem permissão para votar em enquetes
Anexar downloads : Proibido
Fazer Download de Arquivos: Proibido
Powered by phpBB © 2001 phpBB Group