Venho a alguns meses postando coisas sobre o relógio que estou fazendo para um LCD timer que também funciona como base para qualquer outro projeto, o problema era o ajuste do tempo e a implementação de hora pelo próprio arduino, sem uso do pc pra nada depois de programar.
Fiquei insistindo na programação enquanto muitos falaram q era mais fácil pegar um RTC para ajustar o tempo, se eu tivesse dinheiro teria pego mas...
fiquei tentando corrigir o delay(x) e ele se aproximou muito, o melhor q consegui foi em 5 dias deu 8 minutos de atraso. mas isso vira uma bola de neve se for pensar em 1 mes 32min de atraso não é possível.
então pesquisando muito achei a biblioteca MsTimer2.h que desde o início meu professor chegou comentar q deveria ter algum regulador de tempo para os ATMega (ele nao sabia o nome pois so trabalha com PIC) ...
Agora achei a biblioteca que se diz "Estável" e o tempo é calculado corretamente...
No pc fiz em PASCAL o relógio com o delay(x) e ele não atrasou 1s por 3semanas.
Projeto Inicial tem até sensor de temperatura...
Se alguém conseguir explicar-me o código abaixo, não entendo voi flash, e nem !output...
// Toggle LED on pin 13 each second
#include <MsTimer2.h>
void flash() {
static boolean output = HIGH;
digitalWrite(13, output);
output = !output;
}
void setup() {
pinMode(13, OUTPUT);
MsTimer2::set(500, flash); // 500ms period
MsTimer2::start();
}
void loop() {
}