Neste sketch se apresenta o display LCD 16x2 e a utilização
de sua biblioteca. A codificação foi baseada em uma rotina disponibilizada no
link abaixo para apresentar data e hora a partir de uma entrada inicial de
dados pela porta serial. O programa também apresenta mensagens iniciais antes
de apresentar a data e hora.
A variável unsigned long valorAtual utilizada na rotina é do
tipo long e não negativa e a função Serial.parseInt() converte num número
inteiro a representação ASCII dos bytes enviados.
(Rotina obtida em: robotics-school.blogspot.com.br/2014/03/projeto-relogio-com-o-arduino.html)
/*
**********************************************
PROJETO ROBÓTICA NA ESCOLA 2015
USANDO O LCD COM RELÓGIO
EE DR PEDRO VELHO – RN/BR
**********************************************
*/
#include <LiquidCrystal.h> //Inclui a biblioteca do
LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int segundo,minuto, hora, dia, mes,ano;
unsigned long valorAtual;
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);
valorAtual=0;
minuto=0;
hora=0;
dia=0;
mes=0;
ano=0;
//Mensagem de abertura
lcd.clear(); //limpa o display do LCD.
lcd.print("OI!!! ");
//imprime a string no display do LCD.
delay(2000);
lcd.setCursor(0,1); //posiciona
cursor na coluna 0 linha 1 do LCD
lcd.print("TUDO
BEM???"); //imprime a string no display do LCD.
delay(2000);
lcd.clear();
lcd.print("BEM
VINDO");
lcd.setCursor(0,1);
lcd.print("AO
PROJETO!");
delay(2000);
lcd.clear();
lcd.print("ROBOTICA NA ESCOLA DR PEDRO VELHO 2015");
delay(1000);
//Rolando o display
para a esquerda 12 vezes
for (int i = 0; i
< 22; i++)
{
lcd.scrollDisplayLeft();
delay(600);
}
delay(1000);
//Iniciando a rotina para o relógio
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" DATA E HORA
");
lcd.setCursor(0,1);
lcd.print("COM O ARDUINO");
delay (2000);
//Configura o minuto
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Minuto: ");
Serial.print("\nEntre Minuto:");
while(minuto==0)
{
if (Serial.available() > 0)
{
minuto= Serial.parseInt();
}
}
lcd.print(minuto);
delay(1000);
//Configura a hora
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Hora: ");
Serial.print("\nEntre Hora:");
while(hora==0)
{
if (Serial.available() > 0)
{
hora= Serial.parseInt();
}
}
lcd.print(hora);
delay(1000);
//Configura o Dia
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Dia: ");
Serial.print("\nEntre Dia:");
while(dia==0)
{
if (Serial.available() > 0)
{
dia= Serial.parseInt();
}
}
lcd.print(dia);
delay(1000);
//Configura o mês
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Mes: ");
Serial.print("\nEntre Mes:");
while(mes==0)
{
if (Serial.available() > 0)
{
mes= Serial.parseInt();
}
}
lcd.print(mes);
delay(1000);
//Configura o Ano
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Ano: ");
Serial.print("\nEntre ano:");
while(ano==0)
{
if (Serial.available() > 0)
{
ano= Serial.parseInt();
}
}
lcd.print(ano);
delay(1000);
lcd.clear();
}
void loop()
{
if(millis()- valorAtual<0)
{
valorAtual = millis();
}
else
{
segundo=int((millis()-valorAtual)/1000);
}
if(segundo>59)
{
segundo=0;
minuto++;
valorAtual=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++;
}
}
}
}
}
//Mensagem de abertura
lcd.clear(); //limpa o display do LCD.
lcd.print("Oi!!! ");
//imprime a string no display do LCD.
delay(2000);
lcd.clear();
lcd.print("Bem
vindo");
lcd.setCursor(0,1);
lcd.print("a
este projeto!");
delay(4000);
lcd.clear();
lcd.print("ROBOTICA NA ESCOLA DR PEDRO VELHO 2015");
delay(1000);
//Rolando o display
para a esquerda 22 vezes
for (int i = 0; i
< 22; i++)
{
lcd.scrollDisplayLeft();
delay(600);
}
delay(1000);
//Apresentando no serial
Serial.print(dia);
Serial.print("/");
Serial.print(mes);
Serial.print("/");
Serial.print(ano);
Serial.println();
//Apresentando no display
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Data ");
lcd.print(dia);
lcd.print("/");
lcd.print(mes);
lcd.print("/");
lcd.print(ano);
//Apresentando no serial
Serial.print(hora);
Serial.print(":");
Serial.print(minuto);
Serial.print(":");
Serial.print(segundo);
Serial.print("\n");
Serial.println();
//Apresentando no display
lcd.setCursor(0,1);
lcd.print("Hora ");
lcd.print(hora);
lcd.print(":");
lcd.print(minuto);
lcd.print(":");
lcd.print(segundo);
delay(2000);
}
//FIM DO SKETCH
Nenhum comentário:
Postar um comentário