SOLUCIONADO Problema reloj pantalla oled

Hola gente!

Bueno, soy novato en esto de Arduino. Aunque estoy logrando algunos pequeños avances gracias a gente que sabe, leyendo tutoriales y modificando códigos ya escritos para dejarlos a mi gusto.
El problema que tengo es el siguiente.
Estoy creando un reloj con una pantalla OLED. Deciros que todo funciona excepto que en la hora, minutos y segundos no sale el 0. Por ejemplo 01, 02... Solo sale 1, 2.....

Aquí os pego el código para que veais. A ver si encontrais solución.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "RTClib.h" // Incluye la librería RTClib
RTC_DS1307 RTC; // Crea el objeto RTC

#define OLED_DC 11
#define OLED_CS 12
#define OLED_CLK 10
#define OLED_MOSI 9
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);


#if (SSD1306_LCDHEIGHT != 64)
#error("Height incorrect, please fix Adafruit_SSD1306.h!");
#endif

void setup()   {                
  Serial.begin(9600);
  Wire.begin(); // Establece la velocidad de datos del bus I2C
  RTC.begin(); // Establece la velocidad de datos del RTC
  // by default, we'll generate the high voltage from the 3.3v line internally! (neat!)
  display.begin(SSD1306_SWITCHCAPVCC);
  // init done


  delay(2000);
  display.clearDisplay();

}

void loop() {
  display.clearDisplay(); 
  DateTime now = RTC.now(); // Obtiene la fecha y hora del RTC
  // text display tests
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 0);
  display.println("FECHA: ");
  display.setCursor(40, 0);
  display.println(now.day(), DEC);
  display.setCursor(62, 0);
  display.println(now.month(), DEC);
  display.setCursor(80, 0);
  display.println(now.year(), DEC);

  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 16);
  display.println("HORA: ");
  display.setTextSize(3);
  display.setTextColor(WHITE);
  display.setCursor(20, 35);
  display.println(now.hour(), DEC);
  display.setCursor(52,35); 
  display.println(now.minute(), DEC); 
  display.setTextSize(2);
  display.setCursor(100,35);
  display.println(now.second(), DEC);
  display.display();
  delay(1); 
}

Muchas Gracias!

Es decir, ¿lo que quieres es que si, por ejemplo, la hora es <10 escriba un 0 antes de escribir la hora?
Si te das cuenta, creo que la pregunta lleva implícita la respuesta.
Saludos.

Que mal me explico.
No. Quiero que salga el 0 cuando los digitos son del 0 al 9, osea, 01, 02, 03, 04...

¿Y qué diferencia hay? ¿Acaso los dígitos 0-9 no son todos menores que 10?
Entonces, y te lo digo ya en c, si en la línea anterior a la impresión de la hora pones
if(now.hour<10) display.print(0);
tal vez haga lo que dices. :roll_eyes:

Lo he conseguido!!

Al final era poner algo parecido a lo tuyo....

if (now.minute()<10) display.print("0");

Cambiando el now.minute, now.hour y now.second

Muchas gracias!!!!