Problema escritura y lectura en tarjeta SD

Hola, estoy usando un modulo para lectura de tarjetas SD, tengo una previamente formateada (FAT32), lo que quiero hacer es crear una archivo .txt en la memoria y leerlo tambien con arduino por el monitor Serial, pero por alguna razon no funciona bien, concretamente tengo un problema con la funcion SD.open. Estoy usando este codigo de prueba:

/*
  SD card basic file example

  This example shows how to create and destroy an SD card file
  The circuit:
   SD card attached to SPI bus as follows:
 ** MOSI - pin 11
 ** MISO - pin 12
 ** CLK - pin 13
 ** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)

  created   Nov 2010
  by David A. Mellis
  modified 9 Apr 2012
  by Tom Igoe

  This example code is in the public domain.

*/
#include <SPI.h>
#include <SD.h>

File myFile;

void setup() {
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB port only
  }


  Serial.print("Initializing SD card...");

  if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    while (1);
  }
  Serial.println("initialization done.");

  if (SD.exists("example.txt")) {
    Serial.println("example.txt exists.");
  } else {
    Serial.println("example.txt doesn't exist.");
  }

  // open a new file and immediately close it:
  Serial.println("Creating example.txt...");
  myFile = SD.open("example.txt", FILE_WRITE);
  myFile.close();

  // Check to see if the file exists:
  if (SD.exists("example.txt")) {
    Serial.println("example.txt exists.");
  } else {
    Serial.println("example.txt doesn't exist.");
  }

  // delete the file:
  Serial.println("Removing example.txt...");
  SD.remove("example.txt");

  if (SD.exists("example.txt")) {
    Serial.println("example.txt exists.");
  } else {
    Serial.println("example.txt doesn't exist.");
  }
}

void loop() {
  // nothing happens after setup finishes.
}

en el monitor serial me aparece:

02:30:27.428 → Initializing SD card…initialization done.
02:30:27.463 → example.txt doesn’t exist.
02:30:27.498 → Creating example.txt…
02:30:27.532 → example.txt doesn’t exist.
02:30:27.532 → Removing example.txt…
02:30:27.567 → example.txt doesn’t exist.

que puede estar pasando??.

Bueno se soluciono el problema alimentando la placa por el pin de 3.3v en vez del pin de 5v con regulador. Si alguien me puede explicar porque es que pasa esto estaria muy agradecido.

Te iba a comentar que segun los tiempos de la comunicacion serial ,pasan apenas unos milisegundos entre la creacion y cierre del fichero y la comprobacion de si existe,pudiendo ser que en el momento de la comprobacion aun no se hubiera finalizado el proceso de creacion en si,pero si funciona al alimentar con 3.3v no se si lo que digo tiene sentido.En todo caso es facil de comprobar,alimenta de nuevo normalmente a 5v y elimina del sketch la parte del borrado del fichero,lo vuelves a cargar y ejecutar e introduces la sd en un ordenador a ver si esta el fichero.