Guardar Numero entero 1 como 6 digitos (000001)

Buenas noches, disculpen pero soy un poco nuevo en esto de Arduino. Quisiera guardar un numero entero como contador pero requiero forzar que me muestre 6 digitos para poder imprimirlos con su longitud forzada en codigo de barras, es decir, como ejemplo el numero 1 debe mostrarse como 000001 y el 2301 como 002301.
He buscado en varias paginas web pero no he encontrado como hacerlo.

Agradeceria su ayuda.

char buffer[20];
unsigned int numero =12345;

void setup) {
    Serial.begin(9600);
}

void loop() {
  
   sprintf(buffer, "Numero de 6 digitos %06d", numero);
   Serial.println(buffer);
   delay(500);
}

Imprimirá un numero de 6 digitos con 0s a la izquierda a pesar que el máximo nro posible será 65535 o sea 5 digitos.

Muchas gracias por la ayuda, te agradezco