Datalogger arduino y ADS1115 con termopar tipo T

Estoy fabricando un datalogger para registrar milivots con arduino con un convertidor analogico que es el ads1115 y con termopares tipo t, pero hay un problema al registrar los datos, no registra los datos correcto. alguna solucion?
gracias.

#include <Adafruit_ADS1X15.h>
#include <Wire.h>
#include <SPI.h>
#include <SD.h>
#include <RTClib.h>

// Crear objeto de la clase
Adafruit_ADS1115 ads;
RTC_DS1307 rtc;
#define SSpin 10
File logFile;

// Factor de escala. Por defecto el valor de referencia es 6,144V
// El factor de escala de esta referencia es de 0,1875mV
const float multiplier = 0.0078125;

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

 //RTC
if (! rtc.begin()) {
Serial.println("Modulo RTC no encontrado !");   //si falla la inicializacion del modulo muestra mensaje de error 
while (1);   
}
//rtc.adjust(DateTime(__DATE__, __TIME__));

//TARJETA SD
  Serial.println("Inicializando tarjeta ...");  // texto en ventana de monitor
  if (!SD.begin(SSpin)) {     // inicializacion de tarjeta SD
    Serial.println("fallo en inicializacion !");// si falla se muestra texto correspondiente y
    return;         // se sale del setup() para finalizar el programa
  }
 
 Serial.println(F("Iniciado correctamente"));
 
 //ADS1115
  // Factor de escala
 ads.setGain(GAIN_SIXTEEN);
 // Iniciar el ADS1115
  ads.begin();
}

void loop(void){
    
  //ABRIR O CREAR ARCHIVO
   logFile = SD.open("data.txt", FILE_WRITE);//abrimos  el archivo

    
   
  DateTime fecha = rtc.now();      // funcion que devuelve fecha y horario en formato
            // DateTime y asigna a variable fecha

 //ADS1115
// Obtener el diferencial
  short diferencia_0_1 = ads.readADC_Differential_0_1();
  short diferencia_2_3 = ads.readADC_Differential_2_3();
  // Convertir en voltios 
  float milivolts_1 = (diferencia_0_1 * multiplier);
  float milivolts_2 = (diferencia_2_3 * multiplier);
  
Serial.print(fecha.year());     // funcion que obtiene el dia de la fecha completa
 Serial.print("/");       // caracter barra como separador
 Serial.print(fecha.month());     // funcion que obtiene el mes de la fecha completa
 Serial.print("/");       // caracter barra como separador
 Serial.print(fecha.day());      // funcion que obtiene el año de la fecha completa
 Serial.print(" ");       // caracter espacio en blanco como separador
 Serial.print(fecha.hour());      // funcion que obtiene la hora de la fecha completa
 Serial.print(":");       // caracter dos puntos como separador
 Serial.print(fecha.minute());      // funcion que obtiene los minutos de la fecha completa
 Serial.print(":");       // caracter dos puntos como separador
 Serial.print(fecha.second());    // funcion que obtiene los segundos de la fecha completa
 Serial.print(" , ");       // caracter dos puntos como separador
 // Serial.print("Sensor 1");
  // Serial.print("=");
  Serial.print(milivolts_1, 4);
  Serial.print(" ,");
  Serial.print(milivolts_2, 4);
  Serial.println(" ");
  
  
 
     
 logFile.print(fecha.year());     // funcion que obtiene el dia de la fecha completa
 logFile.print("/");       // caracter barra como separador
 logFile.print(fecha.month());     // funcion que obtiene el mes de la fecha completa
 logFile.print("/");       // caracter barra como separador
 logFile.print(fecha.day());      // funcion que obtiene el año de la fecha completa
 logFile.print(" ");       // caracter espacio en blanco como separador
 logFile.print(fecha.hour());      // funcion que obtiene la hora de la fecha completa
 logFile.print(":");       // caracter dos puntos como separador
 logFile.print(fecha.minute());      // funcion que obtiene los minutos de la fecha completa
 logFile.print(":");       // caracter dos puntos como separador
 logFile.print(fecha.second());    // funcion que obtiene los segundos de la fecha completa
 logFile.print(" ,");       // caracter dos puntos como separador
 // logFile.print("Sensor 1");
  // logFile.print("=");
  logFile.print(milivolts_1, 4);
  logFile.print(" ,");
  logFile.print(milivolts_2, 4);
  logFile.println(" ");
  logFile.close(); //cerramos el archivo
  
  delay(2000);
}

