segunda-feira, 23 de abril de 2012

Código Fonte RTC+LCD - Curso Arduino Advanced - Aula 7


Pessoal,

Segue abaixo o código fonte utilizado na Aula 7 do Curso Arduino Advanced, sobre o Relógio em Tempo Real com Display LCD 16x2.



#include
#include
#include


RTC_DS1307 RTC;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);


void setup()
{
  Serial.begin(9600);
  Wire.begin();
  RTC.begin();
  lcd.begin(16, 2);
  if (!RTC.isrunning())
  {
    RTC.adjust(DateTime(__DATE__, __TIME__));
  }
}


void loop()
{
  DateTime agora = RTC.now();
  String relogio_data = "DT: ";
  String relogio_hora = "HR: ";
  
  int dia = agora.day();
  int mes = agora.month();
  int ano = agora.year();
  
  relogio_data += ArrumaZero(dia);
  relogio_data += "/";
  relogio_data += ArrumaZero(mes);
  relogio_data += "/";
  relogio_data += ano;
  
  int hora = agora.hour();
  int minuto = agora.minute();
  int segundo = agora.second();
  
  relogio_hora += ArrumaZero(hora);
  relogio_hora += ":";
  relogio_hora += ArrumaZero(minuto);
  relogio_hora += ":";
  relogio_hora += ArrumaZero(segundo);
  
  lcd.setCursor(0, 0);
  lcd.print(relogio_data);
  lcd.setCursor(0, 1);
  lcd.print(relogio_hora);
  
  delay(500);
}


String ArrumaZero(int i)
{
  String ret;
  if (i < 10) ret += "0";
  ret += i;
  return ret;
}


Abraços,
Renato

6 comentários:

  1. Parabéns Graccula, por mais uma excelente aula de Arduino. Seu curso é de nível profissional, e ainda aberto assim, a comunidade, é incrível essa sua iniciativa. Valeu, grande abraço

    ResponderExcluir
  2. eu tenho uma duvida, na hora de mostrar o ano no lcd eu quero colocar: dd/mm/aa ou invés de dd/mm/aaaa , qual alteração eu devo fazer no código?

    ResponderExcluir
    Respostas
    1. Obrigado pelo comentário!!!
      Participe do forum do curso Arduino, poste suas duvidas tecnicas la!!!
      Existem tópicos exclusivos separados por aula.
      http://www.youtube.com/user/graccula?feature=guide
      Abraços
      Renato

      Excluir
  3. Ola Renato, parabéns pelas as aulas, realmente são muito boas mesmo.
    Tenho uma duvida eu deixei sem querer a bateria sair do circuito por um tempo e o RTC agora esta com atraso e os segundos demoram para passar depois de uns 10 a 15 min. ele começa a contar os segundos normalmente, e eu não consigo ajustar a hora como eu faço para resetar o RTC ou qual outra maneira eu tenho para resolver esse problema?

    ResponderExcluir
  4. Valeu, aloi.
    Sou cliente serialink.
    repeti tudo e funcionou...
    Manda brasa; manda + videos advanced.
    Já estudei todos!

    ResponderExcluir
  5. Parabéns pela aula muito bem detalhado.

    ResponderExcluir