Simbolos en el TXT que se guarda en la SD

Buenos días Ardunianos.

Quiero que se guarden en un archivo TXT de la SD (modulo micro sd) los datos recogidos por un termómetro sonda (DS18B20) y un barómetro (BMP180).
Consigo que todo funcione perfectamente, que se cree el archivo y que guarde la temperatura de la sonda, pero con los datos del barómetro, que también recoge temperatura, me sale los siguiente simbolos:

  • Presion: ◘
  • Temperatura: ◘

El barómetro funciona perfectamente porque al visualizar los datos en el monitor serial, me aparecen correctamente con los valores adecuados.

Es con Arduino Uno y me ocupa el 77%, me da el aviso de que puede tener problemas de estabilidad ¿Podría ser problema de la memoria?

Gracias de antemano.

PD: La utilidad es para hacer un globo sonda y recoger los datos de la estratosfera.

  #include <SPI.h>
  #include <SD.h>
  #include <OneWire.h>
  #include <DallasTemperature.h>
  #include <SFE_BMP180.h>
  #include <Wire.h>

 
  const int chipSelect = 10; // Pin 4 para SD del ETHERNET SHIELD
  const int pinDatosDQ = 2;
   OneWire oneWireObjeto(pinDatosDQ);
   DallasTemperature sensorDS18B20(&oneWireObjeto);
   SFE_BMP180 bmp180;
    double PresionNivelMar=1013.25; //presion sobre el nibel del mar en mbar
    
  void setup()
  {

    Serial.begin(9600);
   

    pinMode(chipSelect, OUTPUT);
     

    if (!SD.begin(chipSelect))
    {
      Serial.println("Error al leer la tarjeta\n");
      return;
    }
    sensorDS18B20.begin(); 
    if (bmp180.begin())
    Serial.println("BMP180 iniciado correctamenten");
  else
  {
    Serial.println("Error al iniciar el BMP180");
    while(1); // bucle infinito
  }
  }
   
  void loop()
  {
    Serial.println("Mandando comandos a los sensores");
    sensorDS18B20.requestTemperatures();
 
   
    Serial.print("Temperatura sensor 0: ");
    Serial.print(sensorDS18B20.getTempCByIndex(0));
    Serial.println(" C");
   
    delay(500);
    char status;
  double T,P,A;
  
  status = bmp180.startTemperature();
  if (status != 0)
  {   
    delay(status); 
    status = bmp180.getTemperature(T); 
    if (status != 0)
    {
      status = bmp180.startPressure(3);
      if (status != 0)
      {        
        delay(status);
        status = bmp180.getPressure(P,T);
        if (status != 0)
        {                  
          Serial.print("Temperatura: ");
          Serial.print(T);
          Serial.print(" *C , ");
          Serial.print("Presion: ");
          Serial.print(P);
          Serial.print(" mb , ");     
         
          A= bmp180.altitude(P,PresionNivelMar);
          Serial.print("Altitud: ");
          Serial.print(A);
          Serial.println(" m s.n.m.");    
        }      
      }      
    }   
  } 
  delay(1000);

    

    File dataFile = SD.open("LM35.TXT", FILE_WRITE);
       

    if (dataFile)
    {
     
      dataFile.print("VALOR DE LA TEMPERATURA: ");
   
      dataFile.println(sensorDS18B20.getTempCByIndex(0));
      dataFile.println("---------------------------------- ");




      dataFile.print("Valor Presion: ");
  
      dataFile.println(bmp180.startPressure(3));
      dataFile.println("---------------------------------- ");




      dataFile.print("Valor altura: ");

      dataFile.println(bmp180.altitude(P,PresionNivelMar));
      dataFile.println("---------------------------------- ");


      dataFile.print("Valor temperatura interior: ");
      dataFile.println(bmp180.getTemperature(T));
      dataFile.println("---------------------------------- ");

     
      dataFile.close();
       
      Serial.println("Valor almacenado correctamente!!!\n");
       
    }
    else
    {
      Serial.println("Error al escribir en LM35.TXT!!!\n");
    }
     
    delay(500);
  }

Y el código? Lee las normas del foro y postea tu código usando etiquetas.

Vale. Ya está el código puesto. Aprovecho para copiar lo que me sale en el TXT:

VALOR DE LA TEMPERATURA: 23.25

Valor Presion: 

Valor altura: 607.63

Valor temperatura interior: 

VALOR DE LA TEMPERATURA: 23.25

Valor Presion: 

Valor altura: 607.37

Valor temperatura interior: 

VALOR DE LA TEMPERATURA: 23.25

Valor Presion: 

Valor altura: 607.17

Porque al salvar los datos en la SD, vuelves a leer todos los sensores. Si ya lo hiciste, porque no guardas lo leído?

if (dataFile)   {
      dataFile.print("VALOR DE LA TEMPERATURA: ");
      dataFile.println(T);

      dataFile.print("Valor Presion: ");
      dataFile.println(P);
      dataFile.println("---------------------------------- ");
      dataFile.print("Valor altura: ");
      dataFile.println(A);
      dataFile.println("---------------------------------- ");
      dataFile.print("Valor temperatura interior: ");
      dataFile.println(A);  // este valor no lo presentas antes
      dataFile.println("---------------------------------- ");
      dataFile.close();
      Serial.println("Valores almacenado correctamente!!!\n");
  }

Veamos que pasa con esto

Muchísimas gracias.
Ya veo donde estaba el error.
Tuve que corregir también el código, ya que con ese me salia el valor temperatura interior como la altura, pero lo cambié y me quedó perfecto.
Os dejo esa parte del codigo como me quedo terminado.

   if (dataFile)   {
      dataFile.print("VALOR DE LA TEMPERATURA: ");
      dataFile.println(sensorDS18B20.getTempCByIndex(0));

      dataFile.print("Valor Presion: ");
      dataFile.println(P);
      dataFile.println("---------------------------------- ");
      dataFile.print("Valor altura: ");
      dataFile.println(A);
      dataFile.println("---------------------------------- ");
      dataFile.print("Valor temperatura interior: ");
      dataFile.println(T);  // este valor no lo presentas antes
      dataFile.println("---------------------------------- ");
      dataFile.close();
      Serial.println("Valores almacenado correctamente!!!\n");

Me alegro, cierro el hilo.