(Minha dúvida): Como faço para que os dados na tela do monitor serial apareça na tela do display.
Tenho que montar um menu que mostre data e hora atualizada em um shield display lcd 16x2. Nessa configuração:
Coluna 0, linha 0 > xx/xx/xx //Mostra dia, mês e ano.
Coluna 0, linha 1 > xx:xx:xx //Mostra horas, minutos e segundos.
A pinagem do meu display é (8, //RS no digital 8
9, //EN no digital 9
4, //D4 no digital 4
5, //D5 no digital 5
6, //D6 no digital 6
7); //D7 no digital 7
E estou utilizando uma programação encontrada no site Laboratório de Garagem, segue logo abaixo:
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.
//Programador: Wellington Cassio Faria
//Data:21/07/2013
//Versão: 1.0
//Página de Wellington Cássio - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
int segundo,minuto, hora, dia, mes,ano;
unsigned long UtlTime;
void setup()
{
UtlTime=0;
minuto=0;
hora=0;
dia=0;
mes=0;
ano=0;
disp.begin(16,2);
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();
}
}
}//End void setup
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");
}//End void loop
Data e Hora - monitor serial.txt (1.63 KB)