Ir ao conteúdo
  • Cadastre-se

Arduino Como pôr duas casas decimais ?


Posts recomendados

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

 

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

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

 

 

 

 

 

Link para o comentário
Compartilhar em outros sites

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);

 

Link para o comentário
Compartilhar em outros sites

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.

 

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

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...