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