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");

}

Exibições: 2616

Comentar

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)

Comentário de Cleberton oliveira em 23 fevereiro 2014 às 4:16

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'

Comentário de Wellington Cássio em 23 julho 2013 às 15:19

Murilo de nada meu caro! Precisando de alguma coisa estamos ae! 

Comentário de Murilo Lima Nogueira em 23 julho 2013 às 12:26

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...

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço