Why does this code return only 4 temperatures instead of 7?

I expected this code to return 7 temperatures, from Temp0 to Temp6. However, the log file only shows Temp0, Temp1, Temp2 and Temp3, …but not Temp4, Temp5 and Temp6? What am I missing?

#include <math.h>

const int PULLUP_RES = 20000; // in Ohm( 20kOm )

const double BETA = 4390; // in K for Semitec 104 GTA-2

const double THERMISTOR_RES = 100000; // in Ohm

const double THERMISTOR_NOM_TEMP = 25; // Celsius, C

void setup()
{
}

void loop()
{
 thermister_temp0(analogRead(A0));
 thermister_temp1(analogRead(A1));
 thermister_temp2(analogRead(A2));
 thermister_temp3(analogRead(A3));
 thermister_temp4(analogRead(A4));
 thermister_temp5(analogRead(A5));
 thermister_temp6(analogRead(A6));
 delay(10000);
}



// Temp0
void thermister_temp0(int aval0)
{
 double R, T0;
R = (double) PULLUP_RES / ( (4095 / (double) aval0 ) - 1 );
 T0 = 1 / ( ( 1 / (THERMISTOR_NOM_TEMP + 273.15 )) + ( ( 1 / BETA) * log ( R / THERMISTOR_RES ) ) );
 T0 -= 273.15; // converting to C from K
 // return degrees C
 Spark.publish("Temp0", String(T0) + " °C");
}
 
// Temp1 
 void thermister_temp1(int aval1)
{
 double R, T1;
R = (double) PULLUP_RES / ( (4095 / (double) aval1 ) - 1 );
 T1 = 1 / ( ( 1 / (THERMISTOR_NOM_TEMP + 273.15 )) + ( ( 1 / BETA) * log ( R / THERMISTOR_RES ) ) );
 T1 -= 273.15; // converting to C from K
 // return degrees C
 Spark.publish("Temp1", String(T1) + " °C");
}
 
// Temp2 
 void thermister_temp2(int aval2)
{
 double R, T2;
R = (double) PULLUP_RES / ( (4095 / (double) aval2 ) - 1 );
 T2 = 1 / ( ( 1 / (THERMISTOR_NOM_TEMP + 273.15 )) + ( ( 1 / BETA) * log ( R / THERMISTOR_RES ) ) );
 T2 -= 273.15; // converting to C from K
 // return degrees C
 Spark.publish("Temp2", String(T2) + " °C");
}
 
// Temp3 
  void thermister_temp3(int aval3)
{
 double R, T3;
R = (double) PULLUP_RES / ( (4095 / (double) aval3 ) - 1 );
 T3 = 1 / ( ( 1 / (THERMISTOR_NOM_TEMP + 273.15 )) + ( ( 1 / BETA) * log ( R / THERMISTOR_RES ) ) );
 T3 -= 273.15; // converting to C from K
 // return degrees C
 Spark.publish("Temp3", String(T3) + " °C");
}

// Temp4 
  void thermister_temp4(int aval4)
{
 double R, T4;
R = (double) PULLUP_RES / ( (4095 / (double) aval4 ) - 1 );
 T4 = 1 / ( ( 1 / (THERMISTOR_NOM_TEMP + 273.15 )) + ( ( 1 / BETA) * log ( R / THERMISTOR_RES ) ) );
 T4 -= 273.15; // converting to C from K
 // return degrees C
 Spark.publish("Temp4", String(T4) + " °C");
} 
 
// Temp5 
  void thermister_temp5(int aval5)
{
 double R, T5;
R = (double) PULLUP_RES / ( (4095 / (double) aval5 ) - 1 );
 T5 = 1 / ( ( 1 / (THERMISTOR_NOM_TEMP + 273.15 )) + ( ( 1 / BETA) * log ( R / THERMISTOR_RES ) ) );
 T5 -= 273.15; // converting to C from K
 // return degrees C
 Spark.publish("Temp5", String(T5) + " °C");
} 
 
// Temp6 
   void thermister_temp6(int aval6)
{
 double R, T6;
R = (double) PULLUP_RES / ( (4095 / (double) aval6 ) - 1 );
 T6 = 1 / ( ( 1 / (THERMISTOR_NOM_TEMP + 273.15 )) + ( ( 1 / BETA) * log ( R / THERMISTOR_RES ) ) );
 T6 -= 273.15; // converting to C from K
 // return degrees C
 Spark.publish("Temp6", String(T6) + " °C");
}

Have a look at the ‘NOTE’ :wink:
https://docs.particle.io/reference/firmware/photon/#particle-publish-

2 Likes

Awesome, thanks!

1 Like