O algoritmo abaixo é referente ao Relógio/Calendário, o mesmo considera anos bissextos e entrada dos dados é feito através da comunicação serial quando o microcontrolador é iniciado.
Download do código: Relogio.ino
int segundo,minuto, hora, dia, mes,ano;
unsigned long UtlTime;
void setup()
{
UtlTime=0;
minuto=0;
hora=0;
dia=0;
mes=0;
ano=0;
Serial.begin(9600);
Serial.print("\nEntre Minuto:");
while(minuto==0)
{
if (Serial.available() > 0)
{
minuto= Serial.parseInt();
}
}
Serial.print("\nEntre Hora:");
while(hora==0)
{
if (Serial.available() > 0)
{
hora= Serial.parseInt();
}
}
Serial.print("\nEntre Dia:");
while(dia==0)
{
if (Serial.available() > 0)
{
dia= Serial.parseInt();
}
}
Serial.print("\nEntre Mes:");
while(mes==0)
{
if (Serial.available() > 0)
{
mes= Serial.parseInt();
}
}
Serial.print("\nEntre ano:");
while(ano==0)
{
if (Serial.available() > 0)
{
ano= Serial.parseInt();
}
}
}
void loop()
{
if(millis()-UtlTime<0)
{
UtlTime=millis();
}else
{
segundo=int((millis()-UtlTime)/1000);
}
if(segundo>59)
{
segundo=0;
minuto++;
UtlTime=millis();
if(minuto>59)
{
hora++;
minuto=0;
if(hora>23)
{
dia++;
hora=0;
if(mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12)
{
if(dia>31)
{
dia=1;
mes++;
if(mes>12)
{
ano++;
mes=1;
}
}
}
else if(mes==2)
{
if(ano%400==0)
{
if(dia>29)
{
dia=1;
mes++;
}
}
else if((ano%4==0)&&(ano%100!=0))
{
if(dia>29)
{
dia=1;
mes++;
}
}
else
{
if(dia>28)
{
dia=1;
mes++;
}
}
}
else
{
if(dia>30)
{
dia=1;
mes++;
}
}
}
}
}
Serial.print(dia);
Serial.print("/");
Serial.print(mes);
Serial.print("/");
Serial.print(ano);
Serial.print(" ");
Serial.print(hora);
Serial.print(":");
Serial.print(minuto);
Serial.print(":");
Serial.print(segundo);
Serial.print("\n");
}
Comentar
Como eu faço para aparecer no display LCD? (Leigo no assunto)
Tenho um sistema que montei agora, aonde quando se liga o arduino aparece no display Olá, Meu nome... ae se eu ligo o Led aparece, Lampada acessa, se apago "lampada apagada" ae volta a mostrar Olá, meu nome.... só que eu queria que mostra-se a data e a hora, e deixa-se o olá, meu nome só pra quando eu ligar" se é que me entenderam kkk'
Murilo de nada meu caro! Precisando de alguma coisa estamos ae!
Parabéns, funcionou corretamente no meu arduino uno, e isso poderá me ajudar em meu projeto de estação meteorológica, ou seja, posso saber a hora em que ocorreu por exemplo um vento forte ou uma alta queda de temperatura...
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)