Sube tu código y lo vemos, ya que la clarividencia no es lo que nos caracteriza. :wink:

Saludos

3 lineas en tu explicación, sin código, sin una tabla que diga leí esto y grabó esto otro.
A ver, esmérate un poco mas en darnos la inforamación que permita responderte como corresponde.

De paso te dejo el mensaje habitual:

Moderador:
Por favor, lee las Normas del foro y postea tu código/error usando etiquetas de código.
Si cometes un error y no luce como se espera entonces edita de este modo.
Ve a edición, luego selecciona todo el código que has publicado, lo cortas y click en </>


Hola buen día
gracias por su tiempo
acabo de cargar el código

Una disculpa y gracias por las correcciones las tomaré en cuenta y acabo de subir el codigo
gracias por su tiempo

Mira los ejemplos de SD.h y verás que luego de abrir el archivo se debe consultar si fue o no exitosa dicha operación.

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

const int chipSelect = 10;

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

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

  if (!SD.begin(chipSelect)) {
    Serial.println("initialization failed. Things to check:");
    Serial.println("1. is a card inserted?");
    Serial.println("2. is your wiring correct?");
    Serial.println("3. did you change the chipSelect pin to match your shield or module?");
    Serial.println("Note: press reset or reopen this Serial Monitor after fixing your issue!");
    while (true);
  }

  Serial.println("initialization done.");
}

void loop() {
  // make a string for assembling the data to log:
  String dataString = "";

  // read three sensors and append to the string:
  for (int analogPin = 0; analogPin < 3; analogPin++) {
    int sensor = analogRead(analogPin);
    dataString += String(sensor);
    if (analogPin < 2) {
      dataString += ",";
    }
  }

  // open the file. note that only one file can be open at a time,
  // so you have to close this one before opening another.
  File dataFile = SD.open("datalog.txt", FILE_WRITE);

  // if the file is available, write to it:
  if (dataFile) {
    dataFile.println(dataString);
    dataFile.close();
    // print to the serial port too:
    Serial.println(dataString);
  }
  // if the file isn't open, pop up an error:
  else {
    Serial.println("error opening datalog.txt");
  }
}

Asi que en tu caso lo que esta faltando es esto

  if (logfile) {
      logFile.print(fecha.year());     // funcion que obtiene el dia de la fecha completa
      logFile.print("/");       // caracter barra como separador
      logFile.print(fecha.month());     // funcion que obtiene el mes de la fecha completa
      logFile.print("/");       // caracter barra como separador
      logFile.print(fecha.day());      // funcion que obtiene el año de la fecha completa
      logFile.print(" ");       // caracter espacio en blanco como separador
      logFile.print(fecha.hour());      // funcion que obtiene la hora de la fecha completa
      logFile.print(":");       // caracter dos puntos como separador
      logFile.print(fecha.minute());      // funcion que obtiene los minutos de la fecha completa
      logFile.print(":");       // caracter dos puntos como separador
      logFile.print(fecha.second());    // funcion que obtiene los segundos de la fecha completa
      logFile.print(" ,");       // caracter dos puntos como separador
      // logFile.print("Sensor 1");
      // logFile.print("=");
      logFile.print(milivolts_1, 4);
      logFile.print(" ,");
      logFile.print(milivolts_2, 4);
      logFile.println(" ");
      logFile.close(); //cerramos el archivo
  }
  // if the file isn't open, pop up an error:
  else {
    Serial.println("error opening data.txt");
  }

no olvides del delay() al final, no me gusta pero de lo contrario irá a toda velocidad.