Mostrar texto en pantalla OLED+

Necesito que se muestre indicaciones del void setup en una panatalla OLED para la iniciación de una tarjeta micro sd, en vez de mostrarlo en el Serial monitor mandarlo a la pantalla OLED, sin la pantalla OLED el codigo funcioona sin problema , pero cuando pongo las indicaciones para mostar el texto en la pantalla, el codigo compila pero ya no sde ejecuta nada, igual he usado la pantalla independientemente con la libreria Adafruit_SSD1306.h y funciona, alguien que me ayude a encontrar el problema en el código.

/*  Datalogger_SD_1ch_b.ino   Programa modificado del código de ejemplo.

 Se requieren las siguientes conexiones
 CS -> D10  Valor por omisión
MOSI -> D11
MISO -> D12
CLK -> D13
VCC -> 5 V
GND -> GND

Debe haber un sensor analógico en el canal A0  */

#include <SPI.h>
#include <SD.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 display(128, 64, &Wire, -1);
const int analogPin = 0;
int sensor = 0;
float temperatura = 0;

void setup() {
  // Inicializa la comunicación serial
  Serial.begin(9600);
  while (!Serial) {
    ; // Espera a que se inicie el puerto serial
  }
  display.clearDisplay();
  display.setTextSize(1);          
  display.setTextColor(SSD1306_WHITE);      
  display.setCursor(0,0);            
  display.println("Inicializando tarjeta SD ...");
  display.display();
  delay(1000);
  display.clearDisplay();
  Serial.print("Inicializando tarjeta SD ...");

  // Verifica que la tarjeta se inicialice
  if (!SD.begin()) {
  display.clearDisplay();
  display.setTextSize(1);          
  display.setTextColor(SSD1306_WHITE);      
  display.setCursor(0,0);            
  display.println("Fallo en tarjeta, o no hay tarjeta");
  display.display();
  delay(1000);
  display.clearDisplay();
    Serial.println("Fallo en tarjeta, o no hay tarjeta");
    return;  // No hace nada más:
  }
  display.clearDisplay();
  display.setTextSize(1);          
  display.setTextColor(SSD1306_WHITE);      
  display.setCursor(0,0);            
  display.println("Tarjeta lista");
  display.display();
  delay(1000);
  display.clearDisplay();
  Serial.println("Tarjeta lista");
  SD.remove("datalog.txt");  //Borra el archivo previo

}

void loop() {
 String dataString = "";  // Cadena vacía
 sensor = analogRead(analogPin);  // Lee el sensor
 temperatura=500*sensor/1024.0;  //Temperatura en Celsius
 dataString += String(temperatura);   //Almacena en la cadena
  // Abre el archivo en la memoria SD
  File dataFile = SD.open("datalog.txt", FILE_WRITE);
  // Revisa si el archivo está disponible para escribir:
  if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
    // Envía la cadena también por el puerto serial
    Serial.println(dataString);
  }
  // Si el archivo no se encuentra abierto, manda un error:
  else {
    
    Serial.println("Error al abrir el archivo datalog.txt");
  }
  
  delay(984);

Al código le falta al menos una llave final "}". Vuelve a leer la introducción del foro sobre cómo formatear tu código al publicarlo.

¿Un número mágico?

Qué placa Arduino usas?

Por favor edita tu post y adjunta el código de acuerdo a las Normas del Foro en Español, punto 7. También usa la opción "Autoformato" del menú "Herramientas" de la IDE antes de copiar el código así nos facilitas su lectura.

Por otro lado, si estás usando una placa UNO o Nano, no tienen suficiente RAM para soportar una pantalla de 128x64 y la SD.
De hecho, solo con la pantalla apenas queda RAM para que el micro pueda trabajar.

Estoy usando un arduino UNO, en caso de ser por la RAM que otra placa recominedas?

Arduino UNO

Es por la RAM, ya lo comprobé, no puede crear la instancia del driver para la pantalla con tan solo incluir la librería SD porque quedan menos de 500 bytes libres. Piensa que la pantalla sola necesita 1K de memoria para el buffer (y porque es monocromática, sino serían al menos 8K).

Podrías usar Mega, ESP32, Raspberry Pi Pico o alguna de las nuevas que portan los mismos micros que las que nombré.