Ir ao conteúdo

Posts recomendados

Postado

Prezados,

 

Estou lendo informações do RTC DS3231 (poderia ser qualquer outro) e elas estão escritas no código desta forma:

Serial.print(now.day(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.year(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.println(now.second(), DEC);
    Serial.println("sucessfully written on SD card");
    myFile.close();

 

Aí são escritas assim (só 1 exemplo):

4/4/2021,9:28:8

 

Como eu faço para que todos os campos tenham 2 casas decimais, para ficar assim:

04/04/2021,09:28:08

 

 

SAUDAÇÕES

 

 

 

 

 

 

Postado
1 hora atrás, eletron1791 disse:

Prezados,

 

Estou lendo informações do RTC DS3231 (poderia ser qualquer outro) e elas estão escritas no código desta forma:


Serial.print(now.day(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.year(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.println(now.second(), DEC);
    Serial.println("sucessfully written on SD card");
    myFile.close();

 

Aí são escritas assim (só 1 exemplo):

4/4/2021,9:28:8

 

Como eu faço para que todos os campos tenham 2 casas decimais, para ficar assim:

04/04/2021,09:28:08

 

 

SAUDAÇÕES

 

 

1 hora atrás, eletron1791 disse:

Usando a biblioteca RTClib nativa da IDE do Arduino

 

 

 

 

 

Postado

207 visualizações e ninguém sabe ?

 

É assim ó

 


    Serial.print(now.hour() < 10 ? "0" : "");
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute() < 10 ? "0" : "");
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second() < 10 ? "0" : "");
    Serial.println(now.second(), DEC);

 

Postado

voce vai ter que formatar.

 

se o codigo for pequeno, tipo nao ocupar muito a memoria do uC, converte o day( e os outros) decimal para string, ai fica mais fácil de acertar isso.

 

 

int dia = 4;
String day;
if( (dia > 0) && (dia <= 9) )
   {
      day = String(dia);// converter valor da int dia na string day;             
      day = "0" + day; // concatena o 0 + o valor de day      
      Serial.println(day); //voce verá 04 no console
   }
   //faça igual para mes e ano.

 

Postado

Foi sim caro Rodrigo, colaborar é sempre nobre.

 

Mas, se notar no meu post de segunda-feira às 09:21 eu mesmo me respondi, rs. Ai, uns 20 minutos depois você deu a sua sugestão. Ou seja, quem tiver a mesma dúvida e ver este tópico verá na sua resposta a solução. Bom demais.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